Commit 02b76b3f authored by hanfeng's avatar hanfeng

Merge remote-tracking branch 'origin/master_activity' into master_activity-hf

parents 6f7b1978 226f51c0
......@@ -43,6 +43,16 @@ public class ActivityBm {
@ApiModelProperty("邀请人")
private String inviter;
@Column(name = "qd_status")
@ApiModelProperty("0-未签到;1-已签到")
private Integer qdStatus;
@Column(name = "bm_status")
@ApiModelProperty("0-未报名;1-已报名")
private Integer bmStatus;
@Column(name = "crt_time")
@ApiModelProperty("创建时间")
private Long crtTime;
......
package com.xxfc.platform.summit.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@Table(name = "ims_meepo_xianchang_qd")
public class MeepoUserQd {
@Id
@GeneratedValue(generator = "JDBC")
private Integer id;
@Column(name = "weid")
@ApiModelProperty("主公众号Id")
private Integer weId;
@Column(name = "rid")
@ApiModelProperty("规则ID")
private Integer rId;
@Column(name = "openid")
@ApiModelProperty("openid")
private String openId;
@Column(name = "nick_name")
@ApiModelProperty("昵称")
private String nickName;
@Column(name = "avatar")
@ApiModelProperty("微信头像")
private String avatar;
@Column(name = "level")
@ApiModelProperty("状态")
private Integer level;
@Column(name = "createtime")
@ApiModelProperty("创建时间")
private Long createTime;
}
......@@ -8,7 +8,6 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.entity.ActivityShow;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.mapper.ActivityBmMapper;;
import com.xxfc.platform.summit.vo.MeepoActivityVo;
......@@ -37,29 +36,52 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
@Autowired
private ActivityBiz activityBiz;
@Autowired
private ActivityShowBiz activityShowBiz;
private MeepoUserQdBiz meepoUserQdBiz;
//用户报名
public ObjectRestResponse userBm(ActivityBm activityBm,Integer meepoUserId)throws Exception{
public ObjectRestResponse userBmOrQd(ActivityBm activityBm,Integer meepoUserId)throws Exception{
if (activityBm==null||meepoUserId==null||meepoUserId==0){
log.info("-----activityBm==="+activityBm+"-------meepoUserId==="+meepoUserId+"-----为空");
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"参数不能为空");
}
Integer activityId=activityBm.getActivityId();
log.info("-----activityBm==="+JSONObject.toJSONString(activityBm)+"-------meepoUserId==="+meepoUserId+"----activityId==="+activityId);
Integer bmStatus=activityBm.getBmStatus()==null?0:activityBm.getBmStatus();
Integer qdStatus=activityBm.getQdStatus()==null?0:activityBm.getQdStatus();
log.info("-----activityBm==="+JSONObject.toJSONString(activityBm)+"-------meepoUserId==="+meepoUserId+"----activityId==="+activityId+"---bmStatus=="+bmStatus+"---qdStatus=="+qdStatus);
if (activityId==null||activityId==0){
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"活动不存在");
}
if (checkUserBm(meepoUserId,activityId)==null){
log.info("----用户已报名---meepoUserId==="+meepoUserId);
return ObjectRestResponse.createFailedResult(ResultCode.EXIST_CODE,"用户已报名");
ActivityBm activityBm1=checkUserBm(meepoUserId,activityId);
int isQd=0;
if (activityBm1!=null){
if (bmStatus==1&&activityBm1.getBmStatus()==1){
log.info("----用户已报名---meepoUserId==="+meepoUserId);
return ObjectRestResponse.createFailedResult(ResultCode.EXIST_CODE,"用户已报名");
}else if (qdStatus==1){
if (activityBm1.getQdStatus()==1){
log.info("----用户已签到---meepoUserId==="+meepoUserId);
return ObjectRestResponse.createFailedResult(ResultCode.EXIST_CODE,"用户已签到");
}
isQd=1;
}
activityBm.setId(activityBm1.getId());
updateSelectiveById(activityBm);
}else {
activityBm.setMeepoUserId(meepoUserId);
insertSelective(activityBm);
if (qdStatus==1){
isQd=1;
}
}
if (isQd==1){
meepoUserQdBiz.addUserQd(meepoUserId);
}
activityBm.setMeepoUserId(meepoUserId);
insertSelective(activityBm);
log.info("-----用户报名成功----bmId===="+activityBm.getId());
return ObjectRestResponse.succ();
}
......@@ -97,10 +119,11 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
}
//用户报名操作
public JSONObject userBmByKey(String key,Integer activityId, HttpServletRequest request){
//用户报名/签到操作
public JSONObject userBmOrQdByKey(String key,Integer activityId, HttpServletRequest request){
JSONObject jsonObject=new JSONObject();
jsonObject.put("isbm",0);
jsonObject.put("isqd",0);
jsonObject.put("value","");
try {
User user=userBiz.getSession(request);
......@@ -120,21 +143,32 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
log.info("-----userBmByKey---用户登录--userId==="+userId);
ActivityBm activityBm= userInfo(key);
if (activityBm==null){
log.info("-----userBmByKey---key不存在判断用户是否报名----");
if (checkUserBm(userId,activityId)!=null){
log.info("-----userBmByKey---key不存在用户已报名----");
jsonObject.put("isbm",1);
log.info("-----userBmByKey---key不存在判断用户是否报名/签到----");
ActivityBm activityBm1=checkUserBm(userId,activityId);
if (activityBm1!=null){
log.info("-----userBmByKey---key不存在用户已报名/签到----");
jsonObject.put("isbm",activityBm1.getBmStatus());
jsonObject.put("isqd",activityBm1.getQdStatus());
}
}else {
log.info("-----userBmByKey---key已存在去报名----");
ObjectRestResponse restResponse=userBm(activityBm,userId);
log.info("-----userBmByKey---key已存在去报名/签到----");
ObjectRestResponse restResponse=userBmOrQd(activityBm,userId);
if (restResponse.getStatus()==RestCode.SUCCESS.getStatus()){
log.info("-----userBmByKey---key已存在去报名----报名成功");
jsonObject.put("isbm",1);
jsonObject.put("bmStatus",1);
log.info("-----userBmByKey---key已存在去报名/签到----报名/签到成功");
if (activityBm.getBmStatus()==1){
jsonObject.put("isbm",1);
jsonObject.put("bm_status",1);
}else if (activityBm.getQdStatus()==1){
jsonObject.put("isqd",1);
jsonObject.put("qd_status",1);
}
}else {
log.info("-----userBmByKey---key已存在去报名----报名失败");
jsonObject.put("bmStatus",2);
log.info("-----userBmByKey---key已存在去报名/签到----报名/签到失败");
if (activityBm.getBmStatus()==1){
jsonObject.put("bm_status",2);
}else if (activityBm.getQdStatus()==1){
jsonObject.put("qd_status",2);
}
}
summbitRedisTemplate.delete(key);
}
......@@ -183,7 +217,7 @@ public class ActivityBmBiz extends BaseBiz<ActivityBmMapper, ActivityBm> {
}
JSONObject jsonObject=new JSONObject();
jsonObject.put("activity",activity);
JSONObject userBm=userBmByKey(key,activityId,request);
JSONObject userBm=userBmOrQdByKey(key,activityId,request);
jsonObject.put("bmInfo",userBm);
return ObjectRestResponse.succ(jsonObject);
}
......
package com.xxfc.platform.summit.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.summit.entity.MeepoUserQd;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.mapper.MeepoUserQdMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/**
* @author Administrator
*/
@Service
@Slf4j
public class MeepoUserQdBiz extends BaseBiz<MeepoUserQdMapper, MeepoUserQd> {
@Autowired
UserBiz userBiz;
//添加签到信息
public void addUserQd(Integer meepoUserId){
if (meepoUserId==null||meepoUserId==0){
log.info("----签到信息为空meepoUserId==="+meepoUserId);
return;
}
User user= userBiz.selectById(meepoUserId);
Integer weId=user.getWeId();
Integer rid=user.getRId();
String openId=user.getOpenId();
String avatar=user.getAvatar();
String nikeName=user.getNickName();
log.info("---addUserQd----meepoUserId==="+meepoUserId+"----openId==="+openId+"--weId=="+weId+"---rid==="+rid+"---avatar==="+avatar);
Example example=new Example(MeepoUserQd.class);
example.createCriteria().andEqualTo("weId",weId).andEqualTo("rId",rid).andEqualTo("openId",openId);
List<MeepoUserQd> list=selectByExample(example);
if (list.size()>0){
log.info("----已签到---meepoUserId==="+meepoUserId+"----openId==="+openId);
return;
}
MeepoUserQd meepoUserQd=new MeepoUserQd();
meepoUserQd.setAvatar(avatar);
meepoUserQd.setLevel(1);
meepoUserQd.setNickName(nikeName);
meepoUserQd.setOpenId(openId);
meepoUserQd.setRId(rid);
meepoUserQd.setWeId(weId);
meepoUserQd.setCreateTime(System.currentTimeMillis()/1000L);
insertSelective(meepoUserQd);
}
}
......@@ -175,9 +175,19 @@ public class UserBiz extends BaseBiz<UserMapper, User> {
return null;
}
}
public User getUserInfo(HttpServletRequest request,Integer activityId){
User user=getSession(request);
if (user!=null){
Integer userId=addMeepoUser(user,activityId);
if (userId==null||userId==0){
return null;
}
return user;
}
return null;
}
......
package com.xxfc.platform.summit.controller;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBmBiz;
......@@ -16,19 +18,33 @@ import javax.servlet.http.HttpServletRequest;
* @author Administrator
*/
@RestController
@RequestMapping("front/activityBm")
public class ActivityBmController extends BaseController<ActivityBmBiz,ActivityBm> {
@RequestMapping("auth/activity")
@IgnoreClientToken
@IgnoreUserToken
public class AuthActivityController extends BaseController<ActivityBmBiz,ActivityBm> {
@Autowired
UserBiz userBiz;
@PostMapping("/add")
@PostMapping("app/unauth/bm")
public ObjectRestResponse bm(@RequestBody ActivityBm activityBm, HttpServletRequest request){
User user=userBiz.getSession(request);
User user=userBiz.getUserInfo(request,activityBm.getActivityId());
try {
return baseBiz.userBm(activityBm,user.getId());
return baseBiz.userBmOrQd(activityBm,user.getId());
}catch (Exception e){
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
}
@PostMapping("app/unauth/qd")
public ObjectRestResponse qd(@RequestBody ActivityBm activityBm, HttpServletRequest request){
User user=userBiz.getUserInfo(request,activityBm.getActivityId());
try {
return baseBiz.userBmOrQd(activityBm,user.getId());
}catch (Exception e){
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
......
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 summbitRedisTemplate;
@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 = summbitRedisTemplate.opsForValue().setIfAbsent(redisLockKey, jb);
if (suc) {
summbitRedisTemplate.expire(redisLockKey, 5, TimeUnit.MINUTES);//5分钟内过期
}
}
return redisLockKey;
}
}
......@@ -58,7 +58,7 @@ public class WeChatH5LoginInterceoptor extends HandlerInterceptorAdapter {
if (user!=null){
return true;
}
String redisKey=redisBmInfo(request);
String redisKey=redisInfo(request);
Map<String,Object> result=new HashMap<>();
JSONObject json = new JSONObject();
if (StringUtils.isNotBlank(redisKey)){
......@@ -73,7 +73,7 @@ public class WeChatH5LoginInterceoptor extends HandlerInterceptorAdapter {
return true;
}
//获取body的参数并放入redis
public String redisBmInfo(HttpServletRequest request)throws Exception{
public String redisInfo(HttpServletRequest request)throws Exception{
request.setCharacterEncoding("UTF-8");
StringBuffer jb = new StringBuffer();
String line = null;
......
package com.xxfc.platform.summit.mapper;
import com.xxfc.platform.summit.entity.MeepoUserQd;
import tk.mybatis.mapper.common.Mapper;
/**
* @author Administrator
*/
public interface MeepoUserQdMapper extends Mapper<MeepoUserQd> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.summit.mapper.MeepoUserQdMapper">
</mapper>
\ No newline at end of file
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