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 | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 250 insertions(+), 1 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 2b94fce..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 @@ -1,6 +1,12 @@ package com.ruoyi.system.service.impl.staff; +import com.ruoyi.common.core.utils.StringUtils; 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; import com.ruoyi.system.service.sys.ISysDeptService; import lombok.extern.log4j.Log4j2; @@ -8,6 +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; @@ -24,11 +35,23 @@ @Log4j2 public class SysWxCpServiceImpl implements SysWxCpService { - @Resource + @Autowired + @Qualifier("wxService") private WxCpService wxCpService; + + @Autowired + @Qualifier("adWxService") + private WxCpService adWxCpService; + + @Resource + private RemoteShopService remoteShopService; @Resource private ISysDeptService sysDeptService; + + @Resource + private SysStaffService sysStaffService; + /** * @description * @author jqs @@ -94,4 +117,230 @@ throw new RuntimeException(e); } } + + /** + * @description 企业微信消息推送 + * @author jqs + * @date 2023/8/29 11:05 + * @return void + */ + @Override + public void sendTaskMessage(){ + //获取员工任务列表 + List<MgtUserTaskMsgVo> userTaskMsgVoList = remoteShopService.getTaskMsgList().getData(); + log.info("定时发送通知任务任务列表---"+userTaskMsgVoList.size()); + WxCpMessage message; + SysStaff sysStaff; + if(userTaskMsgVoList!=null&&!userTaskMsgVoList.isEmpty()){ + //循环发送消息 + for(MgtUserTaskMsgVo mgtUserTaskMsgVo : userTaskMsgVoList){ + sysStaff = sysStaffService.getByUserId(mgtUserTaskMsgVo.getUserId()); + if(sysStaff!=null&& StringUtils.isNotBlank(sysStaff.getWxUserId())){ + message = new WxCpMessage(); + message.setAgentId(1000024); + message.setToUser(sysStaff.getWxUserId()); + message.setMsgType("text"); + message.setContent(mgtUserTaskMsgVo.getTaskTitle()+"今日需要任务跟进,请注意!"); + try { + WxCpMessageSendResult result = wxCpService.getMessageService().send(message); + System.out.println(result); + } catch (WxErrorException e) { + throw new RuntimeException(e); + } + } + } + } + } + + /** + * @description 更新企业微信部门 + * @author jqs + * @date 2023/9/4 15:19 + * @param wxDeptId + * @param deptName + * @return void + */ + @Override + public void updateWxCpDept(Long wxDeptId,String deptName){ + WxCpDepart group = new WxCpDepart(); + group.setId(wxDeptId); + group.setName(deptName); + try { + 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 Long addWxCpDept(Long parentId,String deptName){ + WxCpDepart depart = new WxCpDepart(); + depart.setParentId(parentId); + depart.setName(deptName); + Long departId = null; + try { + 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