From f2f77f203fd6b054197ecaba0517a159e8b3ac8f Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Mon, 30 Oct 2023 15:48:24 +0800 Subject: [PATCH] fix:补偿0问题修改 --- screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 206 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 142 insertions(+), 64 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java index 46171c8..f6bcba5 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java @@ -1,6 +1,27 @@ package com.moral.api.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.entity.*; +import com.moral.api.mapper.*; +import com.moral.api.pojo.bo.UserBO; +import com.moral.api.pojo.enums.FileTableEnum; +import com.moral.api.pojo.vo.file.FileVo; +import com.moral.api.service.FileTableService; +import com.moral.api.service.UserService; +import com.moral.api.utils.OperationLogUtils; +import com.moral.api.utils.WechatUtils; +import com.moral.constant.Constants; +import com.moral.constant.ResponseCodeEnum; +import com.moral.util.*; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -9,49 +30,9 @@ import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - import javax.servlet.http.HttpServletRequest; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.moral.api.entity.Group; -import com.moral.api.entity.Menu; -import com.moral.api.entity.Organization; -import com.moral.api.entity.ResponsibilityUnit; -import com.moral.api.entity.User; -import com.moral.api.entity.UserGroup; -import com.moral.api.entity.UserLog; -import com.moral.api.mapper.MenuMapper; -import com.moral.api.mapper.ResponsibilityUnitMapper; -import com.moral.api.mapper.UserGroupMapper; -import com.moral.api.mapper.UserLogMapper; -import com.moral.api.mapper.UserMapper; -import com.moral.api.pojo.bo.UserBO; -import com.moral.api.service.ResponsibilityUnitService; -import com.moral.api.service.UserService; -import com.moral.api.utils.OperationLogUtils; -import com.moral.constant.Constants; -import com.moral.constant.ResponseCodeEnum; -import com.moral.util.AESUtils; -import com.moral.util.ConvertUtils; -import com.moral.util.DateUtils; -import com.moral.util.MD5Utils; -import com.moral.util.RegexUtils; -import com.moral.util.TokenUtils; -import com.moral.util.WebUtils; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -78,7 +59,13 @@ private UserLogMapper userLogMapper; @Autowired + private FileTableService fileTableService; + + @Autowired private OperationLogUtils operationLogUtils; + + @Autowired + private ResponsibilityUnitMapper responsibilityUnitMapper; @Value("${AES.KEY}") @@ -89,23 +76,21 @@ return userMapper.selectUserInfo(parameters); } + /** + * ��������������� + * @param parameters + * @return + */ @Override + @Transactional public Map<String, Object> loginSmallRoutine(Map<String, Object> parameters) { UserBO userBo = selectUserInfo(parameters); + String openId = parameters.get("openId").toString(); Map<String, Object> result = new HashMap<>(); //������������ if (userBo == null) { result.put("code", ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode()); 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; } //������������������ @@ -114,12 +99,7 @@ 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; - } + ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId()); //������������������ Map<String, Object> userInfo = new LinkedHashMap<>(); userInfo.put("userId", userBo.getId()); @@ -128,29 +108,125 @@ userInfo.put("email", userBo.getEmail()); userInfo.put("mobile", userBo.getMobile()); userInfo.put("unitId",userBo.getUnitId()); + userInfo.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getAreaName())?responsibilityUnit.getAreaName():"���������������������"); userInfo.put("wechat", userBo.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); userInfo.put("isAdmin", userBo.getIsAdmin()); + userInfo.put("openid", openId); + 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()); + List<FileVo> listFile = fileTableService.list(userBo.getId(), FileTableEnum.APP_ALLOCATION.value); + result.put("file", CollectionUtils.isNotEmpty(listFile)?listFile.get(0):new FileVo()); + result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������"); } 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; } + sysLog("������������������" + userBo.getAccount()+";openId:"+openId,userBo); + //������openId���user������ + User user = userMapper.selectById(userBo.getId()); + user.setOpenId(openId); + userMapper.updateById(user); + return result; + } + + @Override + public Map<String, Object> wxLogin(String code) { + Map<String, Object> result = new HashMap<>(); + // ������������������������rawData + // ���������signature +// JSONObject rawDataJson = JSON.parseObject(rawData); + // 1.������������������������code + // 2.������������������ ������������������������ appi + appsecret + code + JSONObject SessionKeyOpenId = WechatUtils.getSessionKeyOrOpenId(code); + + // 3.������������������������ ��������������������� + String openid = SessionKeyOpenId.getString("openid"); + String sessionKey = SessionKeyOpenId.getString("session_key"); + + // 4.������������ ������������������������signature������������������������������signature2 = sha1(rawData + sessionKey) +// String signature2 = DigestUtils.sha1Hex(rawData + sessionKey); +// if (!signature.equals(signature2)) { +// return ResultMessage.ok().message("������������������"); +// return ResultMessage.ok("������������������"); +// throw new BusinessException("������������������"); +// } + // 5.���������������User������������������������������������������������������������������������������������������ + LambdaQueryWrapper<User> lqw = Wrappers.lambdaQuery(); + lqw.eq(User::getOpenId, openid); + User user = userMapper.selectOne(lqw); + if (user == null) { + result.put("code", ResponseCodeEnum.USER_NOT_EXIST.getCode()); + result.put("msg", ResponseCodeEnum.USER_NOT_EXIST.getMsg()); + result.put("openId",openid); + return result; + // ������������������ +// String nickName = rawDataJson.getString("nickName"); +// String avatarUrl = rawDataJson.getString("avatarUrl"); + } + + Map<String, Object> userInfo = new LinkedHashMap<>(); + userInfo.put("userId", user.getId()); + userInfo.put("account", user.getAccount()); + userInfo.put("userName", user.getUserName()); + userInfo.put("email", user.getEmail()); + userInfo.put("mobile", user.getMobile()); + userInfo.put("unitId",user.getUnitId()); +// userInfo.put("unName",user.getAreaName()); + 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.getTokenApp(new StringBuffer("00").append(user.getId().toString()).toString(),userInfo); + result.put("token", token); + result.put("userName", user.getUserName()); + result.put("unitId",user.getUnitId()); + List<FileVo> listFile = fileTableService.list(user.getId(), FileTableEnum.APP_ALLOCATION.value); + result.put("file", CollectionUtils.isNotEmpty(listFile)?listFile.get(0):new FileVo()); + result.put("userId", user.getId()); + result.put("account", user.getAccount()); + result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������"); + } 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; + } + 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_TYPE); + userLog.setType(Constants.LOGIN_OPERTATE_APP); userLog.setIp(WebUtils.getIpAddr(request)); - userLog.setOperateId(userBo.getId()); - userLog.setOrganizationId(userBo.getOrganizationId()); - userLog.setContent("������������������" + userBo.getAccount()); + userLog.setOperateId(user.getId()); + userLog.setOrganizationId(user.getOrganizationId()); + userLog.setContent(cont); userLogMapper.insert(userLog); - return result; } @Override @@ -184,9 +260,10 @@ result.put("msg", ResponseCodeEnum.ACCOUNT_IS_EXPIRE.getMsg()); return result; } + //������������������ Map<String, Object> userInfo = new LinkedHashMap<>(); - + ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId()); //������������ userInfo.put("userId", userBo.getId()); userInfo.put("account", userBo.getAccount()); @@ -194,6 +271,7 @@ userInfo.put("email", userBo.getEmail()); userInfo.put("mobile", userBo.getMobile()); userInfo.put("unitId",userBo.getUnitId()); + userInfo.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getAreaName())?responsibilityUnit.getAreaName():"���������������������"); userInfo.put("wechat", userBo.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); userInfo.put("isAdmin", userBo.getIsAdmin()); -- Gitblit v1.8.0