From 6c9e50b9520ad32b0ec62dc75e223c8542c606f5 Mon Sep 17 00:00:00 2001 From: ck <851316342@qq.com> Date: Tue, 1 Dec 2020 09:27:30 +0800 Subject: [PATCH] up --- .../template/controller/UsersController.java | 27 +++++++++++ .../com/jingcheng/template/model/Users.java | 6 +-- .../service/impl/UsersServiceImpl.java | 47 ++++++++++++++++++- src/main/resources/application-production.yml | 3 +- 4 files changed, 77 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/jingcheng/template/controller/UsersController.java b/src/main/java/com/jingcheng/template/controller/UsersController.java index 3092a18..91b7b80 100644 --- a/src/main/java/com/jingcheng/template/controller/UsersController.java +++ b/src/main/java/com/jingcheng/template/controller/UsersController.java @@ -7,6 +7,7 @@ import com.jingcheng.template.service.UsersService; import com.jingcheng.template.util.AjaxRequest; import com.jingcheng.template.util.AjaxResult; import com.jingcheng.template.util.PageAjax; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -122,4 +123,30 @@ public class UsersController extends BaseController{ return ajaxResult; } + /** + * 通过code授权 + * @param ajaxRequest + * @param httpServletRequest + * @return + */ + @RequestMapping("regist-wx-user") + public AjaxResult registWxUser(@RequestBody AjaxRequest ajaxRequest,HttpServletRequest httpServletRequest){ + AjaxResult ajaxResult = new AjaxResult(); + JSONObject data = ajaxRequest.getData(); + String code = data.getString("code"); + try { + if (StringUtils.isEmpty(code)){ + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg("code不可为空"); + return ajaxResult; + } + ajaxResult = usersService.registWxUser(code); + } catch (Exception e) { + e.printStackTrace(); + String errMsg = e.getMessage() != null ? e.getMessage() : "操作失败"; + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setRetmsg(errMsg); + } + return ajaxResult; + } } diff --git a/src/main/java/com/jingcheng/template/model/Users.java b/src/main/java/com/jingcheng/template/model/Users.java index dd8ba17..5e53463 100644 --- a/src/main/java/com/jingcheng/template/model/Users.java +++ b/src/main/java/com/jingcheng/template/model/Users.java @@ -15,11 +15,11 @@ public class Users extends BaseEntity { */ private String nickName; - private String wechatNo; - private String openId; - private String unionId; + private String headImgUrl; + + private Integer sex; private String userNo;//工号 diff --git a/src/main/java/com/jingcheng/template/service/impl/UsersServiceImpl.java b/src/main/java/com/jingcheng/template/service/impl/UsersServiceImpl.java index 2373bcf..714c36f 100644 --- a/src/main/java/com/jingcheng/template/service/impl/UsersServiceImpl.java +++ b/src/main/java/com/jingcheng/template/service/impl/UsersServiceImpl.java @@ -2,6 +2,7 @@ package com.jingcheng.template.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.jingcheng.template.constants.Constants; import com.jingcheng.template.mapper.*; import com.jingcheng.template.model.*; import com.jingcheng.template.service.UsersService; @@ -16,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; @Service("usersService") @Transactional @@ -28,6 +30,8 @@ public class UsersServiceImpl extends BaseServiceImpl implem private String appId; @Value("${weixin.appSecret}") private String appSecret; + @Value("${weixin.getWxUserInfoUrl}") + private String getWxUserInfoUrl; Logger logger = LogUtils.getBussinessLogger(); public Users selectByUserNoOrOpenId(String key) { @@ -117,9 +121,48 @@ public class UsersServiceImpl extends BaseServiceImpl implem "&code=" + code + "&grant_type=authorization_code"; String accessTokenResult = HttpRequestUtils.sendGet(getAccessTokenUrl); String openId = JSON.parseObject(accessTokenResult).getString("openid"); - String accessToken = JSON.parseObject(accessTokenResult).getString("access_token"); - return null; + String accessToken = JSON.parseObject(accessTokenResult).getString("access_token"); + String getUserInfoUrl = getWxUserInfoUrl + accessToken + "&openid=" + openId + "&lang=zh_CN"; + String userInfo = HttpRequestUtils.sendGet(getUserInfoUrl); + String nickName = JSON.parseObject(userInfo).getString("nickname"); + Integer subscribe = JSON.parseObject(userInfo).getInteger("subscribe"); + String headimgurl = JSON.parseObject(userInfo).getString("headimgurl"); + Integer sex = JSON.parseObject(userInfo).getInteger("sex"); + Users findUsers = new Users(); + findUsers.setOpenId(openId); + findUsers.setState(Constants.STATE_VALID); + Users users = usersMapper.selectOne(findUsers); + Long usersId ; + if (null == users){ + Users newUsers = new Users(); + newUsers.setOpenId(openId); + newUsers.setNickName(nickName); + newUsers.setHeadImgUrl(headimgurl); + newUsers.setSex(sex); + newUsers.setState(Constants.STATE_VALID); + newUsers.setCreateDateTime(new Date()); + newUsers.setUpdateDateTime(new Date()); + usersMapper.insert(newUsers); + usersId = newUsers.getId(); + }else { + users.setNickName(nickName); + users.setUpdateDateTime(new Date()); + users.setSex(sex); + users.setHeadImgUrl(headimgurl); + usersMapper.updateByPrimaryKeySelective(users); + usersId = users.getId(); + } + JSONObject userJson = new JSONObject(); + userJson.put("id",usersId); + userJson.put("openId",openId); + userJson.put("subscribe",subscribe); + userJson.put("nickname",nickName); + userJson.put("headimgurl",headimgurl); + userJson.put("sex",sex); + ajaxResult.setData(userJson); + ajaxResult.setRetcode(AjaxResult.SUCCESS); + return ajaxResult; } diff --git a/src/main/resources/application-production.yml b/src/main/resources/application-production.yml index b447265..65ab335 100644 --- a/src/main/resources/application-production.yml +++ b/src/main/resources/application-production.yml @@ -59,4 +59,5 @@ pdf: weixin: appId: wxff6b9cc14e112d63 appSecret: 6b5c0bf7112d69861d56ba2fd752d7ed - accessTokenUrl: https://api.weixin.qq.com/sns/oauth2/access_token?appid= \ No newline at end of file + accessTokenUrl: https://api.weixin.qq.com/sns/oauth2/access_token?appid= + getWxUserInfoUrl: https://api.weixin.qq.com/cgi-bin/user/info?access_token= \ No newline at end of file