From 8dad0f7c1ddaf9235eca9f963a18a564bf0493a2 Mon Sep 17 00:00:00 2001 From: Yen Date: Mon, 26 Sep 2022 16:22:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=91=E5=AE=9A=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/QmsSubmitApiController.java | 2 +- .../sys/controller/SysUserController.java | 12 +++- .../qs/serve/modules/sys/entity/SysUser.java | 3 + .../wx/controller/WxUserController.java | 61 ++++++++++++++++--- .../qs/serve/modules/wx/entity/WxUser.java | 7 +++ .../modules/wx/entity/dto/WxUserBindBo.java | 26 ++++++++ .../modules/wx/entity/dto/WxUserRmBindBo.java | 24 ++++++++ 7 files changed, 126 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/wx/entity/dto/WxUserBindBo.java create mode 100644 src/main/java/com/qs/serve/modules/wx/entity/dto/WxUserRmBindBo.java diff --git a/src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java b/src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java index 42e81744..e0928e1a 100644 --- a/src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java +++ b/src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java @@ -61,7 +61,7 @@ public class QmsSubmitApiController { @GetMapping("/myGroupList") public R todoPage(String finished){ WxUser wxUser = wxUserService.getCurrentWxUser(); - if(wxUser.getSysUserId()==null){ + if(wxUser.getSysUserId()==null||wxUser.getSysUserId().equals("0")){ return R.byEmptyList(); } String userId = wxUser.getSysUserId(); diff --git a/src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java b/src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java index 4306d17d..72ab14eb 100644 --- a/src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java +++ b/src/main/java/com/qs/serve/modules/sys/controller/SysUserController.java @@ -17,6 +17,8 @@ import com.qs.serve.modules.sys.entity.*; import com.qs.serve.modules.sys.entity.dto.*; import com.qs.serve.modules.sys.mapper.SysUserMapper; import com.qs.serve.modules.sys.service.*; +import com.qs.serve.modules.wx.entity.WxUser; +import com.qs.serve.modules.wx.service.WxUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -45,6 +47,7 @@ public class SysUserController { private SysDeptService sysDeptService; private SysPostService sysPostService; private SysRoleService sysRoleService; + private WxUserService wxUserService; private RedisService redisService; @@ -78,6 +81,9 @@ public class SysUserController { sysUser.setAuthorIds(loginUser.getAuthorIds()); sysUser.setAuthorList(loginUser.getAuthorList()); sysUserService.relateInfo(sysUser); + sysUser.setPassword(null); + List wxUserList = wxUserService.getBySysUserId(sysUser.getId()); + sysUser.setWxUserInfoList(wxUserList); return R.ok(sysUser); } @@ -218,7 +224,11 @@ public class SysUserController { param.setMultiDeptIds(deptIds); } List list = sysUserService.listUser(param); - list.forEach(usr->usr.setPassword(null)); + for (SysUser sysUser : list) { + sysUser.setPassword(null); + List wxUserList = wxUserService.getBySysUserId(sysUser.getId()); + sysUser.setWxUserInfoList(wxUserList); + } return R.ok(list); } diff --git a/src/main/java/com/qs/serve/modules/sys/entity/SysUser.java b/src/main/java/com/qs/serve/modules/sys/entity/SysUser.java index 07393fe9..65d1aad8 100644 --- a/src/main/java/com/qs/serve/modules/sys/entity/SysUser.java +++ b/src/main/java/com/qs/serve/modules/sys/entity/SysUser.java @@ -256,6 +256,9 @@ public class SysUser implements Serializable { @TableField(exist = false) private List tenantInfo; + @TableField(exist = false) + private List wxUserInfoList; + /** * 返回前端,过滤敏感信息 * @return diff --git a/src/main/java/com/qs/serve/modules/wx/controller/WxUserController.java b/src/main/java/com/qs/serve/modules/wx/controller/WxUserController.java index 55636c03..171f4630 100644 --- a/src/main/java/com/qs/serve/modules/wx/controller/WxUserController.java +++ b/src/main/java/com/qs/serve/modules/wx/controller/WxUserController.java @@ -1,10 +1,16 @@ package com.qs.serve.modules.wx.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.wx.entity.WxUser; +import com.qs.serve.modules.wx.entity.dto.WxUserBindBo; +import com.qs.serve.modules.wx.entity.dto.WxUserRmBindBo; import com.qs.serve.modules.wx.service.WxUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -26,6 +32,7 @@ import java.util.List; public class WxUserController { private WxUserService wxUserService; + private SysUserService sysUserService; /** * 翻页查询 @@ -35,7 +42,11 @@ public class WxUserController { @GetMapping("/page") public R> getList(WxUser param){ PageUtil.startPage(); - List list = wxUserService.list(new QueryWrapper<>(param)); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + if(param.getNotBindFlag()!=null&¶m.getNotBindFlag().equals(1)){ + lqw.isNull(WxUser::getPhone).or().eq(WxUser::getPhone,""); + } + List list = wxUserService.list(lqw); return R.byPageHelperList(list); } @@ -51,15 +62,51 @@ public class WxUserController { } /** - * 根据ID更新 + * 绑定用户 * @param param * @return */ -// @PostMapping("/updateById") -// public R updateById(@RequestBody @Valid WxUser param){ -// boolean result = wxUserService.updateById(param); -// return R.isTrue(result); -// } + @PostMapping("/bind") + public R bind(@RequestBody @Valid WxUserBindBo param){ + WxUser wxUser = wxUserService.getById(param.getWxUserId()); + if(wxUser.getSysUserId()!=null&&!wxUser.getSysUserId().equals("0")){ + return R.error("该微信用户已被绑定"); + } + SysUser sysUser = sysUserService.getById(param.getSysUserId()); + WxUser updVo = new WxUser(); + updVo.setId(wxUser.getId()); + updVo.setSysUserId(sysUser.getId()); + updVo.setEmpName(sysUser.getName()); + updVo.setPhone(sysUser.getMobile()); + wxUserService.updateById(updVo); + return R.ok(); + } + + /** + * 移除绑定 + * @param param + * @return + */ + @PostMapping("/rmBind") + public R rmBind(@RequestBody @Valid WxUserRmBindBo param){ + if(StringUtils.hasText(param.getWxUserId())){ + WxUser wxUser = wxUserService.getById(param.getWxUserId()); + wxUser.setSysUserId("0"); + wxUser.setEmpName(wxUser.getNickName()); + wxUser.setPhone(""); + wxUserService.updateById(wxUser); + }else if (StringUtils.hasText(param.getSysUserId())){ + SysUser sysUser = sysUserService.getById(param.getSysUserId()); + List wxUserList = wxUserService.getBySysUserId(sysUser.getId()); + for (WxUser wxUser : wxUserList) { + wxUser.setSysUserId("0"); + wxUser.setEmpName(wxUser.getNickName()); + wxUser.setPhone(""); + wxUserService.updateById(wxUser); + } + } + return R.ok(); + } /** * 新增微信用户 diff --git a/src/main/java/com/qs/serve/modules/wx/entity/WxUser.java b/src/main/java/com/qs/serve/modules/wx/entity/WxUser.java index b1e29934..2d96d66e 100644 --- a/src/main/java/com/qs/serve/modules/wx/entity/WxUser.java +++ b/src/main/java/com/qs/serve/modules/wx/entity/WxUser.java @@ -132,5 +132,12 @@ public class WxUser implements Serializable { /** 删除标识 */ @JsonIgnore private Boolean delFlag; + + /** + * 为绑定标识,当值=1表未绑定用户 + */ + @TableField(exist = false) + private Integer notBindFlag; + } diff --git a/src/main/java/com/qs/serve/modules/wx/entity/dto/WxUserBindBo.java b/src/main/java/com/qs/serve/modules/wx/entity/dto/WxUserBindBo.java new file mode 100644 index 00000000..9a511ed4 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/entity/dto/WxUserBindBo.java @@ -0,0 +1,26 @@ +package com.qs.serve.modules.wx.entity.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2022/9/26 + */ +@Data +public class WxUserBindBo { + + /** + * 微信用户ID + */ + @NotNull + private String wxUserId; + + /** + * 人员用户ID + */ + @NotNull + private String sysUserId; + +} diff --git a/src/main/java/com/qs/serve/modules/wx/entity/dto/WxUserRmBindBo.java b/src/main/java/com/qs/serve/modules/wx/entity/dto/WxUserRmBindBo.java new file mode 100644 index 00000000..fe12d922 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/wx/entity/dto/WxUserRmBindBo.java @@ -0,0 +1,24 @@ +package com.qs.serve.modules.wx.entity.dto; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2022/9/26 + */ +@Data +public class WxUserRmBindBo { + + /** + * 微信用户ID(其一不能为空) + */ + private String wxUserId; + + /** + * 人员用户ID(其一不能为空) + */ + private String sysUserId; + +}