using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FangYar.Common { /// /// 总队餐厅人员信息同步操作类 /// public class EmpSyncDiningHelper { // IccSyncUrlHead /// /// 人员新增ICC人脸库 /// public static string AddUrl = System.Configuration.ConfigurationManager.AppSettings["DiningSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["DiningEmpInfoAddUrl"] + ""; /// /// 人员修改ICC人脸库 /// public static string UpdUrl = System.Configuration.ConfigurationManager.AppSettings["DiningSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["DiningEmpInfoUpdUrl"] + ""; /// /// 人员删除ICC人脸库 /// public static string DelUrl = System.Configuration.ConfigurationManager.AppSettings["DiningSyncUrlHead"] + System.Configuration.ConfigurationManager.AppSettings["DiningEmpInfoDelUrl"] + ""; /// /// 营区域名前缀 /// public static string CampImgUrlPrefix = System.Configuration.ConfigurationManager.AppSettings["CampImgUrlPrefix"] + ""; #region 人员信息操作 /// /// 人员信息添加 /// /// private static void EmpInfoAdd(EmpToDiningMo mo) { try { Dictionary dicParameter = new Dictionary(); dicParameter.Add("user_code", mo.user_code); dicParameter.Add("user_id", mo.user_id); dicParameter.Add("user_name", mo.user_name); dicParameter.Add("user_orgid", mo.user_orgid); dicParameter.Add("user_orgname", mo.user_orgname); dicParameter.Add("user_phone", mo.user_phone); dicParameter.Add("user_photo", mo.user_photo); //序列化参数 var jsonParam = JsonConvert.SerializeObject(dicParameter); //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, EMP_ID = mo.user_id, INFO_TYPE = "0", POST_URL = AddUrl, POST_PARAMETER = jsonParam }); //调用接口同步数据并获取返回值 var retStr = WebCommonUtil.HttpPostFormData(AddUrl, dicParameter); FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = "请求返回:" + retStr, msgType = FangYar.Common.EnumLogMsgTypeEnum.Info, path = "EmpSyncDining" }); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr }); EmpSyncDiningReturnMo postRetMo = JsonHelper.FromJSON(retStr); switch (postRetMo.code) { case "1": break; default: EmpInfoUpd(mo, dicParameter, jsonParam); break; } } catch (Exception ex) { string str = "新增人员Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncDining" }); } } /// /// 人员信息更新 /// /// 人员基础数据对象模型 /// 参数集合 /// 参数字符串 public static void EmpInfoUpd(EmpToDiningMo mo, Dictionary dicParameter, string jsonParam) { try { //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, EMP_ID = mo.user_id, INFO_TYPE = "1", POST_URL = UpdUrl, POST_PARAMETER = jsonParam }); //调用接口同步数据并获取返回值 var retStr = WebCommonUtil.HttpPostFormData(UpdUrl, dicParameter); EmpSyncIccReturnMo postRetMo = JsonHelper.FromJSON(retStr); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr }); } catch (Exception ex) { string str = "更新人员Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncDining" }); } } /// /// 人员信息删除 /// /// public static void EmpInfoDel(string eid) { try { Dictionary dicParameter = new Dictionary(); dicParameter.Add("user_id", eid); //序列化参数 var jsonParam = JsonConvert.SerializeObject(dicParameter); //插入日志信息ID string insLogId = Guid.NewGuid().ToString("N"); //插入日志记录 InsLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, EMP_ID = eid, INFO_TYPE = "2", POST_URL = DelUrl, POST_PARAMETER = jsonParam }); //调用接口同步数据并获取返回值 var retStr = WebCommonUtil.HttpPostFormData(DelUrl, dicParameter); //更新调用接口返回结果到日志记录 UpdLog(new TblSysEmpDiningSyncLogMo() { ID = insLogId, POST_RETURN_MSG = retStr }); } catch (Exception ex) { string str = "删除人员Web请求异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncDining" }); } } /// /// 同步人员信息 /// /// public static void EmpInfoSync(List empIdList) { var empList = GetToDiningEmpList(empIdList); foreach (var item in empList) { try { EmpInfoAdd(item); } catch (Exception ex) { string str = "遍历添加人员异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncDining" }); } } } #endregion /// /// 人员同步请求ICC日志信息插入 /// /// public static void InsLog(TblSysEmpDiningSyncLogMo mo) { try { if (mo != null) { //返回结果插入到日志表 string sqlInsLog = " insert into tbl_sys_emp_dining_sync_log (ID,EMP_ID,INFO_TYPE,POST_URL,POST_PARAMETER) VALUES ('" + mo.ID + "','" + mo.EMP_ID + "','" + mo.INFO_TYPE + "','" + mo.POST_URL + "','" + mo.POST_PARAMETER + "') "; //执行插入 MySqlHelper.Execute(sqlInsLog); } } catch (Exception ex) { string str = "插入日志信息异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } } /// /// 人员同步请求ICC日志信息更新 /// /// public static void UpdLog(TblSysEmpDiningSyncLogMo mo) { try { if (mo != null) { //返回结果插入到日志表 string sqlInsLog = " update tbl_sys_emp_dining_sync_log set POST_RETURN_MSG='" + mo.POST_RETURN_MSG + "',POST_RETURN_TIME=now() where id='" + mo.ID + "' "; //执行插入 MySqlHelper.Execute(sqlInsLog); } } catch (Exception ex) { string str = "更新日志信息异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncICC" }); } } /// /// 根据用户ID查询用户信息 /// /// /// public static List GetToDiningEmpList(List eidList) { List retList = new List(); string eidWhere = "'" + string.Join("','", eidList) + "'"; string sqlStr = @" SELECT ID user_id,PHOTO user_photo,e.ORG_ID user_orgid,o.ORG_NAME user_orgname,EMP_NUM user_code, EMP_NAME user_name,EMP_MOBILE user_phone FROM tbl_sys_emp e LEFT JOIN fire_org o on e.ORG_ID = o.ORG_ID WHERE e.ID in (" + eidWhere + ") "; var dt = MySqlHelper.QueryTable(sqlStr); for (int i = 0; i < dt.Rows.Count; i++) { try { retList.Add(new EmpToDiningMo() { user_id = dt.Rows[i]["user_id"] + "", user_code = dt.Rows[i]["user_code"] + "", user_name = dt.Rows[i]["user_name"] + "", user_orgid = dt.Rows[i]["user_orgid"] + "", user_phone = dt.Rows[i]["user_phone"] + "", user_photo = CampImgUrlPrefix + dt.Rows[i]["user_photo"] + "", user_orgname = dt.Rows[i]["user_orgname"] + "", }); } catch (Exception ex) { string str = "查询数据转换对象异常:" + ex; FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = str, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "EmpSyncDining" }); } } return retList; } } public class EmpSyncDiningReturnMo { /// /// 信息状态:0:失败;1:成功 /// public string code { get; set; } /// /// 提示信息 /// public string msg { get; set; } /// /// 响应时间 /// public string time { get; set; } /// /// 返回结果 /// public object data { get; set; } } /// /// 营区人员ICC信息同步操作日志 /// public class TblSysEmpDiningSyncLogMo { /// /// 信息ID /// public string ID { get; set; } /// /// 人员信息ID /// public string EMP_ID { get; set; } /// /// 调用更新后返回内容 /// public string POST_RETURN_MSG { get; set; } /// /// 信息类型:0、新增;1、修改;2、删除; /// public string INFO_TYPE { get; set; } /// /// 信息创建时间 /// public string createtime { get; set; } /// /// 请求信息路径 /// public string POST_URL { get; set; } /// /// 请求信息参数 /// public string POST_PARAMETER { get; set; } /// /// 请求信息返回时间 /// public string POST_RETURN_TIME { get; set; } } /// /// 营区到餐厅同步数据模型 /// public class EmpToDiningMo { /// /// 用户信息ID /// public string user_id { get; set; } /// /// 用户照片 /// public string user_photo { get; set; } /// /// 用户机构ID /// public string user_orgid { get; set; } /// /// 用户机构名称 /// public string user_orgname { get; set; } /// /// 用户编码 /// public string user_code { get; set; } /// /// 用户姓名 /// public string user_name { get; set; } /// /// 用户手机号 /// public string user_phone { get; set; } } }