Browse Source

调整微信用户关联:取消应用用户,直连系统用户。

master
Yen 3 years ago
parent
commit
c29499f466
  1. 2
      src/main/java/com/qs/serve/common/util/AuthContextUtils.java
  2. 10
      src/main/java/com/qs/serve/controller/WxSvcLoginApi.java
  3. 2
      src/main/java/com/qs/serve/modules/qms/controller/api/QmsDraftApiController.java
  4. 16
      src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java
  5. 2
      src/main/java/com/qs/serve/modules/qms/service/impl/QmsDraftServiceImpl.java
  6. 13
      src/main/java/com/qs/serve/modules/qms/service/impl/QmsFormSubmitServiceImpl.java
  7. 103
      src/main/java/com/qs/serve/modules/ums/controller/UmsUserController.java
  8. 76
      src/main/java/com/qs/serve/modules/ums/entity/UmsUser.java
  9. 42
      src/main/java/com/qs/serve/modules/ums/entity/UmsWxRelate.java
  10. 14
      src/main/java/com/qs/serve/modules/ums/mapper/UmsUserMapper.java
  11. 14
      src/main/java/com/qs/serve/modules/ums/mapper/UmsWxRelateMapper.java
  12. 36
      src/main/java/com/qs/serve/modules/ums/service/UmsUserService.java
  13. 14
      src/main/java/com/qs/serve/modules/ums/service/UmsWxRelateService.java
  14. 61
      src/main/java/com/qs/serve/modules/ums/service/impl/UmsUserServiceImpl.java
  15. 22
      src/main/java/com/qs/serve/modules/ums/service/impl/UmsWxRelateServiceImpl.java
  16. 38
      src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java
  17. 7
      src/main/java/com/qs/serve/modules/wx/entity/WxUser.java
  18. 1
      src/main/java/com/qs/serve/modules/wx/service/WxUserService.java
  19. 8
      src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java

2
src/main/java/com/qs/serve/common/util/AuthContextUtils.java

