From c731778ea08fd89d16152d5c77340e816dde9ee0 Mon Sep 17 00:00:00 2001 From: LegnaYet <1023868505@qq.com> Date: Wed, 8 Apr 2020 18:37:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DepartmentConreoller.java | 11 ++ .../mapper/PrivilageDepartmentDOMapper.java | 9 ++ .../department/service/DepartmentService.java | 24 ++++ .../ic/employee/entity/PrivilageCpUserDO.java | 105 +++++++++++++----- .../ic/employee/service/EmployeeService.java | 3 +- .../wx/service/QWMailListManageService.java | 15 ++- 6 files changed, 132 insertions(+), 35 deletions(-) create mode 100644 src/main/java/com/kiisoo/ic/department/mapper/PrivilageDepartmentDOMapper.java diff --git a/src/main/java/com/kiisoo/ic/department/controller/DepartmentConreoller.java b/src/main/java/com/kiisoo/ic/department/controller/DepartmentConreoller.java index 0add765..48318ca 100644 --- a/src/main/java/com/kiisoo/ic/department/controller/DepartmentConreoller.java +++ b/src/main/java/com/kiisoo/ic/department/controller/DepartmentConreoller.java @@ -36,4 +36,15 @@ public class DepartmentConreoller extends BaseController { return fail(); } } + + @RequestMapping(value = "sync",method = RequestMethod.GET) + public Map syncDepartment(){ + try { + Boolean hasAdd = departmentService.syncDepartment(); + return data(hasAdd); + }catch (Exception e){ + log.error("添加部门失败",e); + return fail(); + } + } } diff --git a/src/main/java/com/kiisoo/ic/department/mapper/PrivilageDepartmentDOMapper.java b/src/main/java/com/kiisoo/ic/department/mapper/PrivilageDepartmentDOMapper.java new file mode 100644 index 0000000..2aac3a9 --- /dev/null +++ b/src/main/java/com/kiisoo/ic/department/mapper/PrivilageDepartmentDOMapper.java @@ -0,0 +1,9 @@ +package com.kiisoo.ic.department.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kiisoo.ic.department.entity.DepartmentDO; +import org.springframework.stereotype.Repository; + +@Repository +public interface PrivilageDepartmentDOMapper extends BaseMapper { +} diff --git a/src/main/java/com/kiisoo/ic/department/service/DepartmentService.java b/src/main/java/com/kiisoo/ic/department/service/DepartmentService.java index 2d16e00..f8df41a 100644 --- a/src/main/java/com/kiisoo/ic/department/service/DepartmentService.java +++ b/src/main/java/com/kiisoo/ic/department/service/DepartmentService.java @@ -1,12 +1,18 @@ package com.kiisoo.ic.department.service; import com.kiisoo.ic.department.entity.DepartmentDO; +import com.kiisoo.ic.department.mapper.PrivilageDepartmentDOMapper; import com.kiisoo.ic.wx.service.QWMailListManageService; import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.cp.bean.WxCpDepart; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + /** * @Description: 部门管理service * @Auther: yechenhao @@ -19,6 +25,9 @@ public class DepartmentService { @Autowired private QWMailListManageService qwMailListManageService; + @Autowired + private PrivilageDepartmentDOMapper departmentDOMapper; + @Transactional(rollbackFor = Exception.class) public Boolean addDepartment(DepartmentDO departmentDO) throws WxErrorException { //数据库创建部门(需要返回部门id) @@ -28,4 +37,19 @@ public class DepartmentService { return true; } + + @Transactional(rollbackFor = Exception.class) + public Boolean syncDepartment() throws WxErrorException { + //获取企业微信部门架构 + List wxCpDeparts = qwMailListManageService.syncDepartment(); + if (CollectionUtils.isNotEmpty(wxCpDeparts)){ + wxCpDeparts.forEach(wxDept -> { + DepartmentDO departmentDO = new DepartmentDO(); + BeanUtils.copyProperties(wxDept,departmentDO); + + }); + } +// departmentDOMapper.insert(departmentDO); + return true; + } } diff --git a/src/main/java/com/kiisoo/ic/employee/entity/PrivilageCpUserDO.java b/src/main/java/com/kiisoo/ic/employee/entity/PrivilageCpUserDO.java index 3d04495..2f15100 100644 --- a/src/main/java/com/kiisoo/ic/employee/entity/PrivilageCpUserDO.java +++ b/src/main/java/com/kiisoo/ic/employee/entity/PrivilageCpUserDO.java @@ -1,31 +1,68 @@ package com.kiisoo.ic.employee.entity; -/** - * 用户对应企业微信 - */ + public class PrivilageCpUserDO { - private long id; - /**'成员名'*/ - private String name; - /**企业微信userId(账号)*/ + + /** + * 主键id + */ + private Long id; + /** + * 企业微信账号(userId) + */ private String cpUserId; - /**privilage_user中id*/ - private long userId; - /**'手机号(唯一)'*/ + /** + * 姓名 + */ + private String name; + /** + * 别名 + */ + private String alias; + /** + * '性别。1表示男性,2表示女性 + */ + private Integer gender; + /** + * 邮箱。长度6~64个字节,且为有效的email格式。企业内必须唯一,mobile/email二者不能同时为空 + */ + private String email; + /** + * 地址 + */ + private String address; + /** + * 职务信息。长度为0~128个字符 + */ + private String position; + /** + * 手机号(唯一) + */ private String mobile; - /**'成员状态'*/ - private long status; + /** + * 成员状态 + */ + private Integer status; - public long getId() { + public Long getId() { return id; } - public void setId(long id) { + public void setId(Long id) { this.id = id; } + public String getCpUserId() { + return cpUserId; + } + + public void setCpUserId(String cpUserId) { + this.cpUserId = cpUserId; + } + + public String getName() { return name; } @@ -35,39 +72,47 @@ public class PrivilageCpUserDO { } - public String getCpUserId() { - return cpUserId; + public String getAlias() { + return alias; } - public void setCpUserId(String cpUserId) { - this.cpUserId = cpUserId; + public void setAlias(String alias) { + this.alias = alias; } + public String getEmail() { + return email; + } - public long getUserId() { - return userId; + public void setEmail(String email) { + this.email = email; } - public void setUserId(long userId) { - this.userId = userId; + + public String getAddress() { + return address; } + public void setAddress(String address) { + this.address = address; + } - public String getMobile() { - return mobile; + + public String getPosition() { + return position; } - public void setMobile(String mobile) { - this.mobile = mobile; + public void setPosition(String position) { + this.position = position; } - public long getStatus() { - return status; + public String getMobile() { + return mobile; } - public void setStatus(long status) { - this.status = status; + public void setMobile(String mobile) { + this.mobile = mobile; } } diff --git a/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java b/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java index 469bff0..abf7519 100644 --- a/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java +++ b/src/main/java/com/kiisoo/ic/employee/service/EmployeeService.java @@ -27,9 +27,8 @@ public class EmployeeService { @Transactional(rollbackFor = Exception.class) public Boolean addUser(EmployeeDO employee) throws WxErrorException { - //数据库创建用户 + PrivilageCpUserDO privilageCpUserDO = new PrivilageCpUserDO(); - //数据库创建登录account //成功则添加用户到企业微信 qwMailListManageService.addUser(employee); diff --git a/src/main/java/com/kiisoo/ic/wx/service/QWMailListManageService.java b/src/main/java/com/kiisoo/ic/wx/service/QWMailListManageService.java index 9403fac..325af2e 100644 --- a/src/main/java/com/kiisoo/ic/wx/service/QWMailListManageService.java +++ b/src/main/java/com/kiisoo/ic/wx/service/QWMailListManageService.java @@ -7,14 +7,14 @@ import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.cp.api.WxCpDepartmentService; import me.chanjar.weixin.cp.api.WxCpService; import me.chanjar.weixin.cp.api.WxCpUserService; -import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl; import me.chanjar.weixin.cp.bean.WxCpDepart; import me.chanjar.weixin.cp.bean.WxCpUser; -import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description: 企业微信用户管理service * @Auther: yechenhao @@ -41,7 +41,7 @@ public class QWMailListManageService { } /** - * 增加企业微信用户 + * 增加企业微信部门 */ public void addDepartment(DepartmentDO departmentDO) throws WxErrorException { wxCpService = WxCpConfiguration.getCpService(applicationid); @@ -50,4 +50,13 @@ public class QWMailListManageService { BeanUtils.copyProperties(departmentDO,wxCpDepart); departmentService.create(wxCpDepart); } + + /** + * 获取企业微信所有部门架构 + */ + public List syncDepartment() throws WxErrorException { + wxCpService = WxCpConfiguration.getCpService(applicationid); + WxCpDepartmentService departmentService = wxCpService.getDepartmentService(); + return departmentService.list(null); + } }