From a3eaa78c6d839b640c728f4c7d8eb27732627b07 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Fri, 20 Oct 2023 14:51:50 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into qa --- screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 166 insertions(+), 1 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 9f09510..e6b33b5 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,11 +1,14 @@ 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; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; +import org.springframework.web.client.RestTemplate; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -23,8 +26,10 @@ 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.Group; @@ -34,6 +39,7 @@ import com.moral.api.entity.User; import com.moral.api.entity.UserGroup; import com.moral.api.entity.UserLog; +import com.moral.api.exception.BusinessException; import com.moral.api.mapper.MenuMapper; import com.moral.api.mapper.ResponsibilityUnitMapper; import com.moral.api.mapper.UserGroupMapper; @@ -42,9 +48,12 @@ import com.moral.api.pojo.bo.UserBO; import com.moral.api.service.ResponsibilityUnitService; import com.moral.api.service.UserService; +import com.moral.api.utils.HttpClientUtil; 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.constant.ResultMessage; import com.moral.util.AESUtils; import com.moral.util.ConvertUtils; import com.moral.util.DateUtils; @@ -52,6 +61,7 @@ import com.moral.util.RegexUtils; import com.moral.util.TokenUtils; import com.moral.util.WebUtils; +import com.sun.org.apache.regexp.internal.RE; /** * <p> @@ -80,6 +90,9 @@ @Autowired private OperationLogUtils operationLogUtils; + @Autowired + private ResponsibilityUnitMapper responsibilityUnitMapper; + @Value("${AES.KEY}") private String AESKey; @@ -87,6 +100,156 @@ @Override public UserBO selectUserInfo(Map<String, Object> parameters) { 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; + } + //������������������ + if (Constants.DELETE.equals(userBo.getIsDelete())) { + result.put("code", ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode()); + result.put("msg", ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg()); + return result; + } + ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId()); + //������������������ + Map<String, Object> userInfo = new LinkedHashMap<>(); + userInfo.put("userId", userBo.getId()); + userInfo.put("account", userBo.getAccount()); + userInfo.put("userName", userBo.getUserName()); + userInfo.put("email", userBo.getEmail()); + userInfo.put("mobile", userBo.getMobile()); + userInfo.put("unitId",userBo.getUnitId()); + userInfo.put("unName",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.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; + } + 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("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()); + 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_APP); + userLog.setIp(WebUtils.getIpAddr(request)); + userLog.setOperateId(user.getId()); + userLog.setOrganizationId(user.getOrganizationId()); + userLog.setContent(cont); + userLogMapper.insert(userLog); } @Override @@ -120,9 +283,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()); @@ -130,6 +294,7 @@ userInfo.put("email", userBo.getEmail()); userInfo.put("mobile", userBo.getMobile()); userInfo.put("unitId",userBo.getUnitId()); + userInfo.put("unName",responsibilityUnit.getAreaName()); userInfo.put("wechat", userBo.getWechat()); userInfo.put("expireTime", DateUtils.dateToDateString(userBo.getExpireTime())); userInfo.put("isAdmin", userBo.getIsAdmin()); -- Gitblit v1.8.0