From c97706c3cc213b7db3d381e8a0435ff0ef9a04d6 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 04 九月 2023 18:53:40 +0800 Subject: [PATCH] seata 同步 支付调整 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java | 201 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 188 insertions(+), 13 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java index 3f6867d..3cdbef9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysWxCpServiceImpl.java @@ -4,6 +4,7 @@ import com.ruoyi.system.api.domain.poji.sys.SysDept; import com.ruoyi.system.api.domain.vo.MgtUserTaskMsgVo; import com.ruoyi.system.api.service.RemoteShopService; +import com.ruoyi.system.domain.dto.MgtWxCPStaffDto; import com.ruoyi.system.domain.pojo.staff.SysStaff; import com.ruoyi.system.service.staff.SysStaffService; import com.ruoyi.system.service.staff.SysWxCpService; @@ -13,8 +14,11 @@ import me.chanjar.weixin.cp.api.WxCpDepartmentService; import me.chanjar.weixin.cp.api.WxCpService; import me.chanjar.weixin.cp.bean.WxCpDepart; +import me.chanjar.weixin.cp.bean.WxCpUser; import me.chanjar.weixin.cp.bean.message.WxCpMessage; import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -31,8 +35,13 @@ @Log4j2 public class SysWxCpServiceImpl implements SysWxCpService { - @Resource + @Autowired + @Qualifier("wxService") private WxCpService wxCpService; + + @Autowired + @Qualifier("adWxService") + private WxCpService adWxCpService; @Resource private RemoteShopService remoteShopService; @@ -42,6 +51,7 @@ @Resource private SysStaffService sysStaffService; + /** * @description * @author jqs @@ -142,28 +152,193 @@ } } + /** + * @description 更新企业微信部门 + * @author jqs + * @date 2023/9/4 15:19 + * @param wxDeptId + * @param deptName + * @return void + */ @Override - public void updateDept(){ + public void updateWxCpDept(Long wxDeptId,String deptName){ WxCpDepart group = new WxCpDepart(); - group.setId(240L); - group.setName("软件开发测试部门"); + group.setId(wxDeptId); + group.setName(deptName); try { - wxCpService.getDepartmentService().update(group); + adWxCpService.getDepartmentService().update(group); } catch (WxErrorException e) { throw new RuntimeException(e); } } + /** + * @description 创建企业微信部门 + * @author jqs + * @date 2023/9/4 15:19 + * @param parentId + * @param deptName + * @return void + */ @Override - public void sendMessage(){ - WxCpMessage message; - message = new WxCpMessage(); - message.setAgentId(1000024); - message.setToUser("jiangqiushi"); - message.setMsgType("text"); - message.setContent("今日需要任务跟进,请注意!"); + public Long addWxCpDept(Long parentId,String deptName){ + WxCpDepart depart = new WxCpDepart(); + depart.setParentId(parentId); + depart.setName(deptName); + Long departId = null; try { - WxCpMessageSendResult result = wxCpService.getMessageService().send(message); + departId = adWxCpService.getDepartmentService().create(depart); + } catch (WxErrorException e) { + throw new RuntimeException(e); + } + return departId; + } + + /** + * @description 删除企业微信部门 + * @author jqs + * @date 2023/9/4 15:19 + * @param wxDeptId + * @return void + */ + @Override + public void deleteWxCpDept(Long wxDeptId){ + try { + adWxCpService.getDepartmentService().delete(wxDeptId); + } catch (WxErrorException e) { + throw new RuntimeException(e); + } + } + + /** + * @description 通过手机号获取wxUserId + * @author jqs + * @date 2023/9/4 15:44 + * @param mobile + * @return String + */ + private String getWxUserIdByMobile(String mobile){ + String wxUserId = null; + try { + wxUserId = adWxCpService.getUserService().getUserId(mobile); + } catch (WxErrorException e) { + throw new RuntimeException(e); + } + return wxUserId; + } + + + /** + * @description 通过wxUserId获取用户 + * @author jqs + * @date 2023/9/4 16:35 + * @param wxUserId + * @return WxCpUser + */ + private WxCpUser getWxCpUser(String wxUserId){ + WxCpUser wxCpUser = null; + try { + wxCpUser = adWxCpService.getUserService().getById(wxUserId); + } catch (WxErrorException e) { + throw new RuntimeException(e); + } + return wxCpUser; + } + + /** + * @description 创建企业微信员工 + * @author jqs + * @date 2023/9/4 15:19 + * @param mgtWxCPStaffDto + * @return void + */ + @Override + public String addWxCpStaff(MgtWxCPStaffDto mgtWxCPStaffDto){ + String wxUserId = mgtWxCPStaffDto.getWxUserId(); + String mobile = mgtWxCPStaffDto.getStaffMobile(); + String oldUserId = this.getWxUserIdByMobile(mobile); + WxCpUser oldWxCpUser = null; + Boolean sameUserId = false; + //判断手机号是否有对应企业微信用户 有则更新 无则新建 + if(StringUtils.isNotBlank(oldUserId)){ + oldWxCpUser = this.getWxCpUser(oldUserId); + }else{ + //当手机号无对应用户时判断wxUserId是否被占用 + oldWxCpUser = this.getWxCpUser(wxUserId); + if(oldWxCpUser!=null){ + sameUserId = true; + oldWxCpUser = null; + } + } + //获取企业微信用户是否存在 + if(oldWxCpUser!=null){ + oldWxCpUser.setUserId(mgtWxCPStaffDto.getWxUserId()); + oldWxCpUser.setName(mgtWxCPStaffDto.getStaffName()); + oldWxCpUser.setMobile(mgtWxCPStaffDto.getStaffMobile()); + if(StringUtils.isNotBlank(mgtWxCPStaffDto.getStaffEmail())){ + oldWxCpUser.setEmail(mgtWxCPStaffDto.getStaffEmail()); + } + if(StringUtils.isNotBlank(mgtWxCPStaffDto.getStaffPost())){ + oldWxCpUser.setPosition(mgtWxCPStaffDto.getStaffPost()); + } + oldWxCpUser.setPosition(mgtWxCPStaffDto.getStaffPost()); + Long[] departIds = new Long[1]; + departIds[0] = mgtWxCPStaffDto.getWxDeptId(); + oldWxCpUser.setDepartIds(departIds); + if(mgtWxCPStaffDto.getHeadFlag()!=null){ + Integer[] isLeaderInDept = new Integer[1]; + isLeaderInDept[0] = Integer.valueOf(mgtWxCPStaffDto.getHeadFlag()); + oldWxCpUser.setIsLeaderInDept(isLeaderInDept); + } + try { + adWxCpService.getUserService().update(oldWxCpUser); + } catch (WxErrorException e) { + throw new RuntimeException(e); + } + }else{ + WxCpUser wxCpUser = new WxCpUser(); + //wxUserId被占用重新生成 + if(sameUserId){ + wxUserId = wxUserId + "1"; + } + wxCpUser.setUserId(wxUserId); + wxCpUser.setName(mgtWxCPStaffDto.getStaffName()); + wxCpUser.setMobile(mgtWxCPStaffDto.getStaffMobile()); + if(StringUtils.isNotBlank(mgtWxCPStaffDto.getStaffEmail())){ + wxCpUser.setEmail(mgtWxCPStaffDto.getStaffEmail()); + } + if(StringUtils.isNotBlank(mgtWxCPStaffDto.getStaffPost())){ + wxCpUser.setPosition(mgtWxCPStaffDto.getStaffPost()); + } + wxCpUser.setPosition(mgtWxCPStaffDto.getStaffPost()); + Long[] departIds = new Long[1]; + departIds[0] = mgtWxCPStaffDto.getWxDeptId(); + wxCpUser.setDepartIds(departIds); + if(mgtWxCPStaffDto.getHeadFlag()!=null){ + Integer[] isLeaderInDept = new Integer[1]; + isLeaderInDept[0] = Integer.valueOf(mgtWxCPStaffDto.getHeadFlag()); + wxCpUser.setIsLeaderInDept(isLeaderInDept); + } + try { + adWxCpService.getUserService().create(wxCpUser); + } catch (WxErrorException e) { + throw new RuntimeException(e); + } + } + return wxUserId; + } + + /** + * @description 删除企业微信员工 + * @author jqs + * @date 2023/9/4 15:19 + * @param wxUserId + * @return void + */ + @Override + public void deleteWxCpStaff(String wxUserId){ + try { + adWxCpService.getUserService().delete(wxUserId); } catch (WxErrorException e) { throw new RuntimeException(e); } -- Gitblit v1.7.1