cjl
2023-10-20 58e6dec8c583778714bb1447755f9ffc46b0c5ec
fix:补充提交
11 files modified
118 ■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/AppUserController.java 9 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/exception/consumer/CruiserDataConsumer.java 2 ●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/exception/consumer/SecondDataConsumer.java 2 ●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/UserService.java 1 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java 72 ●●●●● patch | view | raw | blame | history
screen-api/src/main/resources/application-cjl.yml 1 ●●●● patch | view | raw | blame | history
screen-api/src/main/resources/application-dev.yml 1 ●●●● patch | view | raw | blame | history
screen-api/src/main/resources/application-local.yml 1 ●●●● patch | view | raw | blame | history
screen-api/src/main/resources/application-qa.yml 1 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/Constants.java 7 ●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/TokenUtils.java 21 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/AppUserController.java
@@ -3,6 +3,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,8 +31,6 @@
    @Autowired
    private UserService userService;
    @ApiOperation(value = "登陆信息")
    @PostMapping("logins")
    public ResultMessage login(@RequestBody Map<String, Object> parameters) {
@@ -55,5 +54,11 @@
        return ResultMessage.ok(result);
    }
    @GetMapping("/wx/exit")
    @ApiOperation(value = "小程序登陆")
    public ResultMessage updateUserId(@RequestParam @ApiParam(value = "userId",name = "用户主键") Integer userId) {
        userService.updateUserId(userId);
        return ResultMessage.ok();
    }
}
screen-api/src/main/java/com/moral/api/exception/consumer/CruiserDataConsumer.java
@@ -34,7 +34,7 @@
@Component
/*@Component*/
@Slf4j
public class CruiserDataConsumer  implements ConsumerSeekAware {
screen-api/src/main/java/com/moral/api/exception/consumer/SecondDataConsumer.java
@@ -35,7 +35,7 @@
@Component
/*@Component*/
@Slf4j
public class SecondDataConsumer implements ConsumerSeekAware {
screen-api/src/main/java/com/moral/api/service/UserService.java
@@ -51,5 +51,6 @@
    //小程序直接登陆
    Map<String, Object> wxLogin(String code);
    boolean updateUserId(Integer userId);
}
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -1,5 +1,6 @@
package com.moral.api.service.impl;
import com.moral.api.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -101,6 +102,11 @@
        return userMapper.selectUserInfo(parameters);
    }
    /**
     * 小程序登陆
     * @param parameters
     * @return
     */
    @Override
    @Transactional
    public Map<String, Object> loginSmallRoutine(Map<String, Object> parameters) {
@@ -113,30 +119,12 @@
            result.put("msg", ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
            return result;
        }
        //校验密码
        String password = parameters.get("password").toString();
        //密码解密
        password = AESUtils.decrypt(password, AESKey);
        if (!MD5Utils.saltMD5Verify(password, userBo.getPassword())) {
            result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode());
            result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg());
            return result;
        }
        //校验是否删除
        if (Constants.DELETE.equals(userBo.getIsDelete())) {
            result.put("code", ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode());
            result.put("msg", ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg());
            return result;
        }
        //校验是否过期
        if (userBo.getExpireTime() != null && userBo.getExpireTime().getTime() < System.currentTimeMillis()) {
            result.put("code", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getCode());
            result.put("msg", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg());
            return result;
        }
//        JSONObject SessionKeyOpenId = WechatUtils.getSessionKeyOrOpenId(parameters.get("code").toString());
//        String openid = SessionKeyOpenId.getString("openid");
//        String sessionKey = SessionKeyOpenId.getString("session_key");
        ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId());
        //封装用户信息
        Map<String, Object> userInfo = new LinkedHashMap<>();
@@ -154,25 +142,21 @@
        try {
            //生成token,并存入redis
            String token = TokenUtils.getToken(userBo.getId().toString(), userInfo);
            String token = TokenUtils.getTokenApp(new StringBuffer("00").append(userBo.getId().toString()).toString(),userInfo);
            result.put("token", token);
            result.put("userName", userBo.getUserName());
            result.put("unitId",userBo.getUnitId());
            result.put("userId", userBo.getId());
            result.put("account", userBo.getAccount());
            result.put("unName",Objects.nonNull(responsibilityUnit.getAreaName())?responsibilityUnit.getAreaName():"未选择责任单位");
        } catch (Exception e) {
            log.error("token生成异常:" + e.getMessage());
            result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode());
            result.put("msg", ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
            return result;
        }
        //日志
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        UserLog userLog = new UserLog();
        userLog.setType(Constants.LOGIN_OPERTATE_TYPE);
        userLog.setIp(WebUtils.getIpAddr(request));
        userLog.setOperateId(userBo.getId());
        userLog.setOrganizationId(userBo.getOrganizationId());
        userLog.setContent("登陆了用户:" + userBo.getAccount());
        userLogMapper.insert(userLog);
        sysLog("登陆了用户:" + userBo.getAccount()+";openId:"+openId,userBo);
        //添加openId到user表中
        User user = userMapper.selectById(userBo.getId());
        user.setOpenId(openId);
        userMapper.updateById(user);
