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

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

candy 回退券 改为 批量

parent 89230f04
......@@ -140,7 +140,7 @@ public class CandyCouponController {
@PostMapping("useBack")
@ApiOperation("回退券")
@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) {
candyCouponService.useBackCoupon(uCouponId);
......
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.IDGenerator;
import com.liquidnet.service.base.SqlMapping;
......@@ -20,8 +21,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.List;
import java.util.*;
/**
* <p>
......@@ -178,7 +178,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
@Override
public CandyUseResultVo useCoupon(String uCouponId, String content,String totalPrice) {
public CandyUseResultVo useCoupon(String uCouponId, String content, String totalPrice) {
String uid = CurrentUtil.getCurrentUid();
CandyUseResultVo vo = CandyUseResultVo.getNew();
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.useCoupon(redisDataUtils.getCouponByUid(uid), uCouponId, content);
......@@ -193,9 +193,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
vo.setValue(dto.getValFace());
break;
case 2:
if(dto.getValOver().compareTo(new BigDecimal(totalPrice))>=0) {
if (dto.getValOver().compareTo(new BigDecimal(totalPrice)) >= 0) {
vo.setValue(dto.getValMinus());
}else{
} else {
vo.setCouType(-1);
vo.setValue(BigDecimal.ZERO);
}
......@@ -210,7 +210,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
vo.setValue(BigDecimal.valueOf(0));
break;
}
if(vo.getCouType()!=-1) {
if (vo.getCouType() != -1) {
redisDataUtils.setCouponByUid(uid, dtoList);
//入库
queueUtils.sendMsgByRedis(
......@@ -225,19 +225,28 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
@Override
public Boolean useBackCoupon(String uCouponId) {
public Boolean useBackCoupon(String uCouponIds) {
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) {
return false;
} else {
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(
MQConst.CandyQueue.COUPON_BACK.getKey(),
SqlMapping.get("candy_coupon.back",
uid,uCouponId
)
sqlData
);
}
return true;
......
......@@ -10,6 +10,7 @@ import com.liquidnet.service.candy.vo.CandyCouponVo;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
public class CouponBaseUtil {
......@@ -282,21 +283,19 @@ public class CouponBaseUtil {
/**
* 回退券
*
* @param dtoList CouponBaseDtoList
* @param uCouponId 券唯一id
* @param dtoList CouponBaseDtoList
* @param uCouponIdList 券唯一id list
* @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;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (dtoItem.getUcouponId().equals(uCouponId)) {
if (uCouponIdList.contains(dtoItem.getUcouponId())) {
if (dtoItem.getState().equals(5)) {
dtoItem.setState(1);
isHas = true;//券存在
} else {
return null;//券不可用
}
break;
}
}
if (!isHas) {
......
package com.liquidnet.service.consumer.kylin.config;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerCandyCouponBackRdsReceiver;
import com.liquidnet.service.consumer.kylin.receiver.ConsumerCandyCouponUseRdsReceiver;
import lombok.var;
import org.springframework.beans.factory.annotation.Autowired;
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