Commit 9842a787 by 黄森林

微信注册

parent 5a346d54
......@@ -71,6 +71,8 @@ public class HhrUser implements Serializable{
*/
private String parentIds;
private int uploadState;
// 非数据库字段
/**
......
......@@ -15,6 +15,6 @@ import org.springframework.stereotype.Component;
@Component
public interface SysUserMapper extends BaseMapper<SysUser> {
@Insert("insert into `hhr_user` (user_id,school_id) values(#{userId},#{schoolId})")
@Insert("insert into `hhr_user_school` (user_id,school_id) values(#{userId},#{schoolId})")
Integer insertUserSchool(@Param("userId")String userId,@Param("schoolId")String schoolId);
}
package com.winsun.item.modular.system.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.util.DateUtil;
import com.winsun.auth.core.util.MD5Util;
import com.winsun.auth.model.user.User;
import com.winsun.auth.model.user.UserUpdatePwd;
import com.winsun.bean.HhrUser;
import com.winsun.bean.School;
import com.winsun.bean.SysUser;
import com.winsun.item.core.shiro.ShiroKit;
import com.winsun.item.core.util.AccLoginUtil;
import com.winsun.item.core.util.ResponseEntity;
import com.winsun.item.modular.system.service.IUserService;
import com.winsun.item.util.LoginUtils;
import com.winsun.mapper.HhrUserMapper;
import com.winsun.mapper.SchoolMapper;
import com.winsun.mapper.SysUserMapper;
import com.winsun.smsUtils.HttpUtil;
import com.winsun.smsUtils.SendSmsAndMail;
import com.winsun.utils.HttpHelper;
import com.winsun.utils.IDCardUtil;
import com.winsun.utils.MyBatisPlusUpdateUtils;
import com.winsun.utils.PicturesUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.ui.Model;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URLEncoder;
import java.security.NoSuchAlgorithmException;
import java.util.*;
import java.util.concurrent.TimeUnit;
......@@ -75,6 +56,10 @@ public class LoginPwdController extends BaseController {
private static HhrUserMapper hhrUserMapper;
private static SchoolMapper schoolMapper;
private static String PATHTYPE="idCard";
private static String CODE = "verificationCode";
private static String ERRCODENAME = "ForgeERRCODENAME";
......@@ -89,11 +74,13 @@ public class LoginPwdController extends BaseController {
private static String GETPHONECODE = "getPhoneCode";
@Autowired
public LoginPwdController(SysUserMapper sysUserMapper, IUserService userService, StringRedisTemplate stringRedisTemplate, HhrUserMapper hhrUserMapper) {
public LoginPwdController(SysUserMapper sysUserMapper, IUserService userService, StringRedisTemplate stringRedisTemplate,
HhrUserMapper hhrUserMapper,SchoolMapper schoolMapper) {
LoginPwdController.sysUserMapper = sysUserMapper;
LoginPwdController.userService = userService;
LoginPwdController.hhrUserMapper = hhrUserMapper;
LoginPwdController.stringRedisTemplate = stringRedisTemplate;
LoginPwdController.schoolMapper=schoolMapper;
}
@RequestMapping("/MP_verify_oYaGTxvtIJXLOkXB.txt")
......@@ -306,11 +293,25 @@ public class LoginPwdController extends BaseController {
Map<String,Object> map = JSON.parseObject(jsonObject, Map.class);
String openId = map.get("openid").toString();
log.info("openId:"+openId);
String accessToken = map.get("access_token").toString();
String url1 = " https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN";
String jsonObject1 = null;
try {
jsonObject1 = HttpHelper.sendGet(url1);
} catch (Exception e) {
log.error("微信登录获取用户信息失败"+ e.getMessage(),e);
}
if (jsonObject1 == null) {
return ResponseData.error("微信授权失效,请重新授权!");
}
Map<String,Object> map1 = JSON.parseObject(jsonObject1, Map.class);
String headimgurl = map1.get("headimgurl").toString();
SysUser sysUser = users.get(0);
Wrapper wrapper = new EntityWrapper<>();
wrapper.eq("id", sysUser.getId());
Map<String, Object> dataMapping = new HashMap<>();
dataMapping.put("open_id", openId);
dataMapping.put("wx_head_img_url",headimgurl);
Integer integer = hhrUserMapper.updateForSet(MyBatisPlusUpdateUtils.toUpdateSet(dataMapping), wrapper);
if (integer == 1) {
return ResponseData.success(openId);
......@@ -470,4 +471,130 @@ public class LoginPwdController extends BaseController {
}
return ResponseEntity.newJSON("code", 300, "data", "修改失败!");
}
@RequestMapping(value = "selectAddress", method = RequestMethod.POST)
public ResponseData<List<String>> selectAddress(){
return ResponseData.success(schoolMapper.selectAdress());
}
@RequestMapping(value = "selectSchool", method = RequestMethod.POST)
public ResponseData<List<Map<String, Object>>> selectSchool(String subName){
Wrapper<School> wrapper = new EntityWrapper<>();
wrapper.eq("sub_name",subName);
wrapper.setSqlSelect("id","school_name");
List<Map<String, Object>> list = schoolMapper.selectMaps(wrapper);
return ResponseData.success(list);
}
@RequestMapping(value = "registeredAccount", method = RequestMethod.POST)
public ResponseData<String> registeredAccount(@RequestParam("gender") String gender,@RequestParam("username") String username, @RequestParam("phone") String phone,
@RequestParam("idCard") String idCard, @RequestParam(value = "stuCard") String stuCard, @RequestParam("idcardZ") String idcardZ,
@RequestParam("password") String password, @RequestParam("cpassword") String cpassword, @RequestParam("school") String school,
@RequestParam(value = "classZ") String classZ, @RequestParam("substName") String substName, @RequestParam("account") String account) throws NoSuchAlgorithmException, NoSuchAlgorithmException {
if(StringUtils.isBlank(gender)){
return ResponseData.error("性别不能为空!");
}
if(StringUtils.isBlank(username)){
return ResponseData.error("姓名不能为空!");
}
if(StringUtils.isBlank(phone)){
return ResponseData.error("电话不能为空!");
}
if(phone.length() != 11){
return ResponseData.error("手机号码有误!");
}
if(StringUtils.isBlank(idCard)){
return ResponseData.error("身份证号码不能为空!");
}
if(!IDCardUtil.IDCardValidate(idCard)){
return ResponseData.error("身份证号码有误!");
}
if(StringUtils.isBlank(stuCard)){
return ResponseData.error("请上传学生证!");
}
if(StringUtils.isBlank(idcardZ)){
return ResponseData.error("请上传身份证!");
}
if(StringUtils.isBlank(password)){
return ResponseData.error("密码不能为空!");
}
if(StringUtils.isBlank(cpassword)){
return ResponseData.error("原密码不能为空!");
}
if(StringUtils.isBlank(school)){
return ResponseData.error("学校不能为空!");
}
if(StringUtils.isBlank(substName)){
return ResponseData.error("县分不能为空!");
}
if(StringUtils.isBlank(classZ)){
return ResponseData.error("年级不能为空!");
}
if(StringUtils.isBlank(account)){
return ResponseData.error("账号不能为空!");
}
String pattern = "^(?![A-Za-z]+$)(?![A-Z\\d]+$)(?![A-Z\\W]+$)(?![a-z\\d]+$)(?![a-z\\W]+$)(?![\\d\\W]+$)\\S{8,}$";
if (!password.matches(pattern)) {
return ResponseData.error( "密码强制等级低,必须要数字、小写英文字母、大写英文字母或特殊字符混合组成,长度至少8位!");
}
if (password.contains(account)) {
return ResponseData.error("密码与账号信息吻合,禁止使用!");
}
// 对加密的密码进行解密处理
/*ResponseData<String> pwdDecrypt = LoginUtils.pwdDecrypt(password);
if (!pwdDecrypt.isSuccess()) {
return ResponseData.error("密码错误!");
}
password = pwdDecrypt.getData();
ResponseData<String> pwdDecryptc = LoginUtils.pwdDecrypt(cpassword);
if (!pwdDecryptc.isSuccess()) {
return ResponseData.error("密码错误!");
}
cpassword = pwdDecryptc.getData();*/
if(!password.equals(cpassword)){
return ResponseData.error("密码和原密码不同!");
}
Wrapper<SysUser> wrapper = new EntityWrapper<>();
wrapper.eq("account",account);
List<SysUser> users = sysUserMapper.selectList(wrapper);
if(users.size() != 0){
return ResponseData.error("账号已被使用,请换一个账号!");
}
Wrapper<HhrUser> wrapper1 = new EntityWrapper<>();
wrapper1.eq("id_card",account);
List<HhrUser> hhrUsers = hhrUserMapper.selectList(wrapper1);
if(hhrUsers.size() != 0){
return ResponseData.error("一个身份证只能创建一个账号,请换一个身份证!");
}
int insert = 0;
SysUser sysUser = new SysUser();
sysUser.setSex(gender);
sysUser.setAccount(account);
sysUser.setName(username);
sysUser.setPhone(phone);
sysUser.setSalt(ShiroKit.getRandomSalt(5));
sysUser.setSubstName(substName);
sysUser.setCreatetime(new Date());
sysUser.setStatus("2");
sysUser.setPassword(ShiroKit.md5(password, sysUser.getSalt()));
insert += sysUserMapper.insert(sysUser);
insert += sysUserMapper.insertUserSchool(sysUser.getId(), school);
HhrUser hhrUser = new HhrUser();
hhrUser.setId(sysUser.getId());
hhrUser.setIdCard(idCard);
hhrUser.setIdcardImgUrl(PicturesUtil.uploadPictures(idcardZ, sysUser.getId(),PATHTYPE));
hhrUser.setStudentImgUrl(PicturesUtil.uploadPictures(stuCard, sysUser.getId(),PATHTYPE));
hhrUser.setGrade(classZ);
hhrUser.setUploadState(1);
insert += hhrUserMapper.insert(hhrUser);
if (insert == 3){
return ResponseData.success("账号创建成功!");
}
if (insert == 0){
return ResponseData.error("账号创建失败!");
}
return ResponseData.error("账号创建异常,请联系管理员!");
}
}
......@@ -17,6 +17,8 @@ server:
uri-encoding: UTF-8
max-threads: 200
max-connections: 2000
jetty:
max-http-post-size: 1000000
winsun:
app:
version: @project.version@
......
......@@ -15,6 +15,8 @@ server:
uri-encoding: UTF-8
max-threads: 1000
max-connections: 20000
jetty:
max-http-post-size: 1000000
spring:
application:
name: gateway
......
package com.winsun.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.bean.HhrUser;
import com.winsun.bean.School;
import com.winsun.bean.SysUser;
import com.winsun.mapper.HhrUserMapper;
import com.winsun.mapper.SchoolMapper;
import com.winsun.mapper.SysUserMapper;
import com.winsun.utils.IDCardUtil;
import com.winsun.utils.PicturesUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.Map;
/**
* @Author: hsl
* @Date: 2020/4/21 11:19
*/
@RequestMapping("mobileTerminalUser")
@RestController
@Slf4j
public class MobileTerminalUserController {
private static String PATHTYPE="idCard";
private static HhrUserMapper hhrUserMapper;
private static SysUserMapper sysUserMapper;
private static SchoolMapper schoolMapper;
@Autowired
public MobileTerminalUserController(HhrUserMapper hhrUserMapper,SysUserMapper sysUserMapper,SchoolMapper schoolMapper){
MobileTerminalUserController.hhrUserMapper=hhrUserMapper;
MobileTerminalUserController.sysUserMapper=sysUserMapper;
MobileTerminalUserController.schoolMapper=schoolMapper;
}
@RequestMapping("selectAddress")
public ResponseData<List<String>> selectAddress(){
return ResponseData.success(schoolMapper.selectAdress());
}
@RequestMapping("selectSchool")
public ResponseData<List<Map<String, Object>>> selectSchool(String subName){
Wrapper<School> wrapper = new EntityWrapper<>();
wrapper.eq("sub_name",subName);
wrapper.setSqlSelect("id","school_name");
List<Map<String, Object>> list = schoolMapper.selectMaps(wrapper);
return ResponseData.success(list);
}
/*
@RequestMapping("registeredAccount")
public ResponseData<String> registeredAccount(@RequestParam("gender") String gender,@RequestParam("username") String username, @RequestParam("phone") String phone,
@RequestParam("idCard") String idCard, @RequestParam("stuCard") String stuCard, @RequestParam("idcardZ") String idcardZ,
@RequestParam("password") String password, @RequestParam("cpassword") String cpassword, @RequestParam("school") String school,
@RequestParam("classZ") String classZ, @RequestParam("substName") String substName, @RequestParam("account") String account) throws NoSuchAlgorithmException {
if(StringUtils.isBlank(gender)){
return ResponseData.error("性别不能为空!");
}
if(StringUtils.isBlank(username)){
return ResponseData.error("姓名不能为空!");
}
if(StringUtils.isBlank(phone)){
return ResponseData.error("电话不能为空!");
}
if(phone.length() != 11){
return ResponseData.error("手机号码有误!");
}
if(StringUtils.isBlank(idCard)){
return ResponseData.error("身份证号码不能为空!");
}
if(!IDCardUtil.IDCardValidate(idCard)){
return ResponseData.error("身份证号码有误!");
}
if(StringUtils.isBlank(stuCard)){
return ResponseData.error("请上传学生证!");
}
if(StringUtils.isBlank(idcardZ)){
return ResponseData.error("请上传身份证!");
}
if(StringUtils.isBlank(password)){
return ResponseData.error("密码不能为空!");
}
if(StringUtils.isBlank(cpassword)){
return ResponseData.error("原密码不能为空!");
}
if(!password.equals(cpassword)){
return ResponseData.error("密码和原密码不同!");
}
if(StringUtils.isBlank(school)){
return ResponseData.error("学校不能为空!");
}
if(StringUtils.isBlank(substName)){
return ResponseData.error("县分不能为空!");
}
if(StringUtils.isBlank(classZ)){
return ResponseData.error("年级不能为空!");
}
if(StringUtils.isBlank(account)){
return ResponseData.error("账号不能为空!");
}
String pattern = "^(?![A-Za-z]+$)(?![A-Z\\d]+$)(?![A-Z\\W]+$)(?![a-z\\d]+$)(?![a-z\\W]+$)(?![\\d\\W]+$)\\S{8,}$";
if (!password.matches(pattern)) {
return ResponseData.error( "密码强制等级低,必须要数字、小写英文字母、大写英文字母或特殊字符混合组成,长度至少8位!");
}
if (password.contains(account)) {
return ResponseData.error("密码与账号信息吻合,禁止使用!");
}
Wrapper<SysUser> wrapper = new EntityWrapper<>();
wrapper.eq("account",account);
List<SysUser> users = sysUserMapper.selectList(wrapper);
if(users.size() != 0){
return ResponseData.error("账号已被使用,请换一个账号!");
}
Wrapper<HhrUser> wrapper1 = new EntityWrapper<>();
wrapper1.eq("id_card",account);
List<HhrUser> hhrUsers = hhrUserMapper.selectList(wrapper1);
if(hhrUsers.size() != 0){
return ResponseData.error("一个身份证只能创建一个账号,请换一个身份证!");
}
int insert = 0;
SysUser sysUser = new SysUser();
sysUser.setSex(gender);
sysUser.setAccount(account);
sysUser.setName(username);
sysUser.setPhone(phone);
sysUser.setSalt(ShiroKit.getRandomSalt(5));
sysUser.setSubstName(substName);
sysUser.setPassword(ShiroKit.md5(password, sysUser.getSalt()));
insert =+ sysUserMapper.insert(sysUser);
insert =+ sysUserMapper.insertUserSchool(sysUser.getId(), school);
HhrUser hhrUser = new HhrUser();
hhrUser.setId(sysUser.getId());
hhrUser.setIdCard(idCard);
hhrUser.setIdcardImgUrl(PicturesUtil.uploadPictures(idcardZ, sysUser.getId(),PATHTYPE));
hhrUser.setStudentImgUrl(PicturesUtil.uploadPictures(stuCard, sysUser.getId(),PATHTYPE));
hhrUser.setGrade(classZ);
insert =+ hhrUserMapper.insert(hhrUser);
if (insert == 3){
return ResponseData.success("账号创建成功!");
}
if (insert == 0){
return ResponseData.error("账号创建失败!");
}
return ResponseData.error("账号创建异常,请联系管理员!");
}*/
}
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