@@ -225,10 +209,17 @@
        userInfo.put("wechat", user.getWechat());
        userInfo.put("expireTime", DateUtils.dateToDateString(user.getExpireTime()));
        userInfo.put("isAdmin", user.getIsAdmin());
        ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(user.getUnitId());
        try {
            //生成token,并存入redis
            String token = TokenUtils.getToken(user.getId().toString(), userInfo);
            String token = TokenUtils.getTokenApp(new StringBuffer("00").append(user.getId().toString()).toString(),userInfo);
            result.put("token", token);
            result.put("token", token);
            result.put("userName", user.getUserName());
            result.put("unitId",user.getUnitId());
            result.put("userId", user.getId());
            result.put("account", user.getAccount());
            result.put("unName",Objects.nonNull(responsibilityUnit.getAreaName())?responsibilityUnit.getAreaName():"未选择责任单位");
        } catch (Exception e) {
            log.error("token生成异常:" + e.getMessage());
            result.put("code", ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode());
@@ -237,10 +228,31 @@
        }
        result.put("code", ResponseCodeEnum.SUCCESS.getCode());
        result.put("msg", ResponseCodeEnum.SUCCESS.getMsg());
        sysLog("登陆了用户:" + user.getAccount()+" ;openId:"+openid,user);
        return result;
    }
    @Override
    public boolean updateUserId(Integer userId) {
        User user = userMapper.selectById(userId);
        user.setOpenId("0");
        userMapper.updateById(user);
        sysLog(userId+"退出了小程序",user);
        return true;
    }
    private void sysLog(String cont,User user){
        //日志
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        UserLog userLog = new UserLog();
        userLog.setType(Constants.LOGIN_OPERTATE_APP);
        userLog.setIp(WebUtils.getIpAddr(request));
        userLog.setOperateId(user.getId());
        userLog.setOrganizationId(user.getOrganizationId());
        userLog.setContent(cont);
        userLogMapper.insert(userLog);
    }
    @Override
    public Map<String, Object> login(Map<String, Object> parameters) {
        UserBO userBo = selectUserInfo(parameters);
        Map<String, Object> result = new HashMap<>();
screen-api/src/main/resources/application-cjl.yml
@@ -119,6 +119,7 @@
  interceptor:
    exclude:
      - /login
      - /AppUser/**
      - /swagger-ui.html
      - /swagger-resources/**
      - /swagger-ui.html/**
screen-api/src/main/resources/application-dev.yml
@@ -111,6 +111,7 @@
  interceptor:
    exclude:
      - /login
      - /AppUser/**
      - /swagger-ui.html
      - /swagger-resources/**
      - /swagger-ui.html/**
screen-api/src/main/resources/application-local.yml
@@ -118,6 +118,7 @@
  interceptor:
    exclude:
      - /login
      - /AppUser/**
      - /swagger-ui.html
      - /swagger-resources/**
      - /swagger-ui.html/**
screen-api/src/main/resources/application-qa.yml
@@ -122,6 +122,7 @@
  interceptor:
    exclude:
      - /login
      - /AppUser/**
      - /swagger-ui.html
      - /swagger-resources/**
      - /swagger-ui.html/**
screen-common/src/main/java/com/moral/constant/Constants.java
@@ -65,11 +65,16 @@
    public static final String WEB_CHANNEL = "0";
    /*
     * 登陆操作类型
     * 登陆操作类型 web
     * */
    public static final String LOGIN_OPERTATE_TYPE = "0";
    /*
     * 登陆操作类型 app
     * */
    public static final String LOGIN_OPERTATE_APP = "1";
    /*
     * 添加操作类型
     * */
    public static final String INSERT_OPERATE_TYPE = "1";
screen-common/src/main/java/com/moral/util/TokenUtils.java
@@ -76,6 +76,27 @@
                    ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
        }
    }
    public static String getTokenApp(String uid, Object userInfo) {
        //生成加密token
        try {
            //生成token
            String token = TokenEncryptUtils.encoded(uid + "/" + System.currentTimeMillis() / 1000);
            //查询旧的token
            String oldToken = (String) redisTemplate.opsForHash().get("user_token", uid);
            if (oldToken != null)
                redisTemplate.delete(oldToken);
            //新token写入到value中
            redisTemplate.opsForValue().set(token, userInfo);
            //redisTemplate.expire(token, validity_time, TimeUnit.SECONDS);
            //新token写入到Hash中
            redisTemplate.opsForHash().put("user_token", uid, token);
            return token;
        } catch (Exception e) {
            log.error("token生成异常:" + e.getMessage());
            throw new TokenException(ResponseCodeEnum.TOKEN_CREATE_ERROR.getCode(),
                    ResponseCodeEnum.TOKEN_CREATE_ERROR.getMsg());
        }
    }
    /**