| | |
| | | import com.ruoyi.system.api.domain.dto.MerEditUserDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtShopStaffEditDto; |
| | | import com.ruoyi.system.api.domain.poji.sys.SysDept; |
| | | import com.ruoyi.system.api.domain.poji.sys.SysUser; |
| | | import com.ruoyi.system.api.domain.vo.MgtUserTaskMsgVo; |
| | | import com.ruoyi.system.api.service.RemoteShopService; |
| | | import com.ruoyi.system.domain.dto.MgtStaffEditDto; |
| | | import com.ruoyi.system.domain.dto.MgtStaffPageDto; |
| | | import com.ruoyi.system.domain.dto.MgtSysStaffImportDto; |
| | | import com.ruoyi.system.domain.pojo.staff.SysStaff; |
| | | import com.ruoyi.system.api.domain.poji.sys.SysStaff; |
| | | import com.ruoyi.system.domain.dto.MgtWxCPStaffDto; |
| | | import com.ruoyi.system.domain.vo.DeptSimpleVo; |
| | | import com.ruoyi.system.domain.vo.MgtDeptStaffListVo; |
| | | import com.ruoyi.system.domain.vo.MgtStaffPageVo; |
| | | import com.ruoyi.system.mapper.staff.SysStaffMapper; |
| | | import com.ruoyi.system.service.staff.SysStaffService; |
| | | import com.ruoyi.system.service.staff.SysWxCpService; |
| | | import com.ruoyi.system.service.sys.ISysDeptService; |
| | | import com.ruoyi.system.service.sys.ISysUserService; |
| | | import com.ruoyi.system.util.QiYeUtils; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | import me.chanjar.weixin.cp.api.WxCpService; |
| | | import me.chanjar.weixin.cp.bean.message.WxCpMessage; |
| | | import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Resource |
| | | private RemoteShopService remoteShopService; |
| | | |
| | | @Resource |
| | | private SysWxCpService sysWxCpService; |
| | | |
| | | @Resource |
| | | private ISysDeptService sysDeptService; |
| | | |
| | | @Resource |
| | | @Qualifier("wxService") |
| | | private WxCpService wxCpService; |
| | | |
| | | |
| | | /** |
| | | * @description 获取部门员工列表 |
| | |
| | | * @return List<MgtDeptStaffListVo> |
| | | */ |
| | | @Override |
| | | public List<MgtDeptStaffListVo> listMgtDeptStaff(){ |
| | | return sysStaffMapper.listMgtDeptStaff(); |
| | | public List<MgtDeptStaffListVo> listMgtDeptStaff(Long deptId,Long userId, String name){ |
| | | return sysStaffMapper.listMgtDeptStaff(deptId,userId, name); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<MgtDeptStaffListVo>listMgtDeptStaffByPermission(Long userId){ |
| | | SysUser sysUser = sysUserService.selectUserById(userId); |
| | | String dataScope = sysUser.getDataScope(); |
| | | List<MgtDeptStaffListVo> deptStaffListVoList; |
| | | if(dataScope!=null&&dataScope.equals("4")){ |
| | | deptStaffListVoList = sysStaffMapper.listMgtDeptStaffByDept(sysUser.getDeptId(),null); |
| | | }else if(dataScope!=null&&dataScope.equals("5")){ |
| | | deptStaffListVoList = sysStaffMapper.listMgtDeptStaffByDept(sysUser.getDeptId(),sysUser.getUserId()); |
| | | }else{ |
| | | deptStaffListVoList = sysStaffMapper.listMgtDeptStaff(); |
| | | // 获取当前登陆人的可视权限 |
| | | SysUser sysUser = sysUserService.selectUserById(userId); |
| | | // 如果当前登陆人权限是查看部门数据 |
| | | Long deptId = null; |
| | | // 如果当前登陆人是查看个人数据 |
| | | Long userId1 = null; |
| | | if (sysUser!=null){ |
| | | String dataScope = sysUser.getDataScope(); |
| | | if (!sysUser.getUserName().equals("admin")){ |
| | | if (org.springframework.util.StringUtils.hasLength(dataScope)){ |
| | | switch (dataScope){ |
| | | case "3": |
| | | // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 |
| | | deptId = sysUser.getDeptId(); |
| | | break; |
| | | case "5": |
| | | // 仅个人数据 查询当前登陆人关联店铺下的用户 |
| | | userId1 = sysUser.getUserId(); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | deptStaffListVoList = sysStaffMapper.listMgtDeptStaff(deptId,userId1, null); |
| | | return deptStaffListVoList; |
| | | } |
| | | |
| | |
| | | queryWrapper.eq(SysStaff::getDelFlag,0); |
| | | queryWrapper.eq(SysStaff::getStaffMobile,mgtStaffEditDto.getStaffMobile()); |
| | | SysStaff sysStaffSame = this.getOne(queryWrapper, false); |
| | | SysDept sysDept = sysDeptService.selectDeptById(mgtStaffEditDto.getDeptId()); |
| | | if(StringUtils.isBlank(mgtStaffEditDto.getStaffAvatar())){ |
| | | mgtStaffEditDto.setStaffAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); |
| | | } |
| | |
| | | sysStaff.setHeadFlag(mgtStaffEditDto.getHeadFlag()); |
| | | sysStaff.setWxUserId(mgtStaffEditDto.getWxUserId()); |
| | | this.saveOrUpdate(sysStaff); |
| | | //同步修改商户员工信息 |
| | | MgtShopStaffEditDto mgtShopStaffEditDto = new MgtShopStaffEditDto(); |
| | | mgtShopStaffEditDto.setUserId(sysStaff.getUserId()); |
| | | mgtShopStaffEditDto.setStaffName(sysStaff.getStaffName()); |
| | | mgtShopStaffEditDto.setStaffMobile(sysStaff.getStaffMobile()); |
| | | mgtShopStaffEditDto.setStaffAvatar(sysStaff.getStaffAvatar()); |
| | | remoteShopService.editMgtShopStaff(mgtShopStaffEditDto); |
| | | //如果wxUserId和wxDeptId不为空 同步到企业微信 |
| | | if(sysStaff.getWxUserId()!=null&&sysDept.getWxDeptId()!=null){ |
| | | log.debug("同步员工到企业微信:"+mgtStaffEditDto.getStaffName()); |
| | | MgtWxCPStaffDto mgtWxCPStaffDto = new MgtWxCPStaffDto(); |
| | | mgtWxCPStaffDto.setWxDeptId(sysDept.getWxDeptId()); |
| | | mgtWxCPStaffDto.setWxUserId(mgtStaffEditDto.getWxUserId()); |
| | | mgtWxCPStaffDto.setStaffName(mgtStaffEditDto.getStaffName()); |
| | | mgtWxCPStaffDto.setStaffMobile(mgtStaffEditDto.getStaffMobile()); |
| | | mgtWxCPStaffDto.setStaffPost(mgtStaffEditDto.getStaffPost()); |
| | | mgtWxCPStaffDto.setStaffEmail(mgtStaffEditDto.getStaffEmail()); |
| | | mgtWxCPStaffDto.setHeadFlag(mgtStaffEditDto.getHeadFlag()); |
| | | sysWxCpService.addWxCpStaff(mgtWxCPStaffDto); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | } |
| | | } |
| | | /*tagName = entity.getTagName(); |
| | | sysTagSame = null; |
| | | // 验证是否存在这个用户 |
| | | queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(SysTag::getDelFlag, 0) // 查询条件:delFlag=0 |
| | | .eq(SysTag::getTagType, tagType) // 查询条件:tagType=mgtTagEditDto的tagType属性 |
| | | .eq(SysTag::getTagName, tagName); // 查询条件:tagName=mgtTagEditDto的tagName属性 |
| | | // 执行查询,获取与查询条件匹配的SysTag对象 |
| | | sysTagSame = this.getOne(queryWrapper); |
| | | if (sysTagSame == null) { |
| | | sysTagNew = new SysTag(); |
| | | sysTagNew.setDelFlag(0); |
| | | sysTagNew.setTagType(tagType); |
| | | sysTagNew.setTagName(tagName); |
| | | sysTagNew.setCreateTime(nowTime); |
| | | sysTagNew.setSynFlag(0); |
| | | this.save(sysTagNew); |
| | | successNum++; |
| | | successMsg.append("<br/>" + successNum + "、标签 " + sysTagNew.getTagName() + " 导入成功"); |
| | | } else { |
| | | failureNum++; |
| | | failureMsg.append("<br/>" + failureNum + "、标签 " + sysTagSame.getTagName() + " 已存在"); |
| | | }*/ |
| | | } catch (Exception e) { |
| | | failureNum++; |
| | | String msg = "<br/>" + failureNum + "员工 " + entity.getStaffName() + " 导入失败:"; |
| | |
| | | } |
| | | return successMsg.toString(); |
| | | } |
| | | |
| | | /** |
| | | * @description 通过id获取员工列表 |
| | | * @author jqs |
| | | * @date 2023/9/5 10:02 |
| | | * @param userIdList |
| | | * @return List<SysStaff> |
| | | */ |
| | | @Override |
| | | public List<SysStaff> listSysStaffByIds(List<Long> userIdList){ |
| | | return sysStaffMapper.listSysStaffByIds(userIdList); |
| | | } |
| | | |
| | | /** |
| | | * @description 企业微信消息推送 |
| | | * @author jqs |
| | | * @date 2023/8/29 11:05 |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void sendTaskMessage(){ |
| | | //获取员工任务列表 |
| | | List<MgtUserTaskMsgVo> userTaskMsgVoList = remoteShopService.getTaskMsgList().getData(); |
| | | WxCpMessage message; |
| | | SysStaff sysStaff; |
| | | if(userTaskMsgVoList!=null&&!userTaskMsgVoList.isEmpty()){ |
| | | //循环发送消息 |
| | | for(MgtUserTaskMsgVo mgtUserTaskMsgVo : userTaskMsgVoList){ |
| | | sysStaff = this.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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |