xuhy
20 小时以前 0a2bb667998f9d3e04c4e217ebde33217b9db6cc
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java
@@ -5,11 +5,13 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.BaseModel;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.framework.web.service.TokenService;
@@ -25,12 +27,22 @@
import com.ruoyi.system.query.KnowledgeListQuery;
import com.ruoyi.system.query.TaskListQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.utils.wx.body.resp.Code2SessionRespBody;
import com.ruoyi.system.utils.wx.body.resq.Code2SessionResqBody;
import com.ruoyi.system.utils.wx.model.WeixinProperties;
import com.ruoyi.system.utils.wx.pojo.AppletUserDecodeData;
import com.ruoyi.system.utils.wx.pojo.AppletUserEncrypteData;
import com.ruoyi.system.utils.wx.tools.WxAppletTools;
import com.ruoyi.system.utils.wx.tools.WxUtils;
import com.ruoyi.system.vo.system.*;
import com.sun.jna.platform.win32.LMAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.validation.Valid;
@@ -52,6 +64,7 @@
 * @author xiaochen
 * @since 2025-05-28
 */
@Slf4j
@Api(tags = "个人中心")
@RestController
@RequestMapping("/t-user")
@@ -96,6 +109,31 @@
    private TProblemEscalationService problemEscalationService;
    @Resource
    private TNoticeService noticeService;
    @Autowired
    private RestTemplate wxRestTemplate;
    @Autowired
    private WeixinProperties weixinProperties;
    @Resource
    private RedisService redisService;
    @ApiOperation(value = "通过code获得openid,获取用户信息",tags = {"微信小程序登录"})
    @GetMapping("/openIdByJsCode")
    public R<String> openIdByJsCode(@RequestParam String code) {
        Long userId = tokenService.getLoginUser().getUserId();
        SysUser sysUser = sysUserService.selectUserById(userId);
        if(Objects.isNull(sysUser)){
            return R.fail("未查询到当前登录用户信息");
        }
        if(StringUtils.hasLength(sysUser.getOpenId())){
            return R.ok();
        }
        log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", code);
        WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService);
        Code2SessionRespBody body = appletTools.getOpenIdByJscode2session(new Code2SessionResqBody().build(code));
        String openid = body.getOpenid();
        sysUser.setOpenId(openid);
        sysUserService.updateUser(sysUser);
        return R.ok();
    }
    @ApiOperation(value = "消息通知列表")
    @PostMapping(value = "/noticeList")
@@ -562,16 +600,37 @@
                for (SysUser sysUser : collect) {
                    Long userRole1 = sysUserService.getUserRole(sysUser.getUserId());
                    SysRole sysRole1 = roleService.selectRoleById(userRole1);
//                    if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) {
//                        if (userDept.getId().equals(sysUser.getDeptId())){
//                            LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
//                            tLeaveAudit.setAvatar(sysUser.getAvatar());
//                            tLeaveAudit.setNickName(sysUser.getNickName());
//                            res.setAuditPerson(tLeaveAudit);
//                            res.setAuditPersonId(sysUser.getUserId() + "");
//                            break;
//                        }
//                    }
                    if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) {
                        if (userDept.getParentId().equals(sysUser.getDeptId())){
                            LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                            tLeaveAudit.setAvatar(sysUser.getAvatar());
                            tLeaveAudit.setNickName(sysUser.getNickName());
                            res.setAuditPerson(tLeaveAudit);
                            res.setAuditPersonId(sysUser.getUserId() + "");
                            break;
                        if (!sysRole.getRoleName().contains("项目部助理")){
                            if (userDept.getParentId().equals(sysUser.getDeptId())){
                                LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                                tLeaveAudit.setAvatar(sysUser.getAvatar());
                                tLeaveAudit.setNickName(sysUser.getNickName());
                                res.setAuditPerson(tLeaveAudit);
                                res.setAuditPersonId(sysUser.getUserId() + "");
                                break;
                            }
                        }else{
                            if (userDept.getId().equals(sysUser.getDeptId())){
                                LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                                tLeaveAudit.setAvatar(sysUser.getAvatar());
                                tLeaveAudit.setNickName(sysUser.getNickName());
                                res.setAuditPerson(tLeaveAudit);
                                res.setAuditPersonId(sysUser.getUserId() + "");
                                break;
                            }
                        }
                    }
                }
            }
