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

Commit 1652e54d authored by 张国柄's avatar 张国柄

Merge remote-tracking branch 'origin/dev_member_voucher_refund' into dev_member_voucher_refund

parents fe9ca421 94c8c594
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; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.candy.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.entity.CandyCoupon; 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.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyMyCouponListVo; import com.liquidnet.service.candy.vo.CandyMyCouponListVo;
import com.liquidnet.service.candy.vo.CandyUseResultVo; import com.liquidnet.service.candy.vo.CandyUseResultVo;
...@@ -36,7 +37,7 @@ public interface ICandyCouponService { ...@@ -36,7 +37,7 @@ public interface ICandyCouponService {
CandyUseResultVo useCoupon(String uCouponId, String content, String totalPrice); CandyUseResultVo useCoupon(String uCouponId, String content, String totalPrice);
Boolean useBackCoupon(String uCouponId); Boolean useBackCoupon(List<BackCouponParam> backCouponParam);
ResponseDto<Boolean> receiveCoupon(String ccode); ResponseDto<Boolean> receiveCoupon(String ccode);
......
...@@ -98,4 +98,5 @@ global-auth: ...@@ -98,4 +98,5 @@ global-auth:
- ${liquidnet.info.context}/doc.html - ${liquidnet.info.context}/doc.html
- ${liquidnet.info.context}/webjars/** - ${liquidnet.info.context}/webjars/**
- ${liquidnet.info.context}/swagger-resources/** - ${liquidnet.info.context}/swagger-resources/**
- ${liquidnet.info.context}/v2/api-docs* - ${liquidnet.info.context}/v2/api-docs*
\ No newline at end of file - ${liquidnet.info.context}/candy-coupon/useBack
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.liquidnet.service.candy.controller; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.candy.controller;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.base.ResponseDto; 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.service.ICandyCouponService;
import com.liquidnet.service.candy.vo.CandyCouponVo; import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyMyCouponListVo; import com.liquidnet.service.candy.vo.CandyMyCouponListVo;
...@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -162,11 +164,11 @@ public class CandyCouponController { ...@@ -162,11 +164,11 @@ public class CandyCouponController {
//回退券 //回退券
@PostMapping("useBack") @PostMapping("useBack")
@ApiOperation("回退券") @ApiOperation("回退券")
@ApiImplicitParams({ public ResponseDto<Boolean> useBackCoupon(@RequestBody @Valid List<BackCouponParam> backCouponParam) {
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id(逗号隔开的字符串)", required = true), if(backCouponParam.size()>100){
}) return ResponseDto.failure("数据量不得大于100");
public ResponseDto<Boolean> useBackCoupon(@RequestParam("uCouponId") @NotNull @NotBlank String uCouponId) { }
candyCouponService.useBackCoupon(uCouponId); candyCouponService.useBackCoupon(backCouponParam);
return ResponseDto.success(); return ResponseDto.success();
} }
......
...@@ -9,6 +9,7 @@ import com.liquidnet.service.base.constant.MQConst; ...@@ -9,6 +9,7 @@ import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.candy.dto.CandyCouponCodeDto; import com.liquidnet.service.candy.dto.CandyCouponCodeDto;
import com.liquidnet.service.candy.dto.CandyCouponInfoDto; 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.param.BackCouponParam;
import com.liquidnet.service.candy.service.ICandyCouponService; import com.liquidnet.service.candy.service.ICandyCouponService;
import com.liquidnet.service.candy.util.CouponBaseUtil; import com.liquidnet.service.candy.util.CouponBaseUtil;
import com.liquidnet.service.candy.util.ObjectUtil; import com.liquidnet.service.candy.util.ObjectUtil;
...@@ -258,29 +259,30 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -258,29 +259,30 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
} }
@Override @Override
public Boolean useBackCoupon(String uCouponIds) { public Boolean useBackCoupon(List<BackCouponParam> backCouponParams) {
String uid = CurrentUtil.getCurrentUid(); for (BackCouponParam item : backCouponParams) {
ArrayList<String> uCouponIdList = new ArrayList(Arrays.asList(uCouponIds.split(","))); String uid =item.getUid();
ArrayList<String> uCouponIdList = new ArrayList(Arrays.asList(item.getuCouponIds().split(",")));
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.backCoupon(redisDataUtils.getCouponByUid(uid), uCouponIdList); 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(); LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add(SqlMapping.get("candy_coupon.back")); sqls.add(SqlMapping.get("candy_coupon.back"));
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr(); LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
for (String uCouponId : uCouponIdList) { for (String uCouponId : uCouponIdList) {
sqlsDataA.add(new Object[]{ sqlsDataA.add(new Object[]{
uid, uCouponId 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; return true;
} }
...@@ -289,12 +291,12 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -289,12 +291,12 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
public ResponseDto<Boolean> receiveCoupon(String ccode) { public ResponseDto<Boolean> receiveCoupon(String ccode) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
CandyCouponCodeDto dto = redisDataUtils.getCouponByCode(ccode); CandyCouponCodeDto dto = redisDataUtils.getCouponByCode(ccode);
if (dto != null) { if (dto == null) {
return ResponseDto.failure("兑换码有误,请重新输入"); return ResponseDto.failure("兑换码有误,请重新输入");
} else if (dto.getState().equals(0)) {//判断可领 } else if (dto.getState().equals(0)) {//判断可领
CandyCouponInfoDto infoDto = redisDataUtils.getCouponInfo(dto.getCouponId()); CandyCouponInfoDto infoDto = redisDataUtils.getCouponInfo(dto.getCouponId());
if (!CouponBaseUtil.CandyCanReceive(infoDto)) { if (!CouponBaseUtil.CandyCanReceive(infoDto)) {
return ResponseDto.failure("兑换码已过期"); return ResponseDto.failure("兑换码已过期");
} }
String uCouponId = IDGenerator.get32UUID(); String uCouponId = IDGenerator.get32UUID();
//构建baseDto //构建baseDto
...@@ -311,28 +313,28 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -311,28 +313,28 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
) )
); );
} else { } else {
return ResponseDto.failure("兑换失败,请稍后再试"); return ResponseDto.failure("兑换失败,请稍后再试");
} }
return ResponseDto.success(true); return ResponseDto.success(true);
} }
@Override @Override
public ResponseDto<CandyCouponVo> receiveCouponDetails(String ccode) { public ResponseDto<CandyCouponVo> receiveCouponDetails(String ccode) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
CandyCouponCodeDto dto = redisDataUtils.getCouponByCode(ccode); CandyCouponCodeDto dto = redisDataUtils.getCouponByCode(ccode);
if (dto != null) { if (dto == null) {
return ResponseDto.failure("兑换码有误,请重新输入"); return ResponseDto.failure("兑换码有误,请重新输入");
} else if (dto.getState().equals(0)) {//判断可领 } else if (dto.getState().equals(0)) {//判断可领
CandyCouponInfoDto infoDto = redisDataUtils.getCouponInfo(dto.getCouponId()); CandyCouponInfoDto infoDto = redisDataUtils.getCouponInfo(dto.getCouponId());
if (!CouponBaseUtil.CandyCanReceive(infoDto)) { if (!CouponBaseUtil.CandyCanReceive(infoDto)) {
return ResponseDto.failure("兑换码已过期"); return ResponseDto.failure("兑换码已过期");
} }
String uCouponId = IDGenerator.get32UUID(); String uCouponId = IDGenerator.get32UUID();
//构建baseDto //构建baseDto
CandyUserCouponBasicDto baseDto = CandyUserCouponBasicDto.getNew().copyToRedisBaseCoupon(uCouponId, uid, ccode, infoDto); CandyUserCouponBasicDto baseDto = CandyUserCouponBasicDto.getNew().copyToRedisBaseCoupon(uCouponId, uid, ccode, infoDto);
return ResponseDto.success(CouponBaseUtil.getBaseCouponUserVo(baseDto)); return ResponseDto.success(CouponBaseUtil.getBaseCouponUserVo(baseDto));
} else { } else {
return ResponseDto.failure("兑换失败,请稍后再试"); return ResponseDto.failure("兑换失败,请稍后再试");
} }
} }
} }
...@@ -282,6 +282,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -282,6 +282,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
} }
} }
} }
if(e.getMessage().equals("券不可用")){
return ResponseDto.failure(ErrorMapping.get("20030"));//券不可用
}
return ResponseDto.failure(ErrorMapping.get("20018"));//乱七八糟异常 return ResponseDto.failure(ErrorMapping.get("20018"));//乱七八糟异常
} }
} }
...@@ -322,6 +325,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -322,6 +325,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
orderTickets.setPriceTotal(ticketData.getPrice().multiply(BigDecimal.valueOf(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : BigDecimal.valueOf(0))); orderTickets.setPriceTotal(ticketData.getPrice().multiply(BigDecimal.valueOf(payOrderParam.getNumber())).add(payOrderParam.getIsExpress() == 1 ? ticketData.getPriceExpress() : BigDecimal.valueOf(0)));
} }
orderTickets.setPriceVoucher(BigDecimal.ZERO);
//券的使用逻辑 //券的使用逻辑
sqls.add(SqlMapping.get("kylin_order_coupon.add")); sqls.add(SqlMapping.get("kylin_order_coupon.add"));
LinkedList<Object[]> sqlsDataE = ObjectUtil.cloneLinkedListObj(); LinkedList<Object[]> sqlsDataE = ObjectUtil.cloneLinkedListObj();
......
...@@ -3,6 +3,7 @@ package com.liquidnet.service.order.utils; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.order.utils;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
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.HttpUtil; import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
...@@ -180,8 +181,13 @@ public class OrderUtils { ...@@ -180,8 +181,13 @@ public class OrderUtils {
params.add("uCouponId", uCouponId); params.add("uCouponId", uCouponId);
params.add("content", content); params.add("content", content);
params.add("totalPrice", totalPrice.toString()); params.add("totalPrice", totalPrice.toString());
String returnData = HttpUtil.post(candyUrl+"/candy-coupon/use", params, null);
InnerReturnVo<CandyUseResultVo> innerReturnVo = JsonUtils.fromJson(returnData, InnerReturnVo.class); MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Authorization", "Bearer "+CurrentUtil.getToken());
String returnData = HttpUtil.post(candyUrl+"/candy-coupon/use", params, header);
InnerReturnVo<CandyUseResultVo> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<InnerReturnVo<CandyUseResultVo>>() {
});
CandyUseResultVo candyUseResultVo = innerReturnVo.getData(); CandyUseResultVo candyUseResultVo = innerReturnVo.getData();
Integer type = candyUseResultVo.getCouType(); Integer type = candyUseResultVo.getCouType();
BigDecimal value = candyUseResultVo.getValue(); BigDecimal value = candyUseResultVo.getValue();
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
20028=订单已失效 20028=订单已失效
20027=您已支付请刷新再试 20027=您已支付请刷新再试
20029=未选择支付方式 20029=未选择支付方式
20030=券不可用
#APP PARTNER #APP PARTNER
20101=添加失败 20101=添加失败
......
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