Commit aaf0010a by 黄森林

微信公众号个人中心

parent 70fc6c3b
...@@ -71,8 +71,16 @@ public class HhrUser implements Serializable{ ...@@ -71,8 +71,16 @@ public class HhrUser implements Serializable{
*/ */
private String parentIds; private String parentIds;
/**
* 证件信息上传状态
*/
private int uploadState; private int uploadState;
/**
* 微信名
*/
private String wxNickName;
// 非数据库字段 // 非数据库字段
/** /**
......
...@@ -83,66 +83,6 @@ public class LoginPwdController extends BaseController { ...@@ -83,66 +83,6 @@ public class LoginPwdController extends BaseController {
LoginPwdController.schoolMapper=schoolMapper; LoginPwdController.schoolMapper=schoolMapper;
} }
@RequestMapping("/MP_verify_oYaGTxvtIJXLOkXB.txt")
public void auth(HttpServletResponse response) throws IOException {
response.getWriter().print("oYaGTxvtIJXLOkXB");
}
/**
* 微信授权
*
* @param request
* @param response
* @throws UnsupportedEncodingException
*/
@RequestMapping(value = "/weixinAuthorization")
public void weixinAuthorization(HttpServletRequest request, HttpServletResponse response, String state) throws UnsupportedEncodingException {
String url = "https://open.weixin.qq.com/connect/oauth2/authorize?";
url += "appid=";
url += APPID;
url += "&redirect_uri=" + URLEncoder.encode("http://hhrcode.winsun-aly.com/#/login", "UTF-8");//此处和微信会调用的域名相同
url += "&response_type=code&scope=snsapi_userinfo&state="+state;
url += "#wechat_redirect";
log.info(url);
try {
RequestDispatcher rd = request.getRequestDispatcher(url);
rd.forward(request,response);
/* response.sendRedirect(url);*/
} catch (Exception e) {
log.error("微信授权异常"+ e.getMessage(),e);
}
}
/**
* 测试时使用
*
* @param request
* @param response
* @throws UnsupportedEncodingException
*/
@RequestMapping(value = "/weixinAuthorizati")
public void weixinAuthorization(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
String url = "https://open.weixin.qq.com/connect/oauth2/authorize?";
url += "appid=";
url += APPID;
url += "&redirect_uri=" + URLEncoder.encode("http://167460x6b0.51mypc.cn/ciop/forgerpw/callBackLogin", "UTF-8");//此处和微信会调用的域名相同
url += "&response_type=code&scope=snsapi_userinfo";
url += "&state="+"http%3A%2F%2Flocalhost%3A3048%2F%23%2Fsupervisor%3Fid%3D7678%26sign%3Df543efe0512735b8b559b7058a6799ea"+"#wechat_redirect";
try {
response.sendRedirect(url);
} catch (Exception e) {
log.error("微信授权异常"+ e.getMessage(),e);
}
}
@RequestMapping(value = "/callBackLogin")
public void callBackLogin(HttpServletRequest request, HttpServletResponse response) throws Exception {
String code = request.getParameter("code");
String state = request.getParameter("state");
log.info("code=" + code);
log.info("state=" + state);
}
/** /**
* 微信登录 * 微信登录
* *
...@@ -169,6 +109,9 @@ public class LoginPwdController extends BaseController { ...@@ -169,6 +109,9 @@ public class LoginPwdController extends BaseController {
if (StringUtils.isBlank(jsonObject)) { if (StringUtils.isBlank(jsonObject)) {
return ResponseData.error("微信授权失效,请重新授权!"); return ResponseData.error("微信授权失效,请重新授权!");
} }
if(jsonObject.contains("openid")){
return ResponseData.error("微信授权失效,请重新授权!");
}
log.info(jsonObject); log.info(jsonObject);
Map<String,Object> map = JSON.parseObject(jsonObject, Map.class); Map<String,Object> map = JSON.parseObject(jsonObject, Map.class);
String openId = map.get("openid").toString(); String openId = map.get("openid").toString();
...@@ -231,6 +174,9 @@ public class LoginPwdController extends BaseController { ...@@ -231,6 +174,9 @@ public class LoginPwdController extends BaseController {
if (StringUtils.isBlank(jsonObject)) { if (StringUtils.isBlank(jsonObject)) {
return ResponseData.error("微信授权失效,请重新授权!"); return ResponseData.error("微信授权失效,请重新授权!");
} }
if(jsonObject.contains("openid")){
return ResponseData.error("微信授权失效,请重新授权!");
}
log.info(jsonObject); log.info(jsonObject);
Map<String,Object> map = JSON.parseObject(jsonObject, Map.class); Map<String,Object> map = JSON.parseObject(jsonObject, Map.class);
String openId = map.get("openid").toString(); String openId = map.get("openid").toString();
...@@ -292,6 +238,9 @@ public class LoginPwdController extends BaseController { ...@@ -292,6 +238,9 @@ public class LoginPwdController extends BaseController {
if (StringUtils.isBlank(jsonObject)) { if (StringUtils.isBlank(jsonObject)) {
return ResponseData.error("微信授权失效,请重新授权!"); return ResponseData.error("微信授权失效,请重新授权!");
} }
if(jsonObject.contains("openid")){
return ResponseData.error("微信授权失效,请重新授权!");
}
log.info(jsonObject); log.info(jsonObject);
Map<String,Object> map = JSON.parseObject(jsonObject, Map.class); Map<String,Object> map = JSON.parseObject(jsonObject, Map.class);
String openId = map.get("openid").toString(); String openId = map.get("openid").toString();
...@@ -307,15 +256,20 @@ public class LoginPwdController extends BaseController { ...@@ -307,15 +256,20 @@ public class LoginPwdController extends BaseController {
if (StringUtils.isBlank(jsonObject1)) { if (StringUtils.isBlank(jsonObject1)) {
return ResponseData.error("微信授权失效,请重新授权!"); return ResponseData.error("微信授权失效,请重新授权!");
} }
if(jsonObject1.contains("openid")){
return ResponseData.error("微信授权失效,请重新授权!");
}
log.info(jsonObject1); log.info(jsonObject1);
Map<String,Object> map1 = JSON.parseObject(jsonObject1, Map.class); Map<String,Object> map1 = JSON.parseObject(jsonObject1, Map.class);
String headimgurl = map1.get("headimgurl").toString(); String headimgurl = map1.get("headimgurl").toString();
String nickname = map1.get("nickname").toString();
SysUser sysUser = users.get(0); SysUser sysUser = users.get(0);
Wrapper wrapper = new EntityWrapper<>(); Wrapper wrapper = new EntityWrapper<>();
wrapper.eq("id", sysUser.getId()); wrapper.eq("id", sysUser.getId());
Map<String, Object> dataMapping = new HashMap<>(); Map<String, Object> dataMapping = new HashMap<>();
dataMapping.put("open_id", openId); dataMapping.put("open_id", openId);
dataMapping.put("wx_head_img_url",headimgurl); dataMapping.put("wx_head_img_url",headimgurl);
dataMapping.put("wx_nick_name",nickname);
Integer integer = hhrUserMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper); Integer integer = hhrUserMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper);
if (integer == 1) { if (integer == 1) {
return ResponseData.success(openId); return ResponseData.success(openId);
...@@ -593,7 +547,7 @@ public class LoginPwdController extends BaseController { ...@@ -593,7 +547,7 @@ public class LoginPwdController extends BaseController {
hhrUser.setUploadState(1); hhrUser.setUploadState(1);
insert += hhrUserMapper.insert(hhrUser); insert += hhrUserMapper.insert(hhrUser);
if (insert == 3){ if (insert == 3){
return ResponseData.success("账号创建成功!"); return ResponseData.success("账号创建成功,待管理员审核!");
} }
if (insert == 0){ if (insert == 0){
return ResponseData.error("账号创建失败!"); return ResponseData.error("账号创建失败!");
......
package com.winsun.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.auth.core.util.DateUtil;
import com.winsun.auth.core.util.ResponseEntity;
import com.winsun.auth.model.user.User;
import com.winsun.bean.HhrUser;
import com.winsun.bean.SysUser;
import com.winsun.mapper.AppMapper;
import com.winsun.mapper.HhrUserMapper;
import com.winsun.mapper.SysUserMapper;
import com.winsun.smsUtils.SendSmsAndMail;
import com.winsun.utils.MyBatisPlusUpdateUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* @Author: hsl
* @Date: 2020/4/23 10:54
*/
@RequestMapping("PersonalCenter")
@RestController
@Slf4j
public class PersonalCenter extends BaseController {
private static HhrUserMapper hhrUserMapper;
private static SysUserMapper sysUserMapper;
private static AppMapper appMapper;
private static StringRedisTemplate stringRedisTemplate;
private static long CODETIME = 1000 * 60 * 5;
private String EDITPHONE = "EditPhone";
@Autowired
public PersonalCenter(SysUserMapper sysUserMapper, HhrUserMapper hhrUserMapper, AppMapper appMapper,StringRedisTemplate stringRedisTemplate) {
PersonalCenter.sysUserMapper = sysUserMapper;
PersonalCenter.hhrUserMapper = hhrUserMapper;
PersonalCenter.appMapper = appMapper;
PersonalCenter.stringRedisTemplate = stringRedisTemplate;
}
@Permission(menuname = "修改手机号", value = "editPhone", method = RequestMethod.POST)
public ResponseData<String> editPhone(String partner,String phone,String verificationCode) {
ShiroUser user = getShiroUser();
if(!partner.equals(String.valueOf(user.getId()))){
return ResponseData.error("当前登录账户和修改账号冲突!");
}
String key = user.getAccount() + EDITPHONE;
String code = stringRedisTemplate.opsForValue().get(key);
if(!verificationCode.equals(code)){
return ResponseData.error("验证码错误,请重新输入!");
}
if(phone.length() != 11){
return ResponseData.error("手机号码,请重新输入!");
}
Wrapper<SysUser> wrapper = new EntityWrapper<>();
wrapper.eq("id",user.getId());
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("phone",phone);
dataMap.put("updateTime",new Date());
Integer integer = sysUserMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMap), wrapper);
if(integer == 1){
return ResponseData.success("修改成功!");
}else {
return ResponseData.error("修改失败!");
}
}
@Permission(menuname = "修改手机号发送短信", value = "sentEditPhone", method = RequestMethod.POST)
public ResponseData<String> sentEditPhone(String partner) {
ShiroUser user = getShiroUser();
if(!partner.equals(String.valueOf(user.getId()))){
return ResponseData.error("当前登录账户和修改账号冲突!");
}
String id = String.valueOf(user.getId());
return phoneCode(id,EDITPHONE);
}
public static ResponseData<String> phoneCode(String id,String type) {
SysUser sysUser = sysUserMapper.selectById(id);
if(sysUser==null){
return ResponseData.error("当前登录账户异常!");
}
//5分钟内有效
String code = sysUser.getAccount() + type;
Long expire = stringRedisTemplate.getExpire(code);
//验证码 有效时间是五分钟倒计时
if (expire > (60 * 4)) {
return ResponseData.error("请勿频繁发送手机验证码操作!");
}
String verificationCode = String.valueOf((int) ((Math.random() * 9 + 1) * 100000));
stringRedisTemplate.opsForValue().set(code, verificationCode, CODETIME, TimeUnit.MILLISECONDS);
try {
if (sysUser.getPhone().length() == 11) {
SendSmsAndMail.sendSms(sysUser.getPhone(), verificationCode, "7");
return ResponseData.success("发送成功!");
} else {
return ResponseData.error("当前用户手机号码不合法!");
}
} catch (Exception e) {
log.info("错误信息:{}"+ e.getMessage(),e);
return ResponseData.error("手机短信发送失败!");
}
}
@Permission(menuname = "个人中心用户详情", value = "partnerInfo", method = RequestMethod.POST)
public ResponseData<Map<String, Object>> selectPartnerInfo(String partner) {
SysUser sysUser = sysUserMapper.selectById(partner);
if (sysUser==null) {
return ResponseData.error("当前用户不存在!");
}
HhrUser hhrUser = hhrUserMapper.selectById(partner);
if (hhrUser==null) {
return ResponseData.error("当前用户异常!");
}
Map<String, Object> hashMap = new HashMap<>();
hashMap.put("phone", sysUser.getPhone());
hashMap.put("account", sysUser.getAccount());
hashMap.put("userName", sysUser.getName());
hashMap.put("sex", sysUser.getSex());
hashMap.put("grade", hhrUser.getGrade());
hashMap.put("idCard", hhrUser.getIdCard());
hashMap.put("substName", sysUser.getSubstName());
String schoolId = appMapper.selectSchoolId(partner);
String school = appMapper.selectSchoolById(schoolId);
hashMap.put("school", school);
hashMap.put("position", hhrUser.getPosition());
hashMap.put("createtime", sysUser.getCreatetime());
hashMap.put("wxNickName", hhrUser.getWxNickName());
hashMap.put("wxHeadImgUrl",hhrUser.getWxHeadImgUrl());
return ResponseData.success(hashMap);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment