123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- using Ropin.Inspection.Common.Helper;
- using Ropin.Inspection.Model;
- using Ropin.Inspection.Model.Entities;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ropin.Inspection.Repository
- {
- public class TmtnPushMsgToRepository : RepositoryBase<TMTN_PushMsgTo, string>, ITmtnPushMsgToRepository
- {
- public TmtnPushMsgToRepository(InspectionDbContext DbContext) : base(DbContext)
- {
- }
- public Task<int> DeleteByDevPersonIdAsync(string devId, string personId)
- {
- MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("devId", devId), new MySqlConnector.MySqlParameter("personId", personId) };
- int result = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, "DELETE from TMTN_PushMsgTo WHERE C_DevStoreCode = @devId AND C_PushPersonCode =@personId", parameters);
- return Task.FromResult(result);
- }
- public Task<int> DeleteByDevPersonIdMultipleAsync(string devId, string personStr)
- {
- MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("devId", devId) };
- string delSql = $"DELETE from TMTN_PushMsgTo WHERE C_DevStoreCode = @devId AND C_PushPersonCode in ('{personStr}')";
- int result = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, delSql, parameters);
- return Task.FromResult(result);
- }
- public Task<IEnumerable<TSYS_User>> GetPushMsgUserByAsync(string devStoreCode, string msgTypeCode)
- {
- MySqlConnector.MySqlParameter[] parameters = new[] {
- new MySqlConnector.MySqlParameter("devStoreCode", devStoreCode),
- new MySqlConnector.MySqlParameter("msgTypeCode", msgTypeCode)};
- string sql = @"SELECT B.* FROM TMTN_PushMsgTo A
- INNER JOIN TSYS_User B
- ON A.C_PushPersonCode = B.C_UserID
- WHERE A.C_DevStoreCode = @devStoreCode AND A.C_MsgTypeCode = @msgTypeCode AND B.C_Status = '1'";
- var contentlist = EntityFrameworkCoreExtensions.GetList<TSYS_User>(DbContext.Database, sql, parameters);
- return Task.FromResult(contentlist);
- }
- public Task<IEnumerable<TmtnPushMsgToUserViewModel>> GetPushMsgToUsersByAsync(string devStoreCode)
- {
- MySqlConnector.MySqlParameter[] parameters = new[] {
- new MySqlConnector.MySqlParameter("devStoreCode", devStoreCode)};
- string sql = @"SELECT A.C_UserID as PushPersonCode,A.C_Name as PushPersonName,C.C_Name as RoleName
- From TSYS_User A
- LEFT JOIN TSYS_UserRole B ON A.C_UserID = B.C_UserCode
- LEFT JOIN TSYS_Role C ON C.C_Code = B.C_RoleCode
- INNER JOIN TMTN_PushMsgTo D ON D.C_PushPersonCode = A.C_UserID
- WHERE D.C_DevStoreCode = @devStoreCode And A.C_Status = '1' And C.C_Status = '1' GROUP BY A.C_UserID";
- var contentlist = EntityFrameworkCoreExtensions.GetList<TmtnPushMsgToUserViewModel>(DbContext.Database, sql, parameters);
- return Task.FromResult(contentlist);
- }
- public Task<TmtnUserPushMsgToViewModel> GetPushMsgTosByAsync(string devStoreCode, string userCode)
- {
- List<TMTN_PushMsgTo> pushMsgToList = DbContext.TMTN_PushMsgTo.Where(x=>x.C_DevStoreCode == devStoreCode && x.C_PushPersonCode == userCode).ToList();
- List<TMTN_PushMsgTo> pushMsgToMsgTypeList = new List<TMTN_PushMsgTo>(pushMsgToList);
- List<TMTN_PushMsgTo> pushMsgToPushTypeList = new List<TMTN_PushMsgTo>(pushMsgToList);
- List<string> msgTypeList = pushMsgToMsgTypeList.Select(y => y.C_MsgTypeCode).ToList();
- List<string> pushTypeList = pushMsgToPushTypeList.Select(y => y.C_PushTypeCode).ToList();
- TmtnUserPushMsgToViewModel mode = new TmtnUserPushMsgToViewModel
- {
- DevStoreCode = devStoreCode,
- UserCode = userCode,
- MsgTypeList = msgTypeList,
- PushTypeList = pushTypeList
- };
- return Task.FromResult(mode);
- }
- public async Task<bool> PushAlarmMsgAsync(TpushMsgModel pushModel)
- {
- IEnumerable<TMTN_PushMsgTo> pushMsgTolist = DbContext.Set<TMTN_PushMsgTo>().Where(i => i.C_DevStoreCode.Equals(pushModel.C_DevStoreCode)).AsEnumerable();
- IList<TSYS_User> userList = DbContext.Set<TSYS_User>().Where(x => x.C_Status == "1").AsEnumerable().ToList();
- IList<TBDM_CodeDetail> tBDMCodeDetailList = DbContext.Set<TBDM_CodeDetail>().Where(x => x.C_Status == "1").AsEnumerable().ToList();
- foreach (var pushMsgToItem in pushMsgTolist)
- {
- var user = userList.Where(x => x.C_UserID.ToString() == pushMsgToItem.C_PushPersonCode)?.FirstOrDefault();
- IList<string> sendUserWechatIDList = new List<string>();
- IList<TMTN_PushMsgResult> pushMsgResultList = new List<TMTN_PushMsgResult>();
- if (pushMsgToItem.C_PushTypeCode == "PUSH_TYPE_001")//Email
- {
- //var q = from e in userList
- // where e.C_UserID == Guid.Parse("d4f4f4ac-3248-418a-a489-498478665537")
- // //where e.C_Email == "154817501@qq.com"
- // select new { e.C_Email};
- //string email = q?.ToList()?.FirstOrDefault()?.C_Email;
- //string email = userList.Where(x => x.C_UserID.ToString() == pushMsgToItem.C_PushPersonCode)?.Select(y => y.C_Email)?.FirstOrDefault();
- string email = user.C_Email;
- if (!string.IsNullOrEmpty(email))
- {
- string msg =
- "<p><td>设备编号:</td>" + pushModel.DevNumber + "</p>" +
- "<p><td>设备名称:</td>" + pushModel.DevName + "</p>" +
- "<p><td>消息内容:</td>" + pushModel.Msg + "</p>" +
- "<p><td>设备地址:</td>" + pushModel.DevAddress + "</p>" +
- "<p><td> 报警时间:</td> " + DateTime.Now + " </p> "
- ;
- EmailHelper.SendEmail(email, tBDMCodeDetailList.Where(i => i.C_Code == pushMsgToItem.C_MsgTypeCode).Select(x => x.C_Name).FirstOrDefault(), pushModel.Subject, pushModel.Msg);
- }
-
- }
- if (pushMsgToItem.C_PushTypeCode == "PUSH_TYPE_002")//wx
- {
- var msg = new
- {
- thing2 = new { value = "niu" ?? "" },
- time4 = new { value = DateTime.Now.ToString("yyyy-MM-dd hh:mm") },
- thing5 = new { value = "异常" ?? "" },
- thing6 = new { value = "大门损坏" ?? "" },
- thing9 = new { value = "msg" ?? "" }
- };
- sendUserWechatIDList.Add(user.C_WechatID);
- pushMsgResultList.Add(new TMTN_PushMsgResult { C_ID = Guid.NewGuid().ToString(),
- D_CreateOn = DateTime.Now,
- C_Status = "1"
- });
- //new WeChatHelper(_httpClientFactory).PushMessageToUser(userlist, msg);
- //var content = _mapper.Map<TMTN_PushMsgResult>(createModel);
- //content.C_ID = Guid.NewGuid().ToString();
- //content.C_CreateBy = _claims.ApiUserId;
- //content.D_CreateOn = DateTime.Now;
- //content.C_Status = "1";
- //_tmtnPushMsgResultRepository.Create(content);
- //var result = await _repository.SaveAsync();
- //if (!result)
- //{
- // throw new Exception("创建失败");
- //}
- }
- //if (sendUserWechatIDList.Any())
- //{
- // new WeChatHelper(_httpClientFactory).PushMessageToUser(sendUserWechatIDList, msg);
- //}
- }
- return await Task.FromResult(true);
- }
- //public Task<IEnumerable<TmtnPushMsgToViewModel>> GetByConditionAsync(Expression<Func<TMTN_PushMsgTo, bool>> expression)
- //{
- // List<TMTN_PushMsgTo> pushMsgToList = DbContext.Set<TMTN_PushMsgTo>().Where(expression).AsEnumerable().ToList();
- // List<TSYS_User> userList = DbContext.TSYS_User.ToList();
- // var query = from a in pushMsgToList
- // join b in userList
- // on a.C_PushPersonCode equals b.C_UserID
- // select new TmtnPushMsgToViewModel
- // {
- // C_ID = a.C_ID,
- // C_DevStoreCode = a.C_DevStoreCode,
- // C_PushPersonCode = a.C_PushPersonCode,
- // C_MsgTypeCode = a.C_MsgTypeCode,
- // C_PushTypeCode = a.C_PushTypeCode,
- // C_PushPersonName = b.C_Name,
- // };
- // return query.ToList();
- // //return Task.FromResult(DbContext.Set<T>().Where(expression).AsEnumerable());
- //}
- }
- }
|