Commit d762facd authored by hezhen's avatar hezhen

123

parent d17303d8
......@@ -6,6 +6,9 @@ import lombok.Data;
@Data
public class UserInfo {
private String unionid;
private String openId;
private String nickname;
private String headimgurl;
private String sex;
}
......@@ -3,6 +3,9 @@ package com.xxfc.platform.summit.biz;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.constant.RestCode;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.mapper.ActivityBmMapper;;
import com.xxfc.platform.summit.vo.MeepoActivityVo;
......@@ -12,6 +15,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
......@@ -26,17 +30,29 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
private RedisTemplate userRedisTemplate;
public void userBm(ActivityBm activityBm,Integer meepoUserId)throws Exception{
//用户报名
public ObjectRestResponse userBm(ActivityBm activityBm,Integer meepoUserId)throws Exception{
if (activityBm==null||meepoUserId==null||meepoUserId==0){
log.info("-----activityBm==="+activityBm+"-------meepoUserId==="+meepoUserId+"-----为空");
return;
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"参数不能为空");
}
Integer activityId=activityBm.getActivityId();
log.info("-----activityBm==="+JSONObject.toJSONString(activityBm)+"-------meepoUserId==="+meepoUserId+"----activityId==="+activityId);
if (activityId==null||activityId==0){
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"活动不存在");
}
Example example =new Example(ActivityBm.class);
example.createCriteria().andEqualTo("meepoUserId",meepoUserId).andEqualTo("activityId",activityId).andEqualTo("isDel",0);
List<ActivityBm> list=mapper.selectByExample(example);
if (list.size()>0){
log.info("----用户已报名---meepoUserId==="+meepoUserId);
return ObjectRestResponse.createFailedResult(ResultCode.EXIST_CODE,"用户已报名");
}
log.info("-----activityBm==="+JSONObject.toJSONString(activityBm)+"-------meepoUserId==="+meepoUserId);
activityBm.setMeepoUserId(meepoUserId);
insertSelective(activityBm);
log.info("-----用户报名成功----bmId===="+activityBm.getId());
return ObjectRestResponse.succ();
}
//获取小程序峰会活动
......@@ -59,4 +75,5 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
}
}
......@@ -15,10 +15,10 @@ import com.xxfc.platform.summit.vo.MeepoActivityVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;
......@@ -78,6 +78,7 @@ public class UserBiz extends BaseBiz<UserMapper, User> {
List<User> uses=mapper.selectByExample(example);
if (uses.size()>0){
userId=uses.get(0).getId();
user.setId(userId);
}else {
user.setWeId(weId);
user.setRId(rId);
......@@ -86,7 +87,6 @@ public class UserBiz extends BaseBiz<UserMapper, User> {
}
return userId;
}
public void authUser(String code,String key, HttpServletRequest request){
if (StringUtils.isBlank(code)){
log.info("----code为空---");
......@@ -157,6 +157,27 @@ public class UserBiz extends BaseBiz<UserMapper, User> {
}
}
//获取缓存
public User getSession(HttpServletRequest request){
try {
HttpSession session = request.getSession();
String frontSessionValue1 = (String) session.getAttribute(frontSessionKey);
if (StringUtils.isBlank(frontSessionValue1)) {
return null;
}
JSONObject jsonObject=JSONObject.parseObject(frontSessionValue1);
User user=new User();
BeanUtils.copyProperties(jsonObject,user);
return user;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
......
package com.xxfc.platform.summit.controller;
import cn.hutool.core.codec.Base64;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBiz;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.biz.ActivityBmBiz;
import com.xxfc.platform.summit.biz.UserBiz;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.pojo.ActivityQuery;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* @author Administrator
*/
@RestController
@RequestMapping("/activity")
public class ActivityBmController extends BaseController<ActivityBiz, Activity> {
@RequestMapping("front/activity")
public class ActivityBmController extends BaseController<ActivityBmBiz,ActivityBm> {
@PostMapping("/list")
public ObjectRestResponse getList(@RequestBody ActivityQuery query ){
@Autowired
UserBiz userBiz;
return ObjectRestResponse.succ(baseBiz.getList(query));
}
@Override
@PutMapping ("/update")
public ObjectRestResponse update(@RequestBody Activity activity ){
if (baseBiz.update(activity)) {
return ObjectRestResponse.succ();
}
@PostMapping("/bm")
public ObjectRestResponse bm(@RequestBody ActivityBm activityBm, HttpServletRequest request){
User user=userBiz.getSession(request);
try {
return baseBiz.userBm(activityBm,user.getId());
}catch (Exception e){
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
}
/* *//**
* 微信浏览器获取用户信息
* @param code
......
package com.xxfc.platform.summit.interceptor;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.util.UserAgentUtil;
import com.xxfc.platform.summit.biz.UserBiz;
import com.xxfc.platform.summit.constant.RedisKey;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.service.WeixinService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
;
/**
* 微信登陆拦截器
*
* @author
*
*/
@Slf4j
public class ActivityInterceoptor extends HandlerInterceptorAdapter {
@Autowired
WeixinService weixinService;
@Autowired
UserBiz userBiz;
@Autowired
private RedisTemplate userRedisTemplate;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String curr_domain = request.getServerName();
log.info("curr_domain:" + curr_domain);
log.info("address:" + request.getRequestURL().toString());
log.info("params:" + request.getQueryString());
boolean isWx = UserAgentUtil.isWexinBrowser(request);
if (isWx) {
//session里面获取用户信息
User user=userBiz.getSession(request);
if (user!=null){
return true;
}
String redisKey=redisBmInfo(request);
Map<String,Object> result=new HashMap<>();
JSONObject json = new JSONObject();
if (StringUtils.isNotBlank(redisKey)){
json.put("key",redisKey);
}
json.put("url","https://dev.dfangche.com/api/summit/auth/app/unauth/wxLogin?redirec_url=https://dev.dfangche.com/h5/appHtml/view/wxh5/index.html");
result.put("data",json);
result.put("status",1001);
response.getWriter().write(result.toString());
return false;
}
return true;
}
//获取body的参数并放入redis
public String redisBmInfo(HttpServletRequest request)throws Exception{
request.setCharacterEncoding("UTF-8");
StringBuffer jb = new StringBuffer();
String line = null;
try
{
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null)
jb.append(line);
}
catch (Exception e)
{
e.printStackTrace();
}
String redisLockKey=null;
if (StringUtils.isNotBlank(jb)){
redisLockKey= RedisKey.CONSTANT_CODE_PREFIX + UUID.randomUUID();
Boolean suc = userRedisTemplate.opsForValue().setIfAbsent(redisLockKey, jb);
if (suc) {
userRedisTemplate.expire(redisLockKey, 5, TimeUnit.MINUTES);//5分钟内过期
}
}
return redisLockKey;
}
}
......@@ -6,7 +6,9 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.github.wxiaoqi.security.common.util.UserAgentUtil;
import com.xxfc.platform.summit.biz.UserBiz;
import com.xxfc.platform.summit.constant.RedisKey;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.service.WeixinService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;;
......@@ -29,14 +31,13 @@ import java.util.concurrent.TimeUnit;
@Slf4j
public class WeChatH5LoginInterceoptor extends HandlerInterceptorAdapter {
/**
* 微信公众号自动登陆令牌的url参数名
*/
public static final String frontSessionKey = "frontWeixKey";
@Autowired
WeixinService weixinService;
@Autowired
UserBiz userBiz;
@Autowired
private RedisTemplate userRedisTemplate;
......@@ -45,7 +46,6 @@ public class WeChatH5LoginInterceoptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String curr_domain = request.getServerName();
HttpSession session = request.getSession();
log.info("curr_domain:" + curr_domain);
log.info("address:" + request.getRequestURL().toString());
log.info("params:" + request.getQueryString());
......@@ -53,8 +53,9 @@ public class WeChatH5LoginInterceoptor extends HandlerInterceptorAdapter {
boolean isWx = UserAgentUtil.isWexinBrowser(request);
if (isWx) {
String frontSessionValue1 = (String) session.getAttribute(frontSessionKey);
if (StringUtils.isNotBlank(frontSessionValue1)) {
//session里面获取用户信息
User user=userBiz.getSession(request);
if (user!=null){
return true;
}
String redisKey=redisBmInfo(request);
......@@ -71,8 +72,7 @@ public class WeChatH5LoginInterceoptor extends HandlerInterceptorAdapter {
}
return true;
}
//获取body的参数并放入redis
public String redisBmInfo(HttpServletRequest request)throws Exception{
request.setCharacterEncoding("UTF-8");
StringBuffer jb = new StringBuffer();
......
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