package com.jingcheng.template.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; 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; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @Service("usersService") @Transactional public class UsersServiceImpl extends BaseServiceImpl implements UsersService { @Resource UsersMapper usersMapper; @Value("${weixin.accessTokenUrl}") private String accessTokenUrl; @Value("${weixin.appId}") private String appId; @Value("${weixin.appSecret}") private String appSecret; Logger logger = LogUtils.getBussinessLogger(); public Users selectByUserNoOrOpenId(String key) { 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; } @Override public Users findByNo(String userNo) { Users users = new Users(); users.setUserNo(userNo); return usersMapper.selectOne(users); } public Users currentUser() { Subject subject = SecurityUtils.getSubject(); String key = JWTUtil.getKey(subject.getPrincipal().toString()); Users caseUser = selectByUserNoOrOpenId(key); return caseUser; } /** * 通过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; } @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"); String accessToken = JSON.parseObject(accessTokenResult).getString("access_token"); return null; } }