From 17c774c9c13febdcff654ffd6bbabd313c37a3ee Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Fri, 20 Oct 2023 09:24:09 +0800 Subject: [PATCH] chore:补充提交 --- screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 82 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 82 insertions(+), 0 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 74d935a..b21803f 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,13 @@ package com.moral.api.service.impl; 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 +25,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 +38,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 +47,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 +60,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> @@ -93,8 +102,10 @@ } @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) { @@ -123,6 +134,9 @@ 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<>(); @@ -136,6 +150,8 @@ 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); @@ -155,6 +171,72 @@ userLog.setOrganizationId(userBo.getOrganizationId()); userLog.setContent("������������������" + userBo.getAccount()); userLogMapper.insert(userLog); + //������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()); + try { + //������token������������redis + String token = TokenUtils.getToken(user.getId().toString(), userInfo); + result.put("token", token); + } 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()); return result; } -- Gitblit v1.8.0