@ -46,7 +46,7 @@ public class AuthContextUtils {
* 获取微信用户ID
* @return
*/
public static String getAppUserId(){
public static String getWxUserId(){
LoginUser loginUser = getLoginUser();
if(loginUser.getTypeFlag().equals(LoginUserType.APP_USER)){
return loginUser.getUserId();

10
src/main/java/com/qs/serve/controller/WxSvcLoginApi.java

@ -10,8 +10,6 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.HttpCode;
import com.qs.serve.common.model.enums.InterType;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.ums.entity.UmsUser;
import com.qs.serve.modules.ums.service.UmsUserService;
import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.entity.dto.WxLoginUser;
import com.qs.serve.modules.wx.service.WxUserService;
@ -44,8 +42,6 @@ public class WxSvcLoginApi {
private final RedisService redisService;
private final UmsUserService umsUserService;
/**
* 公众号登录
@ -68,9 +64,7 @@ public class WxSvcLoginApi {
}
String token = IdUtil.fastSimpleUUID();
String key = RedisCacheKeys.LOGIN_KEY_WX + token;
String wxUserId = wxUser.getId();
UmsUser umsUser = umsUserService.getByWxUserId(wxUserId,wxUser);
LoginUser loginUser = new LoginUser(umsUser.getId()+"",umsUser.getName(),"",
LoginUser loginUser = new LoginUser(wxUser.getId(),wxUser.getEmpName(),"",
ServletUtils.getIp(request), LoginUserType.SYS_USER,new ArrayList<>(),null,AuthContextUtils.getTenant());
redisService.set(key, JsonUtil.objectToJson(loginUser.loginUserDTO()),2, TimeUnit.DAYS);
objectMap.put("token",token);
@ -83,7 +77,7 @@ public class WxSvcLoginApi {
@PostMapping("/mptest")
public R<?> login(HttpServletRequest request){
Map<String,Object> objectMap = new HashMap<>();
String token = TokenUtil.desEncrypt("1");
String token = TokenUtil.desEncrypt(IdUtil.timeStampId());
String key = RedisCacheKeys.LOGIN_KEY_WX + token;
LoginUser loginUser = new LoginUser("1","微信测试用户","",
ServletUtils.getIp(request), LoginUserType.APP_USER,new ArrayList<>(),null,AuthContextUtils.getTenant());

2
src/main/java/com/qs/serve/modules/qms/controller/api/QmsDraftApiController.java

@ -52,7 +52,7 @@ public class QmsDraftApiController {
qmsDraft = new QmsDraft();
qmsDraft.setGroupId(param.getGroupId());
qmsDraft.setContext(param.getContext());
qmsDraft.setUserId(AuthContextUtils.getAppUserId());
qmsDraft.setUserId(AuthContextUtils.getWxUserId());
qmsDraft.setVersion(param.getVersion());
qmsDraft.setPubFlag("0");
qmsDraftService.save(qmsDraft);

16
src/main/java/com/qs/serve/modules/qms/controller/api/QmsSubmitApiController.java

@ -20,6 +20,8 @@ import com.qs.serve.modules.qms.service.QmsGroupService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.entity.dto.SysUserSimpleVo;
import com.qs.serve.modules.sys.service.SysUserService;
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;
@ -44,6 +46,7 @@ public class QmsSubmitApiController {
private SysUserService userService;
private QmsGroupScopeService qmsGroupScopeService;
private QmsGroupService qmsGroupService;
private WxUserService wxUserService;
/**
* 我的代办已办列表
@ -52,7 +55,7 @@ public class QmsSubmitApiController {
*/
@GetMapping("/myGroupList")
public R<?> todoPage(String finished){
String userId = AuthContextUtils.getAppUserId();
String userId = wxUserService.getCurrentWxUser().getSysUserId();
PageUtil.startPage();
LambdaQueryWrapper<QmsGroupScope> lqw = new LambdaQueryWrapper<>();
lqw.in(QmsGroupScope::getScopeType,1,3);
@ -79,9 +82,9 @@ public class QmsSubmitApiController {
*/
@GetMapping("/page")
public R<PageVo<QmsFormSubmit>> getPage(QmsFormSubmit param){
PageUtil.startPage();
LambdaQueryWrapper<QmsFormSubmit> formSubmitWrapper = new LambdaQueryWrapper<>(param);
formSubmitWrapper.eq(QmsFormSubmit::getUserId, AuthContextUtils.getAppUserId());
formSubmitWrapper.eq(QmsFormSubmit::getUserId,wxUserService.getCurrentWxUser().getSysUserId());
PageUtil.startPage();
List<QmsFormSubmit> list = qmsFormSubmitService.list(formSubmitWrapper);
return R.byPageHelperList(list);
}
@ -95,7 +98,7 @@ public class QmsSubmitApiController {
@SysLog(module = SystemModule.QUESTION, title = "问卷提交记录", biz = BizType.QUERY, inter = InterType.API)
public R<QmsFormSubmit> getById(@PathVariable("id") String id){
QmsFormSubmit qmsFormSubmit = qmsFormSubmitService.getById(id);
if(!qmsFormSubmit.getUserId().equals(AuthContextUtils.getAppUserId())){
if(!qmsFormSubmit.getUserId().equals(wxUserService.getCurrentWxUser().getSysUserId())){
return R.ok();
}
return R.ok(qmsFormSubmit);
@ -111,10 +114,11 @@ public class QmsSubmitApiController {
@SysLog(module = SystemModule.QUESTION, title = "问卷提交记录", biz = BizType.QUERY, inter = InterType.API)
public R<QmsFormSubmit> getByFormId(@PathVariable("groupId") String groupId){
LambdaQueryWrapper<QmsFormSubmit> lqw = new LambdaQueryWrapper<>();
String userId = wxUserService.getCurrentWxUser().getSysUserId();
lqw.eq(QmsFormSubmit::getGroupId,groupId);
lqw.eq(QmsFormSubmit::getUserId,AuthContextUtils.getAppUserId());
lqw.eq(QmsFormSubmit::getUserId,userId);
QmsFormSubmit formSubmit = qmsFormSubmitService.getOne(lqw,false);
if(formSubmit==null || !formSubmit.getUserId().equals(AuthContextUtils.getAppUserId())){
if(formSubmit==null || !formSubmit.getUserId().equals(userId)){
return R.ok();
}
return R.ok(formSubmit);

2
src/main/java/com/qs/serve/modules/qms/service/impl/QmsDraftServiceImpl.java

@ -23,7 +23,7 @@ public class QmsDraftServiceImpl extends ServiceImpl<QmsDraftMapper,QmsDraft> im
@Override
public QmsDraft getUserFormDraft(Long groupId) {
LambdaQueryWrapper<QmsDraft> lqw = new LambdaQueryWrapper<>();
lqw.eq(QmsDraft::getCreateBy, AuthContextUtils.getAppUserId());
lqw.eq(QmsDraft::getCreateBy, AuthContextUtils.getWxUserId());
lqw.eq(QmsDraft::getGroupId,groupId);
lqw.eq(QmsDraft::getPubFlag,0);
return this.getOne(lqw,false);

13
src/main/java/com/qs/serve/modules/qms/service/impl/QmsFormSubmitServiceImpl.java

@ -12,6 +12,8 @@ import com.qs.serve.modules.qms.entity.bo.QmsSubmitBo;
import com.qs.serve.modules.qms.service.QmsFormService;
import com.qs.serve.modules.qms.service.QmsGroupScopeService;
import com.qs.serve.modules.qms.service.QmsGroupService;
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.stereotype.Service;
@ -35,16 +37,17 @@ public class QmsFormSubmitServiceImpl extends ServiceImpl<QmsFormSubmitMapper,Qm
private final QmsFormService qmsFormService;
private final QmsGroupService qmsGroupService;
private final QmsGroupScopeService qmsGroupScopeService;
private final WxUserService wxUserService;
@Override
@Transactional(rollbackFor = Exception.class)
public void submit(QmsSubmitBo param) {
LoginUser loginUser = AuthContextUtils.getLoginUser();
WxUser wxUser = wxUserService.getCurrentWxUser();
QmsGroup qmsGroup = qmsGroupService.getById(param.getGroupId());
QmsForm form = qmsFormService.getById(qmsGroup.getFormId());
LambdaQueryWrapper<QmsFormSubmit> lqw = new LambdaQueryWrapper<>();
lqw.eq(QmsFormSubmit::getGroupId,param.getGroupId());
lqw.eq(QmsFormSubmit::getUserId,loginUser.getUserId());
lqw.eq(QmsFormSubmit::getUserId,wxUser.getSysUserId());
//lqw.eq(QmsFormSubmit::getVersion,param.getVersion());
QmsFormSubmit formSubmit = this.getOne(lqw,false);
if(formSubmit==null){
@ -61,8 +64,8 @@ public class QmsFormSubmitServiceImpl extends ServiceImpl<QmsFormSubmitMapper,Qm
//参数关联
formSubmit.setFormSubmitContext(param.getSubmitContext());
//关联用户
formSubmit.setUserId(loginUser.getUserId());
formSubmit.setUserName(loginUser.getUsername());
formSubmit.setUserId(wxUser.getSysUserId());
formSubmit.setUserName(wxUser.getEmpName());
//时间
formSubmit.setSubmitTime(LocalDateTime.now());
if(formSubmit.getId()==null){
@ -71,7 +74,7 @@ public class QmsFormSubmitServiceImpl extends ServiceImpl<QmsFormSubmitMapper,Qm
this.updateById(formSubmit);
}
//修改完成进度
QmsGroupScope qmsGroupScope = qmsGroupScopeService.getByGroupAndUid(param.getGroupId(),loginUser.getUserId());
QmsGroupScope qmsGroupScope = qmsGroupScopeService.getByGroupAndUid(param.getGroupId(),wxUser.getSysUserId());
qmsGroupScope.setFinished(1);
qmsGroupScopeService.updateById(qmsGroupScope);
}

103
src/main/java/com/qs/serve/modules/ums/controller/UmsUserController.java

@ -1,103 +0,0 @@
package com.qs.serve.modules.ums.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.ums.entity.UmsUser;
import com.qs.serve.modules.ums.service.UmsUserService;
import javax.validation.Valid;
import java.util.List;
/**
* 手机用户
* @author YenHex
* @since 2022-09-13
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("ums/user")
public class UmsUserController {
private UmsUserService umsUserService;
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('ums:user:query')")
public R<PageVo<UmsUser>> getPage(UmsUser param){
PageUtil.startPage();
LambdaQueryWrapper<UmsUser> userWrapper = new LambdaQueryWrapper<>(param);
List<UmsUser> list = umsUserService.list(userWrapper);
return R.byPageHelperList(list);
}
/**
* 根据ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.UMS, title = "手机用户", biz = BizType.QUERY)
@PreAuthorize("hasRole('ums:user:query')")
public R<UmsUser> getById(@PathVariable("id") String id){
UmsUser umsUser = umsUserService.getById(id);
return R.ok(umsUser);
}
/**
* 根据ID更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.UMS, title = "手机用户", biz = BizType.UPDATE)
@PreAuthorize("hasRole('ums:user:update')")
public R<?> updateById(@RequestBody @Valid UmsUser param){
boolean result = umsUserService.updateById(param);
return R.isTrue(result);
}
/**
* 新增手机用户
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.UMS, title = "手机用户", biz = BizType.INSERT)
@PreAuthorize("hasRole('ums:user:insert')")
public R<?> save(@RequestBody @Valid UmsUser param){
boolean result = umsUserService.save(param);
return R.isTrue(result);
}
/**
* 删除手机用户
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.UMS, title = "手机用户", biz = BizType.DELETE)
@PreAuthorize("hasRole('ums:user:delete')")
public R<?> deleteById(@PathVariable("id") String id){
boolean result = umsUserService.removeById(id);
return R.isTrue(result);
}
}

76
src/main/java/com/qs/serve/modules/ums/entity/UmsUser.java

@ -1,76 +0,0 @@
package com.qs.serve.modules.ums.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 手机用户 实体类
* @author YenHex
* @since 2022-09-13
*/
@Data
@TableName("ums_user")
public class UmsUser implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 名称 */
@NotBlank(message = "名称不能为空")
@Length(max = 20,message = "名称长度不能超过20字")
private String name;
/** 手机号 */
@Length(max = 12,message = "手机号长度不能超过12字")
private String mobile;
/** 头像 */
@Length(max = 255,message = "头像长度不能超过255字")
private String avatar;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

42
src/main/java/com/qs/serve/modules/ums/entity/UmsWxRelate.java

@ -1,42 +0,0 @@
package com.qs.serve.modules.ums.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 微信用户关联 实体类
* @author YenHex
* @since 2022-09-13
*/
@Data
@TableName("ums_wx_relate")
public class UmsWxRelate implements Serializable {
private static final long serialVersionUID = 1L;
/** */
@TableId(type = IdType.AUTO)
private Long id;
/** */
@NotBlank(message = "不能为空")
@Length(max = 32,message = "长度不能超过32字")
private String wxUserId;
/** */
@NotNull(message = "不能为空")
private Long appUserId;
}

14
src/main/java/com/qs/serve/modules/ums/mapper/UmsUserMapper.java

@ -1,14 +0,0 @@
package com.qs.serve.modules.ums.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.ums.entity.UmsUser;
/**
* 手机用户 Mapper
* @author YenHex
* @date 2022-09-13
*/
public interface UmsUserMapper extends BaseMapper<UmsUser> {
}

14
src/main/java/com/qs/serve/modules/ums/mapper/UmsWxRelateMapper.java

@ -1,14 +0,0 @@
package com.qs.serve.modules.ums.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.ums.entity.UmsWxRelate;
/**
* 微信用户关联 Mapper
* @author YenHex
* @date 2022-09-13
*/
public interface UmsWxRelateMapper extends BaseMapper<UmsWxRelate> {
}

36
src/main/java/com/qs/serve/modules/ums/service/UmsUserService.java

@ -1,36 +0,0 @@
package com.qs.serve.modules.ums.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.ums.entity.UmsUser;
import com.qs.serve.modules.wx.entity.WxUser;
/**
* 手机用户 服务接口
* @author YenHex
* @date 2022-09-13
*/
public interface UmsUserService extends IService<UmsUser> {
/**
* 通过微信用户获取App用户
* @param wxUserId
* @param wxUser
* @return
*/
UmsUser getByWxUserId(String wxUserId,WxUser wxUser);
/**
* 获取当前app用户
* @return
*/
UmsUser getCurrentAppUser();
/**
* 创建用户
* @param wxUser
* @return
*/
UmsUser createByWxUser(WxUser wxUser);
}

14
src/main/java/com/qs/serve/modules/ums/service/UmsWxRelateService.java

@ -1,14 +0,0 @@
package com.qs.serve.modules.ums.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.ums.entity.UmsWxRelate;
/**
* 微信用户关联 服务接口
* @author YenHex
* @date 2022-09-13
*/
public interface UmsWxRelateService extends IService<UmsWxRelate> {
}

61
src/main/java/com/qs/serve/modules/ums/service/impl/UmsUserServiceImpl.java

@ -1,61 +0,0 @@
package com.qs.serve.modules.ums.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.modules.ums.entity.UmsWxRelate;
import com.qs.serve.modules.ums.mapper.UmsWxRelateMapper;
import com.qs.serve.modules.ums.service.UmsWxRelateService;
import com.qs.serve.modules.wx.entity.WxUser;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.ums.entity.UmsUser;
import com.qs.serve.modules.ums.service.UmsUserService;
import com.qs.serve.modules.ums.mapper.UmsUserMapper;
/**
* 手机用户 服务实现类
* @author YenHex
* @since 2022-09-13
*/
@Slf4j
@Service
@AllArgsConstructor
public class UmsUserServiceImpl extends ServiceImpl<UmsUserMapper,UmsUser> implements UmsUserService {
private final UmsWxRelateService umsWxRelateService;
@Override
public UmsUser getByWxUserId(String wxUserId,WxUser wxUser) {
LambdaQueryWrapper<UmsWxRelate> lqwRelate = new LambdaQueryWrapper<>();
lqwRelate.eq(UmsWxRelate::getWxUserId,wxUserId);
UmsWxRelate wxRelate = umsWxRelateService.getOne(lqwRelate,false);
if(wxRelate!=null){
return this.getById(wxRelate.getAppUserId());
}else {
UmsUser umsUser = this.createByWxUser(wxUser);
wxRelate = new UmsWxRelate();
wxRelate.setAppUserId(umsUser.getId());
wxRelate.setWxUserId(wxUser.getId());
umsWxRelateService.save(wxRelate);
}
return null;
}
@Override
public UmsUser getCurrentAppUser() {
return this.getById(AuthContextUtils.getAppUserId());
}
@Override
public UmsUser createByWxUser(WxUser wxUser) {
UmsUser umsUser = new UmsUser();
umsUser.setName(wxUser.getNickName());
umsUser.setAvatar(wxUser.getHeadimgUrl());
umsUser.setMobile(wxUser.getPhone());
this.save(umsUser);
return umsUser;
}
}

22
src/main/java/com/qs/serve/modules/ums/service/impl/UmsWxRelateServiceImpl.java

@ -1,22 +0,0 @@
package com.qs.serve.modules.ums.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.ums.entity.UmsWxRelate;
import com.qs.serve.modules.ums.service.UmsWxRelateService;
import com.qs.serve.modules.ums.mapper.UmsWxRelateMapper;
/**
* 微信用户关联 服务实现类
* @author YenHex
* @since 2022-09-13
*/
@Slf4j
@Service
@AllArgsConstructor
public class UmsWxRelateServiceImpl extends ServiceImpl<UmsWxRelateMapper,UmsWxRelate> implements UmsWxRelateService {
}

38
src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.wx.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.framework.redis.RedisService;
import com.qs.serve.common.model.annotation.LimitSubmit;
import com.qs.serve.common.model.annotation.SysLog;
@ -9,8 +10,8 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.InterType;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.IdUtil;
import com.qs.serve.modules.ums.entity.UmsUser;
import com.qs.serve.modules.ums.service.UmsUserService;
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.WxPhoneBindParam;
import com.qs.serve.modules.wx.service.WxUserService;
@ -34,28 +35,36 @@ public class WxSvcUserApi {
private WxUserService wxUserService;
private RedisService redisService;
private UmsUserService umsUserService;
private SysUserService sysUserService;
/**
* 用户信息
*/
@GetMapping("/info")
public R<?> info(){
return R.ok(umsUserService.getCurrentAppUser());
WxUser wxUser = wxUserService.getCurrentWxUser();
return R.ok(wxUser);
}
/**
* 获取手机绑定验证码
*/
@LimitSubmit(interval = 60000,message = "短信已发送,请60秒后尝试")
@LimitSubmit(interval = 10000)
@SysLog(title = "手机绑定验证码",inter = InterType.API)
@GetMapping("/phoneCode/{phone}")
public R<?> phoneCode(@PathVariable("phone") String phone){
//拦截未注册的手机号
LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(SysUser::getMobile,phone);
int count = sysUserService.count(lqw);
if(count<1){
return R.error("手机号未被收录");
}
String key = RedisCacheKeys.PHONE_KEY+phone;
String code = redisService.getString(key);
if(code==null){
code = IdUtil.genCode(6);
}
log.debug("手机验证码:{}",code);
log.debug("手机'{}'验证码:{}",phone,code);
redisService.set(key,code,10, TimeUnit.MINUTES);
//TODO send msg
return R.ok();
@ -74,13 +83,16 @@ public class WxSvcUserApi {
if(!param.getCode().equals(code)){
return R.error("验证码无效或过期");
}
// UmsUser wxUser = wxUserService.getCurrentWxUser();
// wxUser.setPhone(param.getPhone());
// wxUserService.updateById(wxUser);
//TODO 修改用户相关信息
UmsUser wxUser = umsUserService.getCurrentAppUser();
wxUser.setMobile(param.getPhone());
umsUserService.updateById(wxUser);
LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(SysUser::getMobile,param.getPhone());
SysUser sysUser = sysUserService.getOne(lqw,false);
WxUser wxUser = wxUserService.getCurrentWxUser();
wxUser.setPhone(param.getPhone());
wxUser.setEmpName(sysUser.getEmerName());
wxUser.setSysUserId(sysUser.getId());
wxUserService.updateById(wxUser);
return R.ok();
}

7
src/main/java/com/qs/serve/modules/wx/entity/WxUser.java

@ -30,6 +30,8 @@ public class WxUser implements Serializable {
@NotNull(message = "公众号配置ID、小程序AppID不能为空")
private String appId;
private String sysUserId;
/** 应用类型【1->小程序;2->公众号】 */
private Integer appType;
@ -56,9 +58,12 @@ public class WxUser implements Serializable {
@NotNull(message = "用户标识不能为空")
private String openId;
/** 昵称 */
/** wx昵称 */
private String nickName;
/** 员工昵称 */
private String empName;
/** 性别(1:男,2:女,0:未知) */
private String sex;

1
src/main/java/com/qs/serve/modules/wx/service/WxUserService.java

@ -17,6 +17,7 @@ public interface WxUserService extends IService<WxUser> {
*/
WxUser getCurrentWxUser();
/**
* 用户登录
* @param wxLoginUser

8
src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java

@ -80,21 +80,21 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUser> impleme
try {
WxOAuth2AccessToken auth2AccessToken = auth2Service.getAccessToken(code);
WxOAuth2UserInfo auth2UserInfo = auth2Service.getUserInfo(auth2AccessToken, GySysConst.LANG_ZH_CN);
WxMpUser wxMpUser = wxMpService.getUserService().userInfo(auth2UserInfo.getOpenid(), GySysConst.LANG_ZH_CN);
wxUser = this.getByOpenId(auth2UserInfo.getOpenid());
if(wxUser == null){
wxUser = new WxUser();
wxUser.setAppId(wxApp.getId());
wxUser.setAppType(wxApp.getAppType());
wxUser.setNickName(auth2UserInfo.getNickname());
wxUser.setEmpName(auth2UserInfo.getNickname());
wxUser.setUnionId(auth2UserInfo.getUnionId());
wxUser.setHeadimgUrl(auth2UserInfo.getHeadImgUrl());
wxUser.setOpenId(auth2UserInfo.getOpenid());
}
/*wxUser.setSubscribe(wxMpUser.getSubscribe()?1:0);
wxUser.setSubscribe(wxMpUser.getSubscribe()?1:0);
wxUser.setSubscribeScene(wxMpUser.getSubscribeScene());
wxUser.setTagidList(JsonUtil.objectToJson(wxMpUser.getTagIds()));*/
//wxUser.setSubscribeTime(wxMpUser.getSubscribeTime());
//wxUser.setGroupId(wxMpUser.getGroupId());
wxUser.setTagidList(JsonUtil.objectToJson(wxMpUser.getTagIds()));
if(wxUser.getId()==null){
save(wxUser);
}else {

Loading…
Cancel
Save