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

Commit 314aa040 authored by 胡佳晨's avatar 胡佳晨

candy 回退券 改为 批量

parent 89230f04
...@@ -140,7 +140,7 @@ public class CandyCouponController { ...@@ -140,7 +140,7 @@ public class CandyCouponController {
@PostMapping("useBack") @PostMapping("useBack")
@ApiOperation("回退券") @ApiOperation("回退券")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id(逗号隔开的字符串)", required = true),
}) })
public ResponseDto<Boolean> useBackCoupon(@RequestParam("uCouponId") String uCouponId) { public ResponseDto<Boolean> useBackCoupon(@RequestParam("uCouponId") String uCouponId) {
candyCouponService.useBackCoupon(uCouponId); candyCouponService.useBackCoupon(uCouponId);
......
package com.liquidnet.service.candy.service.impl; package com.liquidnet.service.candy.service.impl;
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.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
...@@ -20,8 +21,7 @@ import org.springframework.stereotype.Service; ...@@ -20,8 +21,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Comparator; import java.util.*;
import java.util.List;
/** /**
* <p> * <p>
...@@ -178,7 +178,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -178,7 +178,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
} }
@Override @Override
public CandyUseResultVo useCoupon(String uCouponId, String content,String totalPrice) { public CandyUseResultVo useCoupon(String uCouponId, String content, String totalPrice) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
CandyUseResultVo vo = CandyUseResultVo.getNew(); CandyUseResultVo vo = CandyUseResultVo.getNew();
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.useCoupon(redisDataUtils.getCouponByUid(uid), uCouponId, content); List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.useCoupon(redisDataUtils.getCouponByUid(uid), uCouponId, content);
...@@ -193,9 +193,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -193,9 +193,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
vo.setValue(dto.getValFace()); vo.setValue(dto.getValFace());
break; break;
case 2: case 2:
if(dto.getValOver().compareTo(new BigDecimal(totalPrice))>=0) { if (dto.getValOver().compareTo(new BigDecimal(totalPrice)) >= 0) {
vo.setValue(dto.getValMinus()); vo.setValue(dto.getValMinus());
}else{ } else {
vo.setCouType(-1); vo.setCouType(-1);
vo.setValue(BigDecimal.ZERO); vo.setValue(BigDecimal.ZERO);
} }
...@@ -210,7 +210,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -210,7 +210,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
vo.setValue(BigDecimal.valueOf(0)); vo.setValue(BigDecimal.valueOf(0));
break; break;
} }
if(vo.getCouType()!=-1) { if (vo.getCouType() != -1) {
redisDataUtils.setCouponByUid(uid, dtoList); redisDataUtils.setCouponByUid(uid, dtoList);
//入库 //入库
queueUtils.sendMsgByRedis( queueUtils.sendMsgByRedis(
...@@ -225,19 +225,28 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -225,19 +225,28 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
} }
@Override @Override
public Boolean useBackCoupon(String uCouponId) { public Boolean useBackCoupon(String uCouponIds) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.backCoupon(redisDataUtils.getCouponByUid(uid), uCouponId); ArrayList<String> uCouponIdList = new ArrayList(Arrays.asList(uCouponIds.split(",")));
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.backCoupon(redisDataUtils.getCouponByUid(uid), uCouponIdList);
if (dtoList == null) { if (dtoList == null) {
return false; return false;
} else { } else {
redisDataUtils.setCouponByUid(uid, dtoList); redisDataUtils.setCouponByUid(uid, dtoList);
//入库 //入库
LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("candy_coupon.back"));
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
for (String uCouponId : uCouponIdList){
sqlsDataA.add(new Object[]{
uid,uCouponId
});
}
String sqlData = SqlMapping.gets(sqls, sqlsDataA );
queueUtils.sendMsgByRedis( queueUtils.sendMsgByRedis(
MQConst.CandyQueue.COUPON_BACK.getKey(), MQConst.CandyQueue.COUPON_BACK.getKey(),
SqlMapping.get("candy_coupon.back", sqlData
uid,uCouponId
)
); );
} }
return true; return true;
......
...@@ -10,6 +10,7 @@ import com.liquidnet.service.candy.vo.CandyCouponVo; ...@@ -10,6 +10,7 @@ import com.liquidnet.service.candy.vo.CandyCouponVo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class CouponBaseUtil { public class CouponBaseUtil {
...@@ -282,21 +283,19 @@ public class CouponBaseUtil { ...@@ -282,21 +283,19 @@ public class CouponBaseUtil {
/** /**
* 回退券 * 回退券
* *
* @param dtoList CouponBaseDtoList * @param dtoList CouponBaseDtoList
* @param uCouponId 券唯一id * @param uCouponIdList 券唯一id list
* @return List<CandyUserCouponBasicDto> * @return List<CandyUserCouponBasicDto>
*/ */
public static List<CandyUserCouponBasicDto> backCoupon(List<CandyUserCouponBasicDto> dtoList, String uCouponId) { public static List<CandyUserCouponBasicDto> backCoupon(List<CandyUserCouponBasicDto> dtoList, ArrayList<String> uCouponIdList) {
boolean isHas = false; boolean isHas = false;
for (CandyUserCouponBasicDto dtoItem : dtoList) { for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (dtoItem.getUcouponId().equals(uCouponId)) { if (uCouponIdList.contains(dtoItem.getUcouponId())) {
if (dtoItem.getState().equals(5)) { if (dtoItem.getState().equals(5)) {
dtoItem.setState(1); dtoItem.setState(1);
isHas = true;//券存在 isHas = true;//券存在
} else { } else {
return null;//券不可用
} }
break;
} }
} }
if (!isHas) { if (!isHas) {
......
package com.liquidnet.service.consumer.kylin.config; package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerCandyCouponBackRdsReceiver; import com.liquidnet.service.consumer.kylin.receiver.ConsumerCandyCouponBackRdsReceiver;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerCandyCouponUseRdsReceiver;
import lombok.var; import lombok.var;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
......
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