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

Commit 9571ee5c authored by 胡佳晨's avatar 胡佳晨

提交 领取 bindType3券

parent 823cdbfe
...@@ -49,4 +49,6 @@ public interface ICandyCouponService { ...@@ -49,4 +49,6 @@ public interface ICandyCouponService {
ResponseDto<CandyCouponVo> receiveCouponDetails(String ccode); ResponseDto<CandyCouponVo> receiveCouponDetails(String ccode);
ResponseDto<List<CandyCouponVo>> couponListById(String uCouponIds); ResponseDto<List<CandyCouponVo>> couponListById(String uCouponIds);
ResponseDto<Boolean> receiveBindType3(String uCouponId);
} }
...@@ -340,4 +340,14 @@ public class CandyCouponController { ...@@ -340,4 +340,14 @@ public class CandyCouponController {
// return ResponseDto.failure(); // return ResponseDto.failure();
// } // }
} }
//根据券id领取bindType3券
@PostMapping("receive/bindType3")
@ApiOperation("根据券id领取bindType3券")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponIds", value = "券id(逗号隔开的字符串)", required = true),
})
public ResponseDto<Boolean> receiveBindType3(@RequestParam("uCouponIds") @NotNull @NotBlank String uCouponIds) {
return candyCouponService.receiveBindType3(uCouponIds);
}
} }
...@@ -61,7 +61,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -61,7 +61,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
for (CandyUserCouponBasicDto dtoItem : dtoList) { for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem); CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem);
if(baseVo==null){ if (baseVo == null) {
continue; continue;
} }
if (type == 1) { if (type == 1) {
...@@ -73,7 +73,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -73,7 +73,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
continue; continue;
} }
} }
if(baseVo.getBindType().equals("3")){ if (baseVo.getBindType().equals("3")) {
} }
if (dtoItem.getExclusive().equals(1)) { //会员券 if (dtoItem.getExclusive().equals(1)) { //会员券
...@@ -127,7 +127,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -127,7 +127,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
continue; continue;
} }
CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem); CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem);
if(baseVo==null){ if (baseVo == null) {
continue; continue;
} }
if (dtoItem.getExclusive().equals(1)) { //会员券 if (dtoItem.getExclusive().equals(1)) { //会员券
...@@ -316,7 +316,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -316,7 +316,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
if (dto == null) { if (dto == null) {
return null;//券不存在 return null;//券不存在
} }
return CouponBaseUtil.getCouponState(LocalDateTime.now(), dto.getDuedAt(), dto.getBindAt(), dto.getState(),dto.getBindType()); return CouponBaseUtil.getCouponState(LocalDateTime.now(), dto.getDuedAt(), dto.getBindAt(), dto.getState(), dto.getBindType());
} }
@Override @Override
...@@ -547,7 +547,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -547,7 +547,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
for (CandyUserCouponBasicDto dtoItem : dtoList) { for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (uCouponIdList.contains(dtoItem.getUcouponId())) { if (uCouponIdList.contains(dtoItem.getUcouponId())) {
CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem); CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem);
if(baseVo==null){ if (baseVo == null) {
continue; continue;
} }
vo.add(baseVo); vo.add(baseVo);
...@@ -557,4 +557,44 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -557,4 +557,44 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
} }
return ResponseDto.success(vo); return ResponseDto.success(vo);
} }
@Override
public ResponseDto<Boolean> receiveBindType3(String uCouponId) {
String uid = CurrentUtil.getCurrentUid();
LocalDateTime userCreateTime;
LocalDateTime now = LocalDateTime.now();
String mobile = (String) CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_MOBILE);
try {
userCreateTime = DateUtil.Formatter.yyyyMMddHHmmssTrim.parse(CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_UCREATED).toString());
} catch (Exception e) {
userCreateTime = null;
}
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid, userCreateTime);
for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (uCouponId.equals(dtoItem.getUcouponId())) {
CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem);
if (baseVo == null) {
return ResponseDto.failure();
} else if (!baseVo.getBindType().equals(3)) {
return ResponseDto.failure("券类型错误");
} else if (baseVo.getBindType().equals(3) && baseVo.getBindType() == null) {
return ResponseDto.failure("该券已领取");
} else {
LocalDateTime dued_at = now.plusDays(dtoItem.getValidity()).withHour(23).withMinute(59).withSecond(59);
dtoList = CouponBaseUtil.receiveBindType3Coupon(dtoList, uCouponId, now, dued_at);
//REDIS
redisDataUtils.setCouponByUid(uid, dtoList);
//MYSQL
queueUtils.sendMsgByRedis(
MQConst.CandyQueue.COUPON_RECEIVE.getKey(),
SqlMapping.get("candy_coupon.get_bindType3",
now, dued_at, now, mobile, uCouponId
)
);
return ResponseDto.success();
}
}
}
return ResponseDto.failure();
}
} }
...@@ -56,9 +56,6 @@ public class CouponBaseUtil { ...@@ -56,9 +56,6 @@ public class CouponBaseUtil {
} else { } else {
vo.setCouType(dtoItem.getCouType()); vo.setCouType(dtoItem.getCouType());
} }
if (dtoItem.getDuedAt() == null) {
return null;
}
vo.setState(getCouponState(now, dtoItem.getDuedAt(), dtoItem.getBindAt(), dtoItem.getState(), dtoItem.getBindType())); vo.setState(getCouponState(now, dtoItem.getDuedAt(), dtoItem.getBindAt(), dtoItem.getState(), dtoItem.getBindType()));
vo.setUseRules(rulesVoList); vo.setUseRules(rulesVoList);
return vo; return vo;
...@@ -361,6 +358,33 @@ public class CouponBaseUtil { ...@@ -361,6 +358,33 @@ public class CouponBaseUtil {
return dtoList; return dtoList;
} }
/**
* 使用券
*
* @param dtoList CouponBaseDtoList
* @param uCouponId 券唯一id
* @return List<CandyUserCouponBasicDto>
*/
public static List<CandyUserCouponBasicDto> receiveBindType3Coupon(List<CandyUserCouponBasicDto> dtoList, String uCouponId, LocalDateTime bindAt,LocalDateTime dueAt) {
boolean isHas = false;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (dtoItem.getUcouponId().equals(uCouponId)) {
if (dtoItem.getBindType().equals(3)) {
dtoItem.setBindAt(bindAt);
dtoItem.setDuedAt(dueAt);
isHas = true;//券存在
} else {
return null;//券不可用
}
break;
}
}
if (!isHas) {
return null;//券不存在
}
return dtoList;
}
/** /**
* 判断券是否在可兑换时间范围 * 判断券是否在可兑换时间范围
* *
......
...@@ -7,3 +7,6 @@ candy_coupon.back=UPDATE candy_user_coupon SET state = 1 WHERE uid = ? AND ucoup ...@@ -7,3 +7,6 @@ candy_coupon.back=UPDATE candy_user_coupon SET state = 1 WHERE uid = ? AND ucoup
# -- 领取券 -- # -- 领取券 --
candy_coupon.receive=INSERT INTO candy_user_coupon (ucoupon_id , uid , state , coupon_id , ccode , bind_at , created_at , dued_at) VALUE ( ? , ? , ? , ? , ? , ? , ? , ?) candy_coupon.receive=INSERT INTO candy_user_coupon (ucoupon_id , uid , state , coupon_id , ccode , bind_at , created_at , dued_at) VALUE ( ? , ? , ? , ? , ? , ? , ? , ?)
candy_coupon_code.receive=UPDATE candy_coupon_code SET state=?,ucoupon_id=?,redeem_uid=?,redeem_mobile=?,redeem_at=?,updated_at=? WHERE coupon_id=? AND ccode=? candy_coupon_code.receive=UPDATE candy_coupon_code SET state=?,ucoupon_id=?,redeem_uid=?,redeem_mobile=?,redeem_at=?,updated_at=? WHERE coupon_id=? AND ccode=?
# BindType == 3 领取券 bind_at, dued_at
candy_coupon.get_bindType3=UPDATE candy_user_coupon set bind_at = ? , dued_at = ? , updated_at = ? , operator = ? where ucoupon_id = ?
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