Commit 30f76dde by 黄森林

微信登录

parent 2b0d6526
...@@ -1029,7 +1029,7 @@ public class RongHeController { ...@@ -1029,7 +1029,7 @@ public class RongHeController {
log.info("融合下单接口,返回信息:" + httpResult); log.info("融合下单接口,返回信息:" + httpResult);
resultDataJson = JSONObject.parseObject(httpResult); resultDataJson = JSONObject.parseObject(httpResult);
} catch (Exception e) { } catch (Exception e) {
System.out.println("融合下单接口接口异常"); log.error("融合下单接口接口异常");
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
httpPost.releaseConnection(); httpPost.releaseConnection();
......
...@@ -3,6 +3,7 @@ package com.winsun.bean; ...@@ -3,6 +3,7 @@ package com.winsun.bean;
import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.baomidou.mybatisplus.enums.IdType; import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data; import lombok.Data;
...@@ -39,8 +40,10 @@ public class HhrUser implements Serializable{ ...@@ -39,8 +40,10 @@ public class HhrUser implements Serializable{
private String wxHeadImgUrl; private String wxHeadImgUrl;
/** /**
* mybatis 可以跟新为空
* 公众号openid * 公众号openid
*/ */
@TableField(fill = FieldFill.UPDATE)
private String openId; private String openId;
/** /**
...@@ -52,7 +55,7 @@ public class HhrUser implements Serializable{ ...@@ -52,7 +55,7 @@ public class HhrUser implements Serializable{
* 学生证照片 * 学生证照片
*/ */
private String studentImgUrl; private String studentImgUrl;
/** /**
* 学子公司职位 * 学子公司职位
*/ */
...@@ -68,7 +71,7 @@ public class HhrUser implements Serializable{ ...@@ -68,7 +71,7 @@ public class HhrUser implements Serializable{
*/ */
private String parentIds; private String parentIds;
// 非数据库字段 // 非数据库字段
/** /**
* 姓名 * 姓名
......
...@@ -61,9 +61,9 @@ public class HttpHelper { ...@@ -61,9 +61,9 @@ public class HttpHelper {
HttpEntity entity = response.getEntity(); //reponse返回的数据在entity中 HttpEntity entity = response.getEntity(); //reponse返回的数据在entity中
if (entity != null) { if (entity != null) {
String resultStr = EntityUtils.toString(entity, "utf-8"); //将数据转化为string格式 String resultStr = EntityUtils.toString(entity, "utf-8"); //将数据转化为string格式
// log.info("GET请求结果:"+resultStr); log.info("GET请求结果:"+resultStr);
JSONObject result = JSON.parseObject(resultStr); //将String转换为 JSONObject JSONObject result = JSON.parseObject(resultStr); //将String转换为 JSONObject
log.info("GET请求结果:"+resultStr);
if(result.getInteger("errcode")==null) { if(result.getInteger("errcode")==null) {
return result; return result;
}else if (0 == result.getInteger("errcode")) { }else if (0 == result.getInteger("errcode")) {
......
...@@ -28,32 +28,64 @@ public class LoginInterceptor extends HandlerInterceptorAdapter { ...@@ -28,32 +28,64 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
//登录验证码标识 //登录验证码标识
private static String CODE="getPhoneCode"; private static String CODE = "getPhoneCode";
@Autowired @Autowired
public StringRedisTemplate stringRedisTemplate; public StringRedisTemplate stringRedisTemplate;
@Autowired @Autowired
private IUserService userService; private IUserService userService;
private static String GETPHONECODE = "getPhoneCode";
//5分钟内有效 //5分钟内有效
private static long CODETIME=1000 * 60*5; private static long CODETIME = 1000 * 60 * 5;
//短信验证码错误key //短信验证码错误key
private static String ERRCODENAME="ERRCODENAME"; private static String ERRCODENAME = "ERRCODENAME";
//短信验证码输入错误次数 //短信验证码输入错误次数
private static int ERRACCOUNT=10; private static int ERRACCOUNT = 10;
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
Object openId = request.getParameter("openId");
if (openId != null) {
return true;
}
Map<String, Object> map = new HashMap<>();
Object verificationCode = request.getParameter("verificationCode");
if (verificationCode != null) {
String str = stringRedisTemplate.opsForValue().get(request.getParameter("username").trim() + GETPHONECODE);
if (StringUtils.isBlank(str)) {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
log.info("获取redis 手机验证码失败");
map.put("code", 500);
map.put("message", "请再次获取手机验证码");
Object toJSON = JSON.toJSON(map);
writer.write(toJSON.toString());
return false;
} else {
if (!str.equals(verificationCode.toString())) {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
map.put("code", 500);
map.put("message", "验证码错误");
Object toJSON = JSON.toJSON(map);
writer.write(toJSON.toString());
return false;
}
}
return true;
}
Object username = request.getParameter("username"); Object username = request.getParameter("username");
if (username==null){ if (username == null) {
return false; return false;
} }
Map<String, Object> map = new HashMap<>();
//短信验证码 //短信验证码
if (request.getParameter("phonecode")==null){ if (request.getParameter("phonecode") == null) {
//new ErrorTip(500, "短信验证码不能为空!"); //new ErrorTip(500, "短信验证码不能为空!");
response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8"); response.setContentType("text/html;charset=utf-8");
...@@ -80,7 +112,7 @@ public class LoginInterceptor extends HandlerInterceptorAdapter { ...@@ -80,7 +112,7 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
//存放redis验证码 //存放redis验证码
String rediscode = stringRedisTemplate.opsForValue().get(username + CODE); String rediscode = stringRedisTemplate.opsForValue().get(username + CODE);
if (StringUtils.isBlank(rediscode)){ if (StringUtils.isBlank(rediscode)) {
response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8"); response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter(); PrintWriter writer = response.getWriter();
...@@ -94,25 +126,25 @@ public class LoginInterceptor extends HandlerInterceptorAdapter { ...@@ -94,25 +126,25 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
} }
phonecode = phonecodeDecrypt.getData(); phonecode = phonecodeDecrypt.getData();
if (!rediscode.equals(phonecode)) { if (!rediscode.equals(phonecode)) {
log.info("获取redis数据和 手机验证码不一致,用户名:{} redis存放验证码: {} 用户输入验证码: {}",username,rediscode,phonecode); log.info("获取redis数据和 手机验证码不一致,用户名:{} redis存放验证码: {} 用户输入验证码: {}", username, rediscode, phonecode);
String errcount = stringRedisTemplate.opsForValue().get(ERRCODENAME + username); String errcount = stringRedisTemplate.opsForValue().get(ERRCODENAME + username);
if (StringUtils.isBlank(errcount)){ if (StringUtils.isBlank(errcount)) {
errcount="1"; errcount = "1";
stringRedisTemplate.opsForValue().set(ERRCODENAME+username,errcount); stringRedisTemplate.opsForValue().set(ERRCODENAME + username, errcount);
}else if (Integer.valueOf(errcount)<ERRACCOUNT){ } else if (Integer.valueOf(errcount) < ERRACCOUNT) {
errcount =String.valueOf(Integer.valueOf(errcount)+1); errcount = String.valueOf(Integer.valueOf(errcount) + 1);
stringRedisTemplate.opsForValue().set(ERRCODENAME+username,errcount); stringRedisTemplate.opsForValue().set(ERRCODENAME + username, errcount);
}else if (Integer.valueOf(errcount)==ERRACCOUNT){ } else if (Integer.valueOf(errcount) == ERRACCOUNT) {
errcount=String.valueOf(ERRACCOUNT); errcount = String.valueOf(ERRACCOUNT);
String code = username + CODE; String code = username + CODE;
stringRedisTemplate.delete(code); stringRedisTemplate.delete(code);
stringRedisTemplate.delete(ERRCODENAME+username); stringRedisTemplate.delete(ERRCODENAME + username);
} }
response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8"); response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter(); PrintWriter writer = response.getWriter();
map.put("code", 500); map.put("code", 500);
map.put("message", "登录失败,手机验证码第"+errcount+"次不正确"); map.put("message", "登录失败,手机验证码第" + errcount + "次不正确");
Object toJSON = JSON.toJSON(map); Object toJSON = JSON.toJSON(map);
writer.write(toJSON.toString()); writer.write(toJSON.toString());
return false; return false;
...@@ -121,5 +153,4 @@ public class LoginInterceptor extends HandlerInterceptorAdapter { ...@@ -121,5 +153,4 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
} }
} }
...@@ -5,6 +5,7 @@ import com.winsun.auth.core.base.controller.BaseController; ...@@ -5,6 +5,7 @@ import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData; import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.util.DateUtil; import com.winsun.auth.core.util.DateUtil;
import com.winsun.auth.model.user.User; import com.winsun.auth.model.user.User;
import com.winsun.item.core.shiro.MyWebSessionManager;
import com.winsun.item.core.shiro.ShiroKit; import com.winsun.item.core.shiro.ShiroKit;
import com.winsun.item.core.util.ResponseEntity; import com.winsun.item.core.util.ResponseEntity;
import com.winsun.item.modular.system.service.IUserService; import com.winsun.item.modular.system.service.IUserService;
...@@ -108,6 +109,54 @@ public class GetPhoneCodeController extends BaseController { ...@@ -108,6 +109,54 @@ public class GetPhoneCodeController extends BaseController {
return sent; return sent;
} }
@RequestMapping(value = "/getPhoneCodeY",method = RequestMethod.POST)
public Object phoneLoginCodeY(@RequestParam("username") String username){
EntityWrapper<User> userwrapper = new EntityWrapper<>();
userwrapper.eq("account",username);
List<User> users = userService.selectList(userwrapper);
if (CollectionUtils.isEmpty(users)){
return ResponseEntity.newJSON("code", 400, "message", "账号错误!");
}
User user = users.get(0);
//5分钟内有效
String code = username + CODE;
String verificationCode=null;
if (username.equals("admin")){
//只有admin验证码有后门 验证码规则:当前月份日期小时例如 011415
verificationCode= DateUtil.formatDate(new Date(),"MMddHH");
}else {
verificationCode = String.valueOf((int) ((Math.random() * 9 + 1) * 100000));
}
Long expire = stringRedisTemplate.getExpire(code);
//验证码 有效时间是五分钟倒计时
if (expire>(60*4)){
return ResponseEntity.newJSON("code", 400, "message", "请勿频繁发送手机验证码操作!");
}
stringRedisTemplate.opsForValue().set(code, verificationCode, CODETIME, TimeUnit.MILLISECONDS);
Map<String, Object> sent=new HashMap<>();
sent.put("code",400);
try {
if (username.equals("admin")){
sent.put("message", "发送成功");
sent.put("code", 200);
}else {
if (user.getPhone().length() == 11){
SendSmsAndMail.sendSms(user.getPhone(), verificationCode, "7");
sent.put("message", "发送成功");
sent.put("code", 200);
}else {
sent.put("message","当前用户手机号码不合法!");
}
}
}catch (Exception e){
log.info("错误信息:{}",e.getMessage());
sent.put("message","手机短信发送失败");
}
return sent;
}
/** /**
* 修改用户密码发送验证码 * 修改用户密码发送验证码
* @return * @return
......
package com.winsun.item.modular.system.controller;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class WeixinAuthController {
@RequestMapping("/MP_verify_oYaGTxvtIJXLOkXB.txt")
public void auth(HttpServletResponse response) throws IOException {
response.getWriter().print("oYaGTxvtIJXLOkXB");
}
}
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<parent> <parent>
<groupId>com.winsun.framework</groupId> <groupId>com.winsun.framework</groupId>
<artifactId>winsun-parent</artifactId> <artifactId>winsun-parent</artifactId>
<version>0.1.58</version> <version>0.1.59</version>
</parent> </parent>
<properties> <properties>
......
...@@ -3,6 +3,7 @@ package com.winsun.controller; ...@@ -3,6 +3,7 @@ package com.winsun.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController; import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData; import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.bean.Order; import com.winsun.bean.Order;
...@@ -47,7 +48,8 @@ public class hhrUserController extends BaseController { ...@@ -47,7 +48,8 @@ public class hhrUserController extends BaseController {
* @return * @return
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = "getOrderList", method = RequestMethod.POST) //@RequestMapping(value = "getOrderList", method = RequestMethod.POST)
@Permission(menuname = "督导查询", value = "getOrderList", method = RequestMethod.POST)
public ResponseData<Map<String, Object>> getOrderList(String userId, Integer pageNo, Integer pageSize, String customer, String orderStatus, String userType, Integer selectFlag) { public ResponseData<Map<String, Object>> getOrderList(String userId, Integer pageNo, Integer pageSize, String customer, String orderStatus, String userType, Integer selectFlag) {
if (StringUtils.isBlank(userId)) { if (StringUtils.isBlank(userId)) {
return ResponseData.error("userId为空"); return ResponseData.error("userId为空");
......
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