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

Commit 707bb6e1 authored by 胡佳晨's avatar 胡佳晨

提交 回退券

parent 5b12b295
package com.liquidnet.service.candy.param;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Api
public class BackCouponParam implements Serializable, Cloneable {
@ApiModelProperty(dataType = "String", name = "uCouponIds", value = "券唯一表示id(逗号隔开的字符串)",example = "1",required = true)
@NotNull @NotBlank
private String uCouponIds;
@ApiModelProperty(dataType = "String", name = "uid", value = "用户id",example = "10",required = true)
@NotNull @NotBlank
private String uid;
private static final BackCouponParam obj = new BackCouponParam();
public static BackCouponParam getNew() {
try {
return (BackCouponParam) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new BackCouponParam();
}
public String getuCouponIds() {
return uCouponIds;
}
public void setuCouponIds(String uCouponIds) {
this.uCouponIds = uCouponIds;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.candy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyMyCouponListVo;
import com.liquidnet.service.candy.vo.CandyUseResultVo;
......@@ -36,7 +37,7 @@ public interface ICandyCouponService {
CandyUseResultVo useCoupon(String uCouponId, String content, String totalPrice);
Boolean useBackCoupon(String uCouponId);
Boolean useBackCoupon(List<BackCouponParam> backCouponParam);
ResponseDto<Boolean> receiveCoupon(String ccode);
......
......@@ -98,4 +98,5 @@ global-auth:
- ${liquidnet.info.context}/doc.html
- ${liquidnet.info.context}/webjars/**
- ${liquidnet.info.context}/swagger-resources/**
- ${liquidnet.info.context}/v2/api-docs*
\ No newline at end of file
- ${liquidnet.info.context}/v2/api-docs*
- ${liquidnet.info.context}/candy-coupon/useBack
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.liquidnet.service.candy.controller;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.candy.service.ICandyCouponService;
import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyMyCouponListVo;
......@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
......@@ -162,11 +164,8 @@ public class CandyCouponController {
//回退券
@PostMapping("useBack")
@ApiOperation("回退券")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id(逗号隔开的字符串)", required = true),
})
public ResponseDto<Boolean> useBackCoupon(@RequestParam("uCouponId") @NotNull @NotBlank String uCouponId) {
candyCouponService.useBackCoupon(uCouponId);
public ResponseDto<Boolean> useBackCoupon(@RequestBody @Valid List<BackCouponParam> backCouponParam) {
candyCouponService.useBackCoupon(backCouponParam);
return ResponseDto.success();
}
......
......@@ -9,6 +9,7 @@ import com.liquidnet.service.base.constant.MQConst;
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.param.BackCouponParam;
import com.liquidnet.service.candy.service.ICandyCouponService;
import com.liquidnet.service.candy.util.CouponBaseUtil;
import com.liquidnet.service.candy.util.ObjectUtil;
......@@ -258,29 +259,30 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
@Override
public Boolean useBackCoupon(String uCouponIds) {
String uid = CurrentUtil.getCurrentUid();
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
});
public Boolean useBackCoupon(List<BackCouponParam> backCouponParams) {
for (BackCouponParam item : backCouponParams) {
String uid =item.getUid();
ArrayList<String> uCouponIdList = new ArrayList(Arrays.asList(item.getuCouponIds().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(),
sqlData
);
}
String sqlData = SqlMapping.gets(sqls, sqlsDataA);
queueUtils.sendMsgByRedis(
MQConst.CandyQueue.COUPON_BACK.getKey(),
sqlData
);
}
return true;
}
......@@ -294,7 +296,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
} else if (dto.getState().equals(0)) {//判断可领
CandyCouponInfoDto infoDto = redisDataUtils.getCouponInfo(dto.getCouponId());
if (!CouponBaseUtil.CandyCanReceive(infoDto)) {
return ResponseDto.failure("兑换码已过期");
return ResponseDto.failure("兑换码已过期");
}
String uCouponId = IDGenerator.get32UUID();
//构建baseDto
......@@ -311,9 +313,9 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
)
);
} else {
return ResponseDto.failure("兑换失败,请稍后再试");
return ResponseDto.failure("兑换失败,请稍后再试");
}
return ResponseDto.success(true);
return ResponseDto.success(true);
}
@Override
......@@ -321,18 +323,18 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
String uid = CurrentUtil.getCurrentUid();
CandyCouponCodeDto dto = redisDataUtils.getCouponByCode(ccode);
if (dto == null) {
return ResponseDto.failure("兑换码有误,请重新输入");
return ResponseDto.failure("兑换码有误,请重新输入");
} else if (dto.getState().equals(0)) {//判断可领
CandyCouponInfoDto infoDto = redisDataUtils.getCouponInfo(dto.getCouponId());
if (!CouponBaseUtil.CandyCanReceive(infoDto)) {
return ResponseDto.failure("兑换码已过期");
return ResponseDto.failure("兑换码已过期");
}
String uCouponId = IDGenerator.get32UUID();
//构建baseDto
CandyUserCouponBasicDto baseDto = CandyUserCouponBasicDto.getNew().copyToRedisBaseCoupon(uCouponId, uid, ccode, infoDto);
return ResponseDto.success(CouponBaseUtil.getBaseCouponUserVo(baseDto));
return ResponseDto.success(CouponBaseUtil.getBaseCouponUserVo(baseDto));
} else {
return ResponseDto.failure("兑换失败,请稍后再试");
return ResponseDto.failure("兑换失败,请稍后再试");
}
}
}
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