Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/bsd/say/service/impl/WeixinService.java
master
ck 5 years ago
commit 2e0524ef52

@ -76,4 +76,19 @@ public class UsersController extends BaseController<UsersService, Users>{
return ajaxResult;
}
@RequestMapping(value = "/get-info")
@ResponseBody
public AjaxResult getUserInfoByOpenId(@RequestBody AjaxRequest ajaxRequest){
AjaxResult ajaxResult = new AjaxResult();
try {
ajaxResult = usersService.getUserInfoByOpenId(ajaxRequest);
} catch (Exception e) {
e.printStackTrace();
String errMsg = e.getMessage() != null ? e.getMessage() : "操作失败";
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg(errMsg);
}
return ajaxResult;
}
}

@ -7,4 +7,5 @@ import com.bsd.say.entities.Users;
public interface UsersService extends BaseService<Users>{
AjaxResult sendNote(AjaxRequest ajaxRequest);
AjaxResult isSubscribe(AjaxRequest ajaxRequest);
AjaxResult getUserInfoByOpenId(AjaxRequest ajaxRequest);
}

@ -79,7 +79,7 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
JSONObject userInfo = weixinService.getUserInfoByOpenId(openId);
String unionId = userInfo.getString("unionid");
logger.info("union_id:"+unionId);
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getOpenId,openId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
AwardList maxIdAward = awardListMapper.selectByMaxId();
Integer newAwardNumner = maxIdAward.getAwardNumber()+ 1;
@ -138,11 +138,12 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
JSONObject userInfo = weixinService.getUserInfoByOpenId(openId);
String unionId = userInfo.getString("unionid");
logger.info("union_id:"+unionId);
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getOpenId,openId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
if (users == null){
//新会员直接创,肯定没抽过奖
Users newUsers = new Users();
newUsers.setOpenId(openId);
newUsers.setUnionId(unionId);
newUsers.setUserType(2);
newUsers.setCreateDateTime(new Date());
@ -210,7 +211,7 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
String unionId = userInfo.getString("unionid");
// String unionId = weixinService.getUnionId(openId);
logger.info("union_id:"+unionId);
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getOpenId,openId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
if (users == null){
ajaxResult.setRetcode(AjaxResult.FAILED);
@ -279,7 +280,7 @@ public class AwardListServiceImpl extends BaseServiceImpl<AwardListMapper, Award
JSONObject userInfo = weixinService.getUserInfoByOpenId(openId);
String unionId = userInfo.getString("unionid");
logger.info("union_id:"+unionId);
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
Users users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getOpenId,openId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
if (users == null){
ajaxResult.setRetcode(AjaxResult.SUCCESS);

@ -162,6 +162,9 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
Users usersByPhone = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getPhone, phone)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState, 1)));
//防止先第三方领券,再微信端领券
Users usersByOpenId = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getPhone, openId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState, 1)));
if (usersByOpenId == null){
if (usersByPhone == null) {
Users users1 = new Users();
users1.setPhone(phone);
@ -181,6 +184,14 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
coupons = couponMapper.selectList(Wrappers.<Coupon>lambdaQuery().eq(Coupon::getUserId, usersByPhone.getId())
.and(queryWrapper1 -> queryWrapper1.eq(Coupon::getState, 1)));
}
}else {
usersByOpenId.setPhone(phone);
usersByOpenId.setUnionId(unionId);
usersByOpenId.setUpdateDateTime(new Date());
usersMapper.updateById(usersByOpenId);
coupons = couponMapper.selectList(Wrappers.<Coupon>lambdaQuery().eq(Coupon::getUserId, usersByOpenId.getId())
.and(queryWrapper1 -> queryWrapper1.eq(Coupon::getState, 1)));
}
//防非法请求,再校验一遍
if (coupons.size() > 0) {
ajaxResult.setRetmsg("您已经领过优惠券");
@ -206,7 +217,7 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
if (isAward){
String unionId = userInfo.getString("unionid");
logger.info("union_id:"+unionId);
users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
users = usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getOpenId,openId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
users.setPhone(phone);
users.setUpdateDateTime(new Date());
@ -331,7 +342,7 @@ public class CouponServiceImpl extends BaseServiceImpl<CouponMapper, Coupon> imp
JSONObject userInfo = weixinService.getUserInfoByOpenId(openId);
String unionId = userInfo.getString("unionid");
logger.info("union_id:"+unionId);
Users users= usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getUnionId,unionId)
Users users= usersMapper.selectOne(Wrappers.<Users>lambdaQuery().eq(Users::getOpenId,openId)
.and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1)));
if (users == null){
ajaxResult.setRetmsg("可以领取优惠券");

@ -1,13 +1,17 @@
package com.bsd.say.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.bsd.say.beans.AjaxRequest;
import com.bsd.say.beans.AjaxResult;
import com.bsd.say.entities.Record;
import com.bsd.say.entities.Users;
import com.bsd.say.mapper.RecordMapper;
import com.bsd.say.mapper.UsersMapper;
import com.bsd.say.service.UsersService;
import com.bsd.say.util.HttpRequestUtils;
import com.bsd.say.util.MD5Utils;
import com.sun.org.apache.bcel.internal.generic.NEW;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -38,6 +42,8 @@ public class UsersServiceImpl extends BaseServiceImpl<UsersMapper,Users> impleme
protected UsersMapper usersMapper;
@Autowired
private WeixinService weixinService;
@Resource
private RecordMapper recordMapper;
@Override
public UsersMapper getBaseMapper() {
@ -119,4 +125,38 @@ public class UsersServiceImpl extends BaseServiceImpl<UsersMapper,Users> impleme
}
}
/**
* openIdrecordname phone
* @param ajaxRequest
* @return
*/
@Override
public AjaxResult getUserInfoByOpenId(AjaxRequest ajaxRequest) {
AjaxResult ajaxResult = new AjaxResult();
JSONObject data = ajaxRequest.getData();
if (data == null){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("data missing");
return ajaxResult;
}else {
String openId = data.getString("openId");
if (StringUtils.isBlank(openId)){
ajaxResult.setRetcode(AjaxResult.FAILED);
ajaxResult.setRetmsg("openId missing");
return ajaxResult;
}else {
JSONObject userInfo = new JSONObject();
Record record = recordMapper.selectOne(Wrappers.<Record>lambdaQuery().eq(Record::getOpenId,openId)
.and(queryWrapper1 -> queryWrapper1.eq(Record::getState,1)));
if (record != null){
userInfo.put("name",record.getName());
userInfo.put("phone",record.getPhone());
}
ajaxResult.setData(userInfo);
ajaxResult.setRetcode(AjaxResult.SUCCESS);
}
}
return ajaxResult;
}
}