@@ -645,6 +704,13 @@
            tLeaveAudit1.setAuditId(auditPerson.getUserId() + "");
            tLeaveAudit1.setAuditType(1);
            leaveAuditService.save(tLeaveAudit1);
            TLeaveAudit tLeaveAudit2 = new TLeaveAudit();
            tLeaveAudit2.setLeaveId(leaveDTO.getId());
            tLeaveAudit2.setAuditStatus(2);
            tLeaveAudit2.setAuditId(user.getUserId() + "," + auditPerson.getUserId());
            tLeaveAudit2.setAuditType(2);
            tLeaveAudit2.setAuditTime(LocalDateTime.now());
            leaveAuditService.save(tLeaveAudit2);
        } else if (!sysRole.getRoleName().equals("部门助理")) {
            // 审批人根据当前角色类型来
            if (sysRole.getRoleName().contains("片区负责人") || sysRole.getRoleName().contains("组长")|| sysRole.getRoleName().contains("队长")
@@ -657,25 +723,48 @@
                    SysRole sysRole1 = roleService.selectRoleById(userRole1);
                    if (sysRole1 != null && sysRole1.getRoleName().equals("项目部负责人")) {
                        if (userDept.getParentId().equals(sysUser.getDeptId())){
                            LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                            tLeaveAudit.setAvatar(sysUser.getAvatar());
                            tLeaveAudit.setNickName(sysUser.getNickName());
                            TLeaveAudit tLeaveAudit1 = new TLeaveAudit();
                            tLeaveAudit1.setLeaveId(leaveDTO.getId());
                            tLeaveAudit1.setAuditStatus(1);
                            tLeaveAudit1.setAuditId(sysUser.getUserId() + "");
                            tLeaveAudit1.setAuditType(1);
                            leaveAuditService.save(tLeaveAudit1);
                            TLeaveAudit tLeaveAudit2 = new TLeaveAudit();
                            tLeaveAudit2.setLeaveId(leaveDTO.getId());
                            tLeaveAudit2.setAuditStatus(2);
                            tLeaveAudit2.setAuditId(user.getUserId() + "," + sysUser.getUserId());
                            tLeaveAudit2.setAuditType(2);
                            tLeaveAudit2.setAuditTime(LocalDateTime.now());
                            leaveAuditService.save(tLeaveAudit2);
                            break;
                        }
                       if (!sysRole.getRoleName().contains("项目部助理")){
                           if (userDept.getParentId().equals(sysUser.getDeptId())){
                               LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                               tLeaveAudit.setAvatar(sysUser.getAvatar());
                               tLeaveAudit.setNickName(sysUser.getNickName());
                               TLeaveAudit tLeaveAudit1 = new TLeaveAudit();
                               tLeaveAudit1.setLeaveId(leaveDTO.getId());
                               tLeaveAudit1.setAuditStatus(1);
                               tLeaveAudit1.setAuditId(sysUser.getUserId() + "");
                               tLeaveAudit1.setAuditType(1);
                               leaveAuditService.save(tLeaveAudit1);
                               TLeaveAudit tLeaveAudit2 = new TLeaveAudit();
                               tLeaveAudit2.setLeaveId(leaveDTO.getId());
                               tLeaveAudit2.setAuditStatus(2);
                               tLeaveAudit2.setAuditId(user.getUserId() + "," + sysUser.getUserId());
                               tLeaveAudit2.setAuditType(2);
                               tLeaveAudit2.setAuditTime(LocalDateTime.now());
                               leaveAuditService.save(tLeaveAudit2);
                               break;
                           }
                       }else{
                           if (userDept.getId().equals(sysUser.getDeptId())){
                               LeaveAuditVO tLeaveAudit = new LeaveAuditVO();
                               tLeaveAudit.setAvatar(sysUser.getAvatar());
                               tLeaveAudit.setNickName(sysUser.getNickName());
                               TLeaveAudit tLeaveAudit1 = new TLeaveAudit();
                               tLeaveAudit1.setLeaveId(leaveDTO.getId());
                               tLeaveAudit1.setAuditStatus(1);
                               tLeaveAudit1.setAuditId(sysUser.getUserId() + "");
                               tLeaveAudit1.setAuditType(1);
                               leaveAuditService.save(tLeaveAudit1);
                               TLeaveAudit tLeaveAudit2 = new TLeaveAudit();
                               tLeaveAudit2.setLeaveId(leaveDTO.getId());
                               tLeaveAudit2.setAuditStatus(2);
                               tLeaveAudit2.setAuditId(user.getUserId() + "," + sysUser.getUserId());
                               tLeaveAudit2.setAuditType(2);
                               tLeaveAudit2.setAuditTime(LocalDateTime.now());
                               leaveAuditService.save(tLeaveAudit2);
                               break;
                           }
                       }
                    }
                }
            }