Commit 30f76dde by 黄森林

微信登录

parent 2b0d6526
......@@ -1029,7 +1029,7 @@ public class RongHeController {
log.info("融合下单接口,返回信息:" + httpResult);
resultDataJson = JSONObject.parseObject(httpResult);
} catch (Exception e) {
System.out.println("融合下单接口接口异常");
log.error("融合下单接口接口异常");
e.printStackTrace();
} finally {
httpPost.releaseConnection();
......
......@@ -3,6 +3,7 @@ package com.winsun.bean;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
......@@ -39,8 +40,10 @@ public class HhrUser implements Serializable{
private String wxHeadImgUrl;
/**
* mybatis 可以跟新为空
* 公众号openid
*/
@TableField(fill = FieldFill.UPDATE)
private String openId;
/**
......
......@@ -61,9 +61,9 @@ public class HttpHelper {
HttpEntity entity = response.getEntity(); //reponse返回的数据在entity中
if (entity != null) {
String resultStr = EntityUtils.toString(entity, "utf-8"); //将数据转化为string格式
// log.info("GET请求结果:"+resultStr);
log.info("GET请求结果:"+resultStr);
JSONObject result = JSON.parseObject(resultStr); //将String转换为 JSONObject
log.info("GET请求结果:"+resultStr);
if(result.getInteger("errcode")==null) {
return result;
}else if (0 == result.getInteger("errcode")) {
......
......@@ -28,7 +28,7 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
//登录验证码标识
private static String CODE="getPhoneCode";
private static String CODE = "getPhoneCode";
@Autowired
public StringRedisTemplate stringRedisTemplate;
......@@ -36,24 +36,56 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
@Autowired
private IUserService userService;
private static String GETPHONECODE = "getPhoneCode";
//5分钟内有效
private static long CODETIME=1000 * 60*5;
private static long CODETIME = 1000 * 60 * 5;
//短信验证码错误key
private static String ERRCODENAME="ERRCODENAME";
private static String ERRCODENAME = "ERRCODENAME";
//短信验证码输入错误次数
private static int ERRACCOUNT=10;
private static int ERRACCOUNT = 10;
@Override
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");
if (username==null){
if (username == null) {
return false;
}
Map<String, Object> map = new HashMap<>();
//短信验证码
if (request.getParameter("phonecode")==null){
if (request.getParameter("phonecode") == null) {
//new ErrorTip(500, "短信验证码不能为空!");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
......@@ -80,7 +112,7 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
//存放redis验证码
String rediscode = stringRedisTemplate.opsForValue().get(username + CODE);
if (StringUtils.isBlank(rediscode)){
if (StringUtils.isBlank(rediscode)) {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
......@@ -94,25 +126,25 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
}
phonecode = phonecodeDecrypt.getData();
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);
if (StringUtils.isBlank(errcount)){
errcount="1";
stringRedisTemplate.opsForValue().set(ERRCODENAME+username,errcount);
}else if (Integer.valueOf(errcount)<ERRACCOUNT){
errcount =String.valueOf(Integer.valueOf(errcount)+1);
stringRedisTemplate.opsForValue().set(ERRCODENAME+username,errcount);
}else if (Integer.valueOf(errcount)==ERRACCOUNT){
errcount=String.valueOf(ERRACCOUNT);
if (StringUtils.isBlank(errcount)) {
errcount = "1";
stringRedisTemplate.opsForValue().set(ERRCODENAME + username, errcount);
} else if (Integer.valueOf(errcount) < ERRACCOUNT) {
errcount = String.valueOf(Integer.valueOf(errcount) + 1);
stringRedisTemplate.opsForValue().set(ERRCODENAME + username, errcount);
} else if (Integer.valueOf(errcount) == ERRACCOUNT) {
errcount = String.valueOf(ERRACCOUNT);
String code = username + CODE;
stringRedisTemplate.delete(code);
stringRedisTemplate.delete(ERRCODENAME+username);
stringRedisTemplate.delete(ERRCODENAME + username);
}
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
map.put("code", 500);
map.put("message", "登录失败,手机验证码第"+errcount+"次不正确");
map.put("message", "登录失败,手机验证码第" + errcount + "次不正确");
Object toJSON = JSON.toJSON(map);
writer.write(toJSON.toString());
return false;
......@@ -121,5 +153,4 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
}
}
......@@ -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.util.DateUtil;
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.util.ResponseEntity;
import com.winsun.item.modular.system.service.IUserService;
......@@ -108,6 +109,54 @@ public class GetPhoneCodeController extends BaseController {
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
......
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 @@
<parent>
<groupId>com.winsun.framework</groupId>
<artifactId>winsun-parent</artifactId>
<version>0.1.58</version>
<version>0.1.59</version>
</parent>
<properties>
......
......@@ -3,6 +3,7 @@ package com.winsun.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
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.common.model.ResponseData;
import com.winsun.bean.Order;
......@@ -47,7 +48,8 @@ public class hhrUserController extends BaseController {
* @return
*/
@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) {
if (StringUtils.isBlank(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