public int DeleteDept(int id, string accessToken) { int rows = 0; GROUP_INFO groupInfo = _groupRepo.Get(id); if (groupInfo != null) { int childrenCount = _groupRepo.GetCountByParentID(id); if (childrenCount > 0) { rows = -1; //如果有子部门,不能删除 } int empCount = _empRepo.GetCountByGroupID(id); if (empCount > 0) { rows = -2; //组织结构下有员工,不能删除 } DeptResponse response = WXQYClientServiceApi.Create().DeleteDept(accessToken, groupInfo.WX_GROUP_ID); if (response != null && response.ErrorCode == 0) { rows = _groupRepo.Delete(id); if (groupInfo.TYPE == 3) { MDSearch storeInfo = _storeRepo.GetByGroupId(id); if (storeInfo != null) { _storeRepo.Delete(storeInfo.ID); } } } } return(rows); }
public void SyncDeptToRemote(string accessToken) { List <GROUP_INFO> groups = this._groupRepo.GetAllByNames(); foreach (var item in groups) { int order = item.WX_ORDER.HasValue ? item.WX_ORDER.Value : 1; DeptResponse response = WXQYClientServiceApi.Create().UpdateDept(accessToken, item.WX_GROUP_ID, item.NAME, item.WX_PARENT_ID.Value, order); if (response != null && response.ErrorCode == 0) { LogService.Info(item.NAME + "-成功"); } else { LogService.Warn(item.NAME + "-失败"); } } }
/// <summary> /// 修改组织架构 /// </summary> /// <param name="accessToken"></param> /// <param name="deptId"></param> /// <param name="parentId"></param> /// <returns></returns> public int UpdateDeptOrg(string accessToken, int deptId, int parentId, ref string errMsg) { int rows = 0, rootId = AppConfig.QYDeptRootID; GROUP_INFO existGroupInfo = _groupRepo.Get(deptId); if (existGroupInfo != null) { int wxParentId = 0; if (parentId == 0) { wxParentId = rootId; } else { GROUP_INFO parentInfo = _groupRepo.Get(parentId); if (parentInfo != null) { wxParentId = parentInfo.WX_GROUP_ID; } } DeptResponse response = WXQYClientServiceApi.Create().UpdateDept(accessToken, existGroupInfo.WX_GROUP_ID, existGroupInfo.NAME, wxParentId, existGroupInfo.WX_ORDER.Value); if (response != null && response.ErrorCode == 0) { GROUP_INFO groupInfo = new GROUP_INFO(); groupInfo.ID = deptId; groupInfo.PARENT_ID = parentId; groupInfo.WX_PARENT_ID = wxParentId; groupInfo.LAST_MODIFY_TIME = DateTime.Now; groupInfo.LAST_MODIFY_USER = "******"; groupInfo.FullUpdate = false; rows = (int)_groupRepo.Update(groupInfo); } else { errMsg = response.ErrorMessage; } } return(rows); }
public int ModifyDept(DeptInfo deptInfo, string accessToken, ref string errMsg) { int rows = 0, rootId = AppConfig.QYDeptRootID; GROUP_INFO existGroupInfo = _groupRepo.Get(deptInfo.ID); if (existGroupInfo != null) { int wxParentId = 0; if (existGroupInfo.PARENT_ID == 0) { wxParentId = rootId; } else { GROUP_INFO parentInfo = _groupRepo.Get(existGroupInfo.PARENT_ID); if (parentInfo != null) { wxParentId = parentInfo.WX_GROUP_ID; } } DeptResponse response = WXQYClientServiceApi.Create().UpdateDept(accessToken, existGroupInfo.WX_GROUP_ID, deptInfo.DeptName, wxParentId, deptInfo.Order); if (response != null && response.ErrorCode == 0) { GROUP_INFO groupInfo = new GROUP_INFO(); groupInfo.ID = deptInfo.ID; groupInfo.NAME = deptInfo.DeptName; groupInfo.CODE = deptInfo.DeptCode; groupInfo.MAGENTO_GROUP_ID = deptInfo.MagentoGroupID; groupInfo.WX_ORDER = deptInfo.Order; groupInfo.LAST_MODIFY_TIME = DateTime.Now; groupInfo.LAST_MODIFY_USER = "******"; groupInfo.FullUpdate = false; rows = (int)_groupRepo.Update(groupInfo); if (rows > 0 && existGroupInfo.TYPE == 3) { MDSearch storeInfo = _storeRepo.GetByGroupId(deptInfo.ID); if (storeInfo == null) { storeInfo = new MDSearch(); } storeInfo.Name = deptInfo.DeptName; storeInfo.Code = deptInfo.DeptCode; storeInfo.StoreType = deptInfo.StoreType; storeInfo.IS_PICK_UP = deptInfo.IsPickUp; storeInfo.Address = deptInfo.Address; storeInfo.Phone = deptInfo.Telephone; storeInfo.X = deptInfo.Latitude; storeInfo.Y = deptInfo.Longitude; storeInfo.BelongsAreaNo = deptInfo.BelongsAreaNo; storeInfo.Province = deptInfo.Province; storeInfo.City = deptInfo.City; storeInfo.Area = deptInfo.Area; storeInfo.PP = deptInfo.Brand; if (storeInfo.ID > 0) { storeInfo.FullUpdate = false; _storeRepo.Update(storeInfo); } else { storeInfo.GROUP_ID = deptInfo.ID; _groupRepo.Insert(storeInfo); } } } else { errMsg = response.ErrorMessage; } } return(rows); }
public int CreateDept(DeptInfo deptInfo, string accessToken, ref string errMsg) { int groupId = 0, wxParentId = 0, rootId = AppConfig.QYDeptRootID; GROUP_INFO groupInfo = null; if (deptInfo.ParentID == 0) //创建大区 { groupInfo = new GROUP_INFO(); groupInfo.TYPE = 1; wxParentId = rootId;//根目录ID } else { GROUP_INFO parentDept = _groupRepo.Get(deptInfo.ParentID); if (parentDept != null) { groupInfo = new GROUP_INFO(); wxParentId = parentDept.WX_GROUP_ID; if (parentDept.TYPE == 1) //如果父级是大区,则创建区域 { groupInfo.TYPE = 2; } else if (parentDept.TYPE == 2) { groupInfo.TYPE = 3; } } } if (groupInfo != null) { groupInfo.NAME = deptInfo.DeptName; groupInfo.CODE = deptInfo.DeptCode; groupInfo.PARENT_ID = deptInfo.ParentID; groupInfo.MAGENTO_GROUP_ID = deptInfo.MagentoGroupID; groupInfo.WX_ORDER = deptInfo.Order; groupInfo.CREATE_TIME = DateTime.Now; groupInfo.CREATE_USER = "******"; DeptResponse response = WXQYClientServiceApi.Create().CreateDept(accessToken, groupInfo.NAME, wxParentId, groupInfo.WX_ORDER.Value); if (response != null && response.ErrorCode == 0) { groupInfo.WX_GROUP_ID = response.ID; groupInfo.WX_PARENT_ID = wxParentId; groupId = (int)_groupRepo.Insert(groupInfo); if (groupId > 0 && groupInfo.TYPE == 3) //创建MDSearch { MDSearch storeInfo = new MDSearch(); storeInfo.Name = deptInfo.DeptName; storeInfo.Code = deptInfo.DeptCode; storeInfo.StoreType = deptInfo.StoreType; storeInfo.IS_PICK_UP = deptInfo.IsPickUp; storeInfo.Address = deptInfo.Address; storeInfo.Phone = deptInfo.Telephone; storeInfo.X = deptInfo.Latitude; storeInfo.Y = deptInfo.Longitude; storeInfo.BelongsAreaNo = deptInfo.BelongsAreaNo; storeInfo.Province = deptInfo.Province; storeInfo.City = deptInfo.City; storeInfo.Area = deptInfo.Area; storeInfo.PP = deptInfo.Brand; storeInfo.GROUP_ID = groupId; _groupRepo.Insert(storeInfo); } deptInfo.Type = groupInfo.TYPE; } else { errMsg = response.ErrorMessage; } } return(groupId); }