Jelajahi Sumber

人员信息代码修改

wks 2 tahun lalu
induk
melakukan
aa91d08b73

+ 15 - 6
src/main/java/com/ydtech/handler/CreateAndUpdateMetaObjectHandler.java

@@ -1,6 +1,5 @@
 package com.ydtech.handler;
 
-import cn.dev33.satoken.context.SaHolder;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.http.HttpStatus;
@@ -14,7 +13,7 @@ import org.apache.ibatis.reflection.MetaObject;
 import java.util.Date;
 
 /**
- *  MP注入处理器  抄来的
+ * MP注入处理器  抄来的
  *
  * @author: lig
  * @date: 2023年06月30日 0030
@@ -31,15 +30,25 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
                         ? baseEntity.getCreateTime() : new Date();
                 baseEntity.setCreateTime(current);
 //                baseEntity.setUpdateTime(current);
-                String username = StringUtils.isNotBlank(baseEntity.getCreateBy())
-                        ? baseEntity.getCreateBy() : StpUtil.getLoginId().toString();
+                String username;
+
+                if (StringUtils.isNotBlank(baseEntity.getCreateBy())) {
+                    username = baseEntity.getCreateBy();
+                } else {
+                    try {
+                        username = StpUtil.getLoginId().toString();
+                    } catch (Exception e) {
+                        username = null;
+                    }
+                }
+
                 // 当前已登录 且 创建人为空 则填充
                 baseEntity.setCreateBy(username);
                 // 当前已登录 且 更新人为空 则填充
 //                baseEntity.setUpdateBy(username);
             }
         } catch (Exception e) {
-            throw new SystemException(StringUtils.toString(HttpStatus.HTTP_UNAUTHORIZED),"自动注入异常 => " + e.getMessage());
+            throw new SystemException(StringUtils.toString(HttpStatus.HTTP_UNAUTHORIZED), "自动注入异常 => " + e.getMessage());
         }
     }
 
@@ -58,7 +67,7 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
                 }
             }
         } catch (Exception e) {
-            throw new SystemException(StringUtils.toString(HttpStatus.HTTP_UNAUTHORIZED),"自动注入异常 => " + e.getMessage());
+            throw new SystemException(StringUtils.toString(HttpStatus.HTTP_UNAUTHORIZED), "自动注入异常 => " + e.getMessage());
         }
     }
 }

+ 12 - 12
src/main/java/com/ydtech/modules/admin/model/vo/WechatBindPhoneVo.java

@@ -1,32 +1,32 @@
 package com.ydtech.modules.admin.model.vo;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
 import lombok.Data;
 
 import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 
 @Data
+@ApiModel("绑定手机号实体")
 public class WechatBindPhoneVo implements Serializable {
 
     private static final long serialVersionUID = -8171608079371779296L;
-    /**
-     * 微信code
-     */
+
     @NotEmpty(message = "工号不能为空")
+    @ApiModelProperty("工号")
     private String jobNumber;
-    /**
-     * 姓名
-     */
+
+    @ApiModelProperty("姓名")
     @NotEmpty(message = "姓名不能为空")
     private String name;
-    /**
-     * 手机号
-     */
+
+    @ApiModelProperty("手机号")
     @NotEmpty(message = "手机号不能为空")
     private String phone;
-    /**
-     * 验证码
-     */
+
+    @ApiModelProperty("验证码")
     @NotEmpty(message = "验证码不能为空")
     private String phoneMsg;
 

+ 20 - 64
src/main/java/com/ydtech/modules/admin/service/impl/WechatServiceImpl.java

@@ -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("绑定失败");