You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

172 lines
6.1 KiB
Java

5 years ago
package com.jingcheng.template.service.impl;
5 years ago
import com.alibaba.fastjson.JSON;
5 years ago
import com.alibaba.fastjson.JSONObject;
5 years ago
import com.jingcheng.template.constants.Constants;
5 years ago
import com.jingcheng.template.mapper.*;
import com.jingcheng.template.model.*;
import com.jingcheng.template.service.UsersService;
import com.jingcheng.template.util.*;
import org.apache.commons.lang3.StringUtils;
5 years ago
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
5 years ago
import org.slf4j.Logger;
5 years ago
import org.springframework.beans.factory.annotation.Value;
5 years ago
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
5 years ago
import java.util.Date;
import java.util.UUID;
5 years ago
@Service("usersService")
@Transactional
public class UsersServiceImpl extends BaseServiceImpl<UsersMapper, Users> implements UsersService<Users> {
@Resource
UsersMapper usersMapper;
5 years ago
@Value("${weixin.accessTokenUrl}")
private String accessTokenUrl;
@Value("${weixin.appId}")
private String appId;
@Value("${weixin.appSecret}")
private String appSecret;
5 years ago
@Value("${weixin.getWxUserInfoUrl}")
private String getWxUserInfoUrl;
5 years ago
Logger logger = LogUtils.getBussinessLogger();
public Users selectByUserNoOrOpenId(String key) {
5 years ago
Users caseUser = new Users();
caseUser.setUserNo(key);
caseUser = usersMapper.selectOne(caseUser);
if (null == caseUser) {
caseUser = new Users();
caseUser.setOpenId(key);
caseUser = usersMapper.selectOne(caseUser);
}
return caseUser;
5 years ago
}
@Override
public Users findByNo(String userNo) {
Users users = new Users();
users.setUserNo(userNo);
return usersMapper.selectOne(users);
}
5 years ago
public Users currentUser() {
Subject subject = SecurityUtils.getSubject();
String key = JWTUtil.getKey(subject.getPrincipal().toString());
Users caseUser = selectByUserNoOrOpenId(key);
return caseUser;
}
5 years ago
/**
* token
*/
@Override
public AjaxResult getUsersByToken(HttpServletRequest request){
AjaxResult ajaxResult = new AjaxResult();
String token = request.getHeader("Authorization");
String user_no = JWTUtil.getKey(token);
if (StringUtils.isBlank(user_no)){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("token过期或者为空");
return ajaxResult;
}
Users user = new Users();
user.setUserNo(user_no);
user.setState(1);
Users users = usersMapper.selectOne(user);
if(users == null){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("未找到该用户");
return ajaxResult;
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("users",users);
ajaxResult.setRetcode(AjaxResult.SUCCESS);
ajaxResult.setRetmsg("SUCCESS");
ajaxResult.setData(jsonObject);
return ajaxResult;
}
/**
* / (pc mobile)
* @param ajaxRequest
* @return
*/
@Override
public AjaxResult registUsers(AjaxRequest ajaxRequest,HttpServletRequest httpServletRequest) {
AjaxResult ajaxResult = new AjaxResult();
JSONObject data = ajaxRequest.getData();
ajaxResult.setRetmsg("SUCCESS");
ajaxResult.setRetcode(AjaxResult.SUCCESS);
return ajaxResult;
}
@Override
public AjaxResult getUsersByUsersId(AjaxRequest ajaxRequest) {
AjaxResult ajaxResult = new AjaxResult();
JSONObject data = ajaxRequest.getData();
return ajaxResult;
}
5 years ago
@Override
public AjaxResult registWxUser(String code) {
AjaxResult ajaxResult = new AjaxResult();
String getAccessTokenUrl = accessTokenUrl + appId + "&secret=" + appSecret +
"&code=" + code + "&grant_type=authorization_code";
String accessTokenResult = HttpRequestUtils.sendGet(getAccessTokenUrl);
String openId = JSON.parseObject(accessTokenResult).getString("openid");
5 years ago
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);
String usersId ;
5 years ago
if (null == users){
Users newUsers = new Users();
newUsers.setOpenId(openId);
newUsers.setNickName(nickName);
newUsers.setHeadImgUrl(headimgurl);
newUsers.setUserId(UUID.randomUUID().toString());
5 years ago
newUsers.setSex(sex);
newUsers.setState(Constants.STATE_VALID);
newUsers.setCreateDateTime(new Date());
newUsers.setUpdateDateTime(new Date());
usersMapper.insert(newUsers);
usersId = newUsers.getUserId();
5 years ago
}else {
users.setNickName(nickName);
users.setUpdateDateTime(new Date());
users.setSex(sex);
users.setHeadImgUrl(headimgurl);
usersMapper.updateByPrimaryKeySelective(users);
usersId = users.getUserId();
5 years ago
}
JSONObject userJson = new JSONObject();
userJson.put("usersId",usersId);
5 years ago
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;
5 years ago
}
5 years ago
}