Example #1
0
        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);
        }
Example #2
0
        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 + "-失败");
                }
            }
        }
Example #3
0
        /// <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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }