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

Commit 6a6b4b7f authored by 胡佳晨's avatar 胡佳晨

接口 提交 缺入库

parent 35ee97f1
...@@ -10,7 +10,7 @@ import java.time.LocalDateTime; ...@@ -10,7 +10,7 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Data @Data
public class CandyUserCouponBasicDto implements Serializable { public class CandyUserCouponBasicDto implements Serializable ,Cloneable{
private static final long serialVersionUID = 4073256621782131605L; private static final long serialVersionUID = 4073256621782131605L;
/* com.liquidnet.service.candy.entity.CandyCoupon */ /* com.liquidnet.service.candy.entity.CandyCoupon */
...@@ -55,7 +55,7 @@ public class CandyUserCouponBasicDto implements Serializable { ...@@ -55,7 +55,7 @@ public class CandyUserCouponBasicDto implements Serializable {
/* com.liquidnet.service.candy.entity.CandyCouponRule */ /* com.liquidnet.service.candy.entity.CandyCouponRule */
private List<CandyCouponRuleDto> useRules; private List<CandyCouponRuleDto> useRules;
private static final CandyUserCouponBasicDto obj = new CandyUserCouponBasicDto(); private static final CandyUserCouponBasicDto obj = new CandyUserCouponBasicDto();
public static CandyUserCouponBasicDto getNew() { public static CandyUserCouponBasicDto getNew() {
...@@ -66,6 +66,7 @@ public class CandyUserCouponBasicDto implements Serializable { ...@@ -66,6 +66,7 @@ public class CandyUserCouponBasicDto implements Serializable {
} }
} }
// 柄神的代码。有点逼数别乱动
public CandyUserCouponBasicDto copy(CandyUserCoupon userCoupon, CandyCoupon coupon, List<CandyCouponRuleDto> couponRuleDtoList) { public CandyUserCouponBasicDto copy(CandyUserCoupon userCoupon, CandyCoupon coupon, List<CandyCouponRuleDto> couponRuleDtoList) {
if (null == userCoupon) return this; if (null == userCoupon) return this;
this.setCouponId(coupon.getCouponId()); this.setCouponId(coupon.getCouponId());
...@@ -100,4 +101,37 @@ public class CandyUserCouponBasicDto implements Serializable { ...@@ -100,4 +101,37 @@ public class CandyUserCouponBasicDto implements Serializable {
this.setUseRules(couponRuleDtoList); this.setUseRules(couponRuleDtoList);
return this; return this;
} }
public CandyUserCouponBasicDto copyToRedisBaseCoupon(String uCouponId,String uid,String cCode, CandyCouponInfoDto couponInfoDto) {
this.setCouponId(couponInfoDto.getCouponId());
this.setTitle(couponInfoDto.getTitle());
this.setLabel(couponInfoDto.getLabel());
this.setNotice(couponInfoDto.getNotice());
this.setExclusive(couponInfoDto.getExclusive());
this.setBusiType(couponInfoDto.getBusiType());
this.setCouType(couponInfoDto.getCouType());
this.setBindType(couponInfoDto.getBindType());
this.setDiscount(couponInfoDto.getDiscount());
this.setValFace(couponInfoDto.getValFace());
this.setValOver(couponInfoDto.getValOver());
this.setValMinus(couponInfoDto.getValMinus());
this.setOverlay(couponInfoDto.getOverlay());
this.setOverlayLevel(couponInfoDto.getOverlayLevel());
this.setValidity(couponInfoDto.getValidity());
this.setRedeemValidity(couponInfoDto.getRedeemValidity());
this.setRedeemStart(couponInfoDto.getRedeemStart());
this.setRedeemStop(couponInfoDto.getRedeemStop());
this.setEffectAt(couponInfoDto.getEffectAt());
this.setExpireAt(couponInfoDto.getExpireAt());
this.setUcouponId(uCouponId);
this.setUid(uid);
this.setCcode(cCode);
this.setState(1);
this.setBindAt(LocalDateTime.now());
this.setUseRules(couponInfoDto.getUseRules());
return this;
}
} }
...@@ -2,7 +2,10 @@ package com.liquidnet.service.candy.service.impl; ...@@ -2,7 +2,10 @@ package com.liquidnet.service.candy.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.dto.CandyCouponCodeDto;
import com.liquidnet.service.candy.dto.CandyCouponInfoDto;
import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto; import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.mapper.CandyCouponMapper; import com.liquidnet.service.candy.mapper.CandyCouponMapper;
...@@ -222,10 +225,17 @@ public class CandyCouponServiceImpl extends ServiceImpl<CandyCouponMapper, Candy ...@@ -222,10 +225,17 @@ public class CandyCouponServiceImpl extends ServiceImpl<CandyCouponMapper, Candy
@Override @Override
public Boolean receiveCoupon(String ccode) { public Boolean receiveCoupon(String ccode) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
Boolean result = CouponBaseUtil.receiveCoupon(uid, ccode); CandyCouponCodeDto dto = redisDataUtils.getCouponByCode(ccode);
if (result) { if (dto.getState().equals(0)) {//判断可领
CandyCouponInfoDto infoDto = redisDataUtils.getCouponInfo(dto.getCouponId());
} else { String uCouponId = IDGenerator.get32UUID();
//构建baseDto
CandyUserCouponBasicDto baseDto = CandyUserCouponBasicDto.getNew().copyToRedisBaseCoupon(uCouponId,uid,ccode,infoDto);
//删除code redis
redisDataUtils.delCouponByCode(ccode);
//添加baseDto -> baseDtoList
redisDataUtils.addCouponByUid(uid,baseDto);
}else{
return false; return false;
} }
return true; return true;
......
...@@ -2,6 +2,7 @@ package com.liquidnet.service.candy.util; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.candy.util;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.dto.CandyCouponCodeDto;
import com.liquidnet.service.candy.dto.CandyCouponRuleDto; import com.liquidnet.service.candy.dto.CandyCouponRuleDto;
import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto; import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto;
import com.liquidnet.service.candy.vo.CandyCouponRulesVo; import com.liquidnet.service.candy.vo.CandyCouponRulesVo;
...@@ -296,12 +297,16 @@ public class CouponBaseUtil { ...@@ -296,12 +297,16 @@ public class CouponBaseUtil {
/** /**
* 领取券/兑换券 * 领取券/兑换券
* @param uid 用户id *
* @param ccode 领取/兑换码 * @param uid 用户id
* @param dto CandyCouponCodeDto
* @return * @return
*/ */
public static boolean receiveCoupon(String uid, String ccode) { public static CandyUserCouponBasicDto receiveCoupon(String uid, CandyCouponCodeDto dto) {
boolean result = false; CandyUserCouponBasicDto baseDto = null;
return result; if (dto.getState().equals(0)) {//判断可领
baseDto = CandyUserCouponBasicDto.getNew();
}
return baseDto;
} }
} }
package com.liquidnet.service.candy.util;
import com.liquidnet.commons.lang.util.CollectionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.StreamRecords;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.HashMap;
@Component
public class QueueUtils {
@Autowired
StringRedisTemplate stringRedisTemplate;
/**
* 发送消息 - REDIS
*
* @param streamKey Redis消费Key
* @param jsonMsg Json字符串
*/
public void sendMsgByRedis(String streamKey, String jsonMsg) {
HashMap<String, String> map = CollectionUtil.mapStringString();
map.put("message", jsonMsg);
stringRedisTemplate.opsForStream().add(StreamRecords.mapBacked(map).withStreamKey(streamKey));
}
}
...@@ -2,6 +2,8 @@ package com.liquidnet.service.candy.util; ...@@ -2,6 +2,8 @@ package com.liquidnet.service.candy.util;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.candy.constant.CandyRedisConst; import com.liquidnet.service.candy.constant.CandyRedisConst;
import com.liquidnet.service.candy.dto.CandyCouponCodeDto;
import com.liquidnet.service.candy.dto.CandyCouponInfoDto;
import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto; import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -15,30 +17,53 @@ public class RedisDataUtils { ...@@ -15,30 +17,53 @@ public class RedisDataUtils {
@Autowired @Autowired
RedisUtil redisUtil; RedisUtil redisUtil;
public List<CandyUserCouponBasicDto> getCouponByUid(String uid){ public List<CandyUserCouponBasicDto> getCouponByUid(String uid) {
String redisKey = CandyRedisConst.BASIC_USER_COUPON.concat(uid); String redisKey = CandyRedisConst.BASIC_USER_COUPON.concat(uid);
Object obj = redisUtil.get(redisKey); Object obj = redisUtil.get(redisKey);
if(obj==null){ if (obj == null) {
//降级 //降级
return new ArrayList(); return new ArrayList();
}else{ } else {
return (List<CandyUserCouponBasicDto>)obj; return (List<CandyUserCouponBasicDto>) obj;
} }
} }
public void setCouponByUid(String uid,List<CandyUserCouponBasicDto> dtoList){ public void setCouponByUid(String uid, List<CandyUserCouponBasicDto> dtoList) {
String redisKey = CandyRedisConst.BASIC_USER_COUPON.concat(uid); String redisKey = CandyRedisConst.BASIC_USER_COUPON.concat(uid);
redisUtil.set(redisKey,dtoList); redisUtil.set(redisKey, dtoList);
} }
public List<CandyUserCouponBasicDto> getCouponByCode(String ccode){ public void addCouponByUid(String uid, CandyUserCouponBasicDto dto) {
String redisKey = CandyRedisConst.BASIC_USER_COUPON.concat(uid);
List<CandyUserCouponBasicDto> dtoList = getCouponByUid(uid);
dtoList.add(dto);
redisUtil.set(redisKey, dtoList);
}
public CandyCouponCodeDto getCouponByCode(String ccode) {
String redisKey = CandyRedisConst.BASIC_COUPON_CODE.concat(ccode); String redisKey = CandyRedisConst.BASIC_COUPON_CODE.concat(ccode);
Object obj = redisUtil.get(redisKey); Object obj = redisUtil.get(redisKey);
if(obj==null){ if (obj == null) {
//降级 //降级
return new ArrayList(); return null;
}else{ } else {
return (List<CandyUserCouponBasicDto>)obj; return (CandyCouponCodeDto) obj;
}
}
public void delCouponByCode(String ccode) {
String redisKey = CandyRedisConst.BASIC_COUPON_CODE.concat(ccode);
redisUtil.del(redisKey);
}
public CandyCouponInfoDto getCouponInfo(String couponId) {
String redisKey = CandyRedisConst.BASIC_COUPON_INFO.concat(couponId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
//降级
return null;
} else {
return (CandyCouponInfoDto) obj;
} }
} }
} }
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