@ -2,7 +2,10 @@ package com.bsd.say.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.bsd.say.config.RedisProperies;
import com.bsd.say.entities.Record;
import com.bsd.say.mapper.RecordMapper;
import com.bsd.say.service.WxOpenServiceDemo;
import com.bsd.say.util.AESWithJCEUtils;
import com.bsd.say.util.HttpRequestUtils;
@ -17,10 +20,12 @@ import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import redis.clients.jedis.JedisPool;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@ -49,6 +54,8 @@ public class WeixinService extends WxOpenServiceImpl {
private String getTicketUrl;
@Resource
private RedisTemplate redisTemplate;
@Resource
private RecordMapper recordMapper;
private WxOpenMessageRouter wxOpenMessageRouter;
Logger logger = LogUtils.getBussinessLogger();
@ -167,4 +174,41 @@ public class WeixinService extends WxOpenServiceImpl {
logger.info("sign:" + sign);
return sign;
}
/**
*
* @param openId
* @param subscribe
*/
@Transactional
public void insertRecord(String openId,Integer subscribe){
logger.info("subscribe"+ subscribe);
Record recordByOpenId = recordMapper.selectOne(Wrappers.<Record>lambdaQuery().eq(Record::getOpenId,openId)
.and(queryWrapper1 -> queryWrapper1.eq(Record::getState,1)));
if (subscribe == 0){
//未关注公众号
if (recordByOpenId == null){
logger.info("新粉丝第一次进入");
Record record = new Record();
record.setOpenId(openId);
record.setFan("新粉丝");
record.setCreateDateTime(new Date());
recordMapper.insert(record);
}else {
logger.info("游客访问过,但未关注");
}
}else {
//关注过公众号
if (recordByOpenId == null){
logger.info("老粉丝第一次进入");
Record record = new Record();
record.setOpenId(openId);
record.setFan("老粉丝");
record.setCreateDateTime(new Date());
recordMapper.insert(record);
}else {
logger.info("老粉丝访问过,已关注");
}
}
}
}

@ -42,7 +42,7 @@ server:
award:
rule: 5
amount: 2
amount: 10
wechat:
aesKey: r4cbRuIfbbnTIgJoQE33vJACJuoioZ5pRAhumITsP8O

Loading…
Cancel
Save