|
|
@@ -2,10 +2,9 @@ package com.ydtech.modules.admin.service.impl;
|
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
|
|
import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
-import com.ydtech.modules.admin.convert.SysUserConvert;
|
|
|
-import com.ydtech.modules.admin.dao.SysUserMapper;
|
|
|
import com.ydtech.modules.admin.dao.SysUserRoleMapper;
|
|
|
import com.ydtech.modules.admin.model.SysUser;
|
|
|
import com.ydtech.modules.admin.model.SysUserRole;
|
|
|
@@ -14,9 +13,8 @@ import com.ydtech.modules.admin.model.vo.WechatBindVo;
|
|
|
import com.ydtech.modules.admin.model.vo.WechatLoginVo;
|
|
|
import com.ydtech.modules.admin.service.SysUserService;
|
|
|
import com.ydtech.modules.admin.service.WechatService;
|
|
|
-import com.ydtech.modules.esm.model.SysUserCheck;
|
|
|
-import com.ydtech.modules.esm.service.SysUserCheckService;
|
|
|
import com.ydtech.utils.idgen.IdGenerate;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
|
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
|
@@ -26,7 +24,6 @@ import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.Date;
|
|
|
|
|
|
@@ -34,56 +31,27 @@ import static com.ydtech.constants.RedisConstant.PHONE_VERIFICATION_CODE_KEY;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
+@RequiredArgsConstructor
|
|
|
public class WechatServiceImpl implements WechatService {
|
|
|
|
|
|
@Value("${pyramid.dept.id}")
|
|
|
private String pyramid;
|
|
|
|
|
|
- private final SysUserMapper sysUserMapper;
|
|
|
|
|
|
- @Resource
|
|
|
- private SysUserService sysUserService;
|
|
|
+ private final SysUserService sysUserService;
|
|
|
|
|
|
private final WxMpService wxMpService;
|
|
|
|
|
|
-
|
|
|
private final SysUserRoleMapper sysUserRoleMapper;
|
|
|
|
|
|
private final StringRedisTemplate stringRedisTemplate;
|
|
|
|
|
|
- private final SysUserCheckService sysUserCheckService;
|
|
|
-
|
|
|
- public WechatServiceImpl(SysUserMapper sysUserMapper, WxMpService wxMpService, SysUserRoleMapper sysUserRoleMapper,
|
|
|
- StringRedisTemplate stringRedisTemplate, SysUserCheckService sysUserCheckService) {
|
|
|
- this.sysUserMapper = sysUserMapper;
|
|
|
- this.wxMpService = wxMpService;
|
|
|
-// this.authenticationManager = authenticationManager;
|
|
|
- this.sysUserRoleMapper = sysUserRoleMapper;
|
|
|
- this.stringRedisTemplate = stringRedisTemplate;
|
|
|
-// this.esmUserInternalService = esmUserInternalService;
|
|
|
- this.sysUserCheckService = sysUserCheckService;
|
|
|
- }
|
|
|
-// public WechatServiceImpl(SysUserMapper sysUserMapper, WxMpService wxMpService, AuthenticationManager authenticationManager,
|
|
|
-// SysUserRoleMapper sysUserRoleMapper, StringRedisTemplate stringRedisTemplate, EsmUserInternalService esmUserInternalService,
|
|
|
-// SysUserCheckService sysUserCheckService) {
|
|
|
-// this.sysUserMapper = sysUserMapper;
|
|
|
-// this.wxMpService = wxMpService;
|
|
|
-//// this.authenticationManager = authenticationManager;
|
|
|
-// this.sysUserRoleMapper = sysUserRoleMapper;
|
|
|
-// this.stringRedisTemplate = stringRedisTemplate;
|
|
|
-// this.esmUserInternalService = esmUserInternalService;
|
|
|
-// this.sysUserCheckService = sysUserCheckService;
|
|
|
-// }
|
|
|
-
|
|
|
@Override
|
|
|
- @Transactional
|
|
|
public HttpResult login(WechatLoginVo wechatLoginVo, HttpServletRequest request) throws WxErrorException {
|
|
|
String number;
|
|
|
WxOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(wechatLoginVo.getCode());
|
|
|
String openId = accessToken.getOpenId();
|
|
|
- QueryWrapper<SysUser> query = new QueryWrapper<>();
|
|
|
- query.eq("openid", openId);
|
|
|
- SysUser sysUser = sysUserMapper.selectOne(query);
|
|
|
+ SysUser sysUser = sysUserService.lambdaQuery().eq(SysUser::getOpenid, openId).one();
|
|
|
|
|
|
// 没有绑定微信
|
|
|
if (sysUser == null) {
|
|
|
@@ -95,7 +63,6 @@ public class WechatServiceImpl implements WechatService {
|
|
|
}
|
|
|
|
|
|
String nextPK = IdGenerate.nextCode(maxId, 3);
|
|
|
- System.out.println(nextPK);
|
|
|
SysUserRole sysUserRole = new SysUserRole();
|
|
|
sysUserRole.setUserId(nextPK);
|
|
|
sysUserRole.setRoleId(2L);
|
|
|
@@ -107,14 +74,8 @@ public class WechatServiceImpl implements WechatService {
|
|
|
sysUser1.setDeptId(pyramid);
|
|
|
sysUser1.setId(nextPK);
|
|
|
sysUser1.setOpenid(openId);
|
|
|
- sysUserMapper.insert(sysUser1);
|
|
|
+ sysUserService.save(sysUser1);
|
|
|
number = nextPK;
|
|
|
-
|
|
|
- SysUserCheck sysUserCheck = SysUserConvert.INSTANCE.dto2Check(sysUser1);
|
|
|
- String checkid = String.valueOf(new Date().getTime());
|
|
|
- sysUserCheck.setCheckid(checkid);
|
|
|
- sysUserCheckService.insertSelective(sysUserCheck);
|
|
|
-
|
|
|
} else {
|
|
|
number = sysUser.getId();
|
|
|
}
|
|
|
@@ -140,21 +101,18 @@ public class WechatServiceImpl implements WechatService {
|
|
|
}
|
|
|
|
|
|
// 2.验证手机号是否绑定
|
|
|
- QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("mobile", phone);
|
|
|
- SysUser user = sysUserMapper.selectOne(queryWrapper);
|
|
|
+ SysUser user = sysUserService.lambdaQuery().eq(SysUser::getMobile, phone).one();
|
|
|
+
|
|
|
if (user != null) {
|
|
|
if (user.getOpenid() != null) {
|
|
|
throw new SystemException("手机号已被绑定微信");
|
|
|
} else {
|
|
|
// 2.1 合并已经存在的工号
|
|
|
- QueryWrapper<SysUser> objectQueryWrapper = new QueryWrapper<>();
|
|
|
- objectQueryWrapper.eq("id", wechatBindVo.getJobNumber());
|
|
|
- SysUser sysUser = sysUserMapper.selectOne(objectQueryWrapper);
|
|
|
+ SysUser sysUser = sysUserService.lambdaQuery().eq(SysUser::getId, wechatBindVo.getJobNumber()).one();
|
|
|
user.setOpenid(sysUser.getOpenid());
|
|
|
- int i = sysUserMapper.updateById(user);
|
|
|
- int i1 = sysUserMapper.deleteById(wechatBindVo.getJobNumber());
|
|
|
- if (i == 1 && i1 == 1) {
|
|
|
+ boolean i = sysUserService.updateById(user);
|
|
|
+ boolean i1 = sysUserService.removeById(wechatBindVo.getJobNumber());
|
|
|
+ if (i && i1) {
|
|
|
// JwtAuthenticatioToken token = SecurityUtils.login(request, user.getId(), "", authenticationManager);
|
|
|
return HttpResult.error(10100, "绑定成功");
|
|
|
}
|
|
|
@@ -174,14 +132,12 @@ public class WechatServiceImpl implements WechatService {
|
|
|
public HttpResult<Object> bind(WechatBindVo wechatBindVo) throws WxErrorException {
|
|
|
WxOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(wechatBindVo.getCode());
|
|
|
String openId = accessToken.getOpenId();
|
|
|
- QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
|
|
|
- wrapper.eq("openid", openId);
|
|
|
- SysUser sysUser1 = sysUserMapper.selectOne(wrapper);
|
|
|
- if (sysUser1 != null) {
|
|
|
+
|
|
|
+ SysUser sysUser = sysUserService.lambdaQuery().eq(SysUser::getOpenid, openId).one();
|
|
|
+ if (sysUser != null) {
|
|
|
throw new SystemException("同一微信不能重复绑定");
|
|
|
}
|
|
|
-
|
|
|
- SysUser sysUser = new SysUser();
|
|
|
+ sysUser = new SysUser();
|
|
|
sysUser.setOpenid(openId);
|
|
|
return bindUser(wechatBindVo.getJobNumber(), sysUser);
|
|
|
}
|
|
|
@@ -194,11 +150,11 @@ public class WechatServiceImpl implements WechatService {
|
|
|
*/
|
|
|
@Override
|
|
|
public HttpResult<Object> bindUser(String jobNumber, SysUser sysUser) {
|
|
|
- QueryWrapper<SysUser> query = new QueryWrapper<>();
|
|
|
- query.eq("id", jobNumber);
|
|
|
- int update = sysUserMapper.update(sysUser, query);
|
|
|
|
|
|
- if (update == 1) {
|
|
|
+ LambdaQueryChainWrapper<SysUser> wrapper = sysUserService.lambdaQuery().eq(SysUser::getId, jobNumber);
|
|
|
+
|
|
|
+ boolean update = sysUserService.update(wrapper);
|
|
|
+ if (update) {
|
|
|
return HttpResult.ok("绑定成功");
|
|
|
}
|
|
|
throw new SystemException("绑定失败");
|