记得上下班打卡 | git大法好,push需谨慎

Commit c2c56741 authored by GaoHu's avatar GaoHu

exit 助力达到自动预约

parent cadeb60e
......@@ -34,7 +34,7 @@ public final class RedisUtil extends AbstractRedisUtil{
public static void main(String[] args) {
String[] keys = {
"smile:user1013431194887946248794794",
"goblin:anticipate:share:help:vo:221171244233767221729",
};
for (String key : keys) {
long value = key.hashCode();
......
......@@ -66,10 +66,10 @@ public class GoblinGoodsAnticipateMgController {
// return goblinGoodsAnticipateMgService.delete(skuId);
// }
// @ApiOperation("更具sku获取信息")
// @GetMapping("/getAnticipateValueBySkuId")
// public AnticipateValueVo getAnticipateValueBySkuId(@RequestParam(name = "skuId") String skuId){
// return goblinGoodsAnticipateMgService.getAnticipateValueBySkuId(skuId,1);
// }
@ApiOperation("更具sku获取信息")
@GetMapping("/getAnticipateValueBySkuId")
public AnticipateValueVo getAnticipateValueBySkuId(@RequestParam(name = "skuId") String skuId){
return goblinGoodsAnticipateMgService.getAnticipateValueBySkuId(skuId,1);
}
}
......@@ -61,60 +61,66 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
}
//查询该用户是否预
String uid = CurrentUtil.getCurrentUid();
GoblinGoodAnticipateUserVo userVo = goblinRedisUtils.getUserAboutAut(skuId, uid);
LinkedList<Object[]> sqlValue = CollectionUtil.linkedListObjectArr();
if (userVo == null) {
//接入助力人数判断
//获取需要多少人助力
return getBooleanResponseDto(skuId, uid, anticipateValueVo);
}
return ResponseDto.failure("该预约不存在!");
}
private ResponseDto<Boolean> getBooleanResponseDto(String skuId, String uid, GoblinGoodsAnticipateValueVo anticipateValueVo) {
GoblinGoodAnticipateUserVo userVo = goblinRedisUtils.getUserAboutAut(skuId, uid);
if (userVo == null) {
//接入助力人数判断
//获取需要多少人助力
// GoblinGoodsAnticipateHelp sharePeopleBySkuId = goblinRedisUtils.getSharePeopleBySkuId(skuId);
//判断如果所需助力人数
if (anticipateValueVo.getPeopleType() != 0) {
//用户得到助力人数
String sid = goblinRedisUtils.getShare(skuId, uid);
if (sid != null) {
Integer people = goblinRedisUtils.getHelpSidAddHelp(sid);
if (anticipateValueVo.getPeopleType() > people) {
log.debug(" skuId:{},分享sid:{},预约uid:{},需要助力人数:{},助力人数:{}", skuId, sid, uid, anticipateValueVo.getPeopleType(), people);
return ResponseDto.failure("预约失败!");
}
} else {
log.debug("skuId:{},需要助力人数:{},uid:{},该用户未开启分享助力!",skuId,anticipateValueVo.getPeopleType(),uid);
//判断如果所需助力人数
if (anticipateValueVo.getPeopleType() != 0) {
//用户得到助力人数
String sid = goblinRedisUtils.getShare(skuId, uid);
if (sid != null) {
Integer people = goblinRedisUtils.getHelpSidAddHelp(sid);
if (anticipateValueVo.getPeopleType() > people) {
log.debug(" skuId:{},分享sid:{},预约uid:{},需要助力人数:{},助力人数:{}", skuId, sid, uid, anticipateValueVo.getPeopleType(), people);
return ResponseDto.failure("预约失败!");
}
}
GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo();
user.setUid(uid);
user.setSkuId(skuId);
String mobile = StringUtils.defaultString(((String) CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_MOBILE)), "");
user.setPhone(mobile);
user.setState(0);
user.setCreatedDate(LocalDateTime.now());
//mongodb记录
goblinRedisUtils.setUserAboutSku(user);
//用户没有预约过
//发送redis消息修改mysql记录用户预约
sqlValue.add(new Object[]{
user.getUid(),
skuId,
user.getPhone(),
0,
user.getCreatedDate()
});
sendRedis("goblin_goods_anticipate_user", sqlValue);
goblinRedisUtils.setSkuIdPeople(skuId);
//获取用户头像个数小于等于2则保存用户头像
List<String> userAvatar = goblinRedisUtils.getUserAvatar(skuId);
if (userAvatar != null && userAvatar.size() <= 2) {
//查询用户信息获取用户头像并保存
AdamUserInfoVo userInfo = goblinAnticipateUtils.getUserInfo();
goblinRedisUtils.setUserAvatar(skuId, userInfo.getAvatar());
} else {
log.debug("skuId:{},需要助力人数:{},uid:{},该用户未开启分享助力!",skuId,anticipateValueVo.getPeopleType(),uid);
return ResponseDto.failure("预约失败!");
}
}
return ResponseDto.success();
uidAboutBySkuId(skuId, uid);
}
return ResponseDto.success();
}
private void uidAboutBySkuId(String skuId, String uid) {
GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo();
user.setUid(uid);
user.setSkuId(skuId);
String mobile = StringUtils.defaultString(((String) CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_MOBILE)), "");
user.setPhone(mobile);
user.setState(0);
user.setCreatedDate(LocalDateTime.now());
//mongodb记录
goblinRedisUtils.setUserAboutSku(user);
//用户没有预约过
//发送redis消息修改mysql记录用户预约
LinkedList<Object[]> sqlValue = CollectionUtil.linkedListObjectArr();
sqlValue.add(new Object[]{
user.getUid(),
skuId,
user.getPhone(),
0,
user.getCreatedDate()
});
sendRedis("goblin_goods_anticipate_user", sqlValue);
goblinRedisUtils.setSkuIdPeople(skuId);
//获取用户头像个数小于等于2则保存用户头像
List<String> userAvatar = goblinRedisUtils.getUserAvatar(skuId);
if (userAvatar != null && userAvatar.size() <= 2) {
//查询用户信息获取用户头像并保存
AdamUserInfoVo userInfo = goblinAnticipateUtils.getUserInfo();
goblinRedisUtils.setUserAvatar(skuId, userInfo.getAvatar());
}
return ResponseDto.failure("该预约不存在!");
}
@Override
......@@ -245,6 +251,12 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
//新增助力头像
goblinRedisUtils.setHelpUserAvatar(sid, userInfo.getAvatar());
}
//判断主力人数是否达标,达标则自动预约
if (shareVo.getPeopleType().equals(goblinRedisUtils.getHelpSidAddHelp(sid))){
//主力人数达到可预约条件
uidAboutBySkuId(shareVo.getSkuId(),shareVo.getUid());
}
return ResponseDto.success(true);
}
log.debug("help() false ------> sid:{}",sid);
......
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