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

Commit f75ba734 authored by 胡佳晨's avatar 胡佳晨

提交 缺兑换券接口

parent f031a619
...@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil; ...@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto; import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto;
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;
import com.liquidnet.service.candy.util.RedisDataUtils; import com.liquidnet.service.candy.util.RedisDataUtils;
...@@ -42,32 +43,13 @@ import java.util.List; ...@@ -42,32 +43,13 @@ import java.util.List;
public class CandyCouponController { public class CandyCouponController {
@Autowired @Autowired
private RedisDataUtils redisDataUtils; private ICandyCouponService candyCouponService;
//我的券列表 //我的券列表
@GetMapping("my") @GetMapping("my")
@ApiOperation("我的券列表") @ApiOperation("我的券列表")
public ResponseDto<CandyMyCouponListVo> myCoupon() { public ResponseDto<CandyMyCouponListVo> myCoupon() {
String uid = CurrentUtil.getCurrentUid(); return ResponseDto.success(candyCouponService.myCoupon());
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
CandyMyCouponListVo vo = CandyMyCouponListVo.getNew();
List<CandyCouponVo> memberCoupon = ObjectUtil.getCandyCouponVoArrayList();
List<CandyCouponVo> myCoupon = ObjectUtil.getCandyCouponVoArrayList();
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem);
if (dtoItem.getExclusive().equals(1)) { //会员券
memberCoupon.add(baseVo);
} else {//非会员券
myCoupon.add(baseVo);
}
}
//排序
memberCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
myCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
vo.setMemberCoupon(memberCoupon);
vo.setMyCoupon(myCoupon);
return ResponseDto.success(vo);
} }
//要使用券列表 - 演出 //要使用券列表 - 演出
...@@ -80,27 +62,7 @@ public class CandyCouponController { ...@@ -80,27 +62,7 @@ public class CandyCouponController {
@ApiImplicitParam(type = "form", dataType = "String", name = "ticketId", value = "票id", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "ticketId", value = "票id", required = true),
}) })
public ResponseDto<CandyMyCouponListVo> preUsePerformanceCoupon(@RequestParam("priceTotal") BigDecimal priceTotal, @RequestParam("performanceId") String performanceId, @RequestParam("timeId") String timeId, @RequestParam("ticketId") String ticketId) { public ResponseDto<CandyMyCouponListVo> preUsePerformanceCoupon(@RequestParam("priceTotal") BigDecimal priceTotal, @RequestParam("performanceId") String performanceId, @RequestParam("timeId") String timeId, @RequestParam("ticketId") String ticketId) {
String uid = CurrentUtil.getCurrentUid(); return ResponseDto.success(candyCouponService.preUsePerformanceCoupon(priceTotal, performanceId, timeId, ticketId));
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
CandyMyCouponListVo vo = CandyMyCouponListVo.getNew();
List<CandyCouponVo> memberCoupon = ObjectUtil.getCandyCouponVoArrayList();
List<CandyCouponVo> myCoupon = ObjectUtil.getCandyCouponVoArrayList();
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getPerformanceCouponUserVo(dtoItem, priceTotal, performanceId, timeId, ticketId);
if (dtoItem.getExclusive().equals(1)) { //会员券
memberCoupon.add(baseVo);
} else {//非会员券
myCoupon.add(baseVo);
}
}
//排序
memberCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
myCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
vo.setMemberCoupon(memberCoupon);
vo.setMyCoupon(myCoupon);
return ResponseDto.success(vo);
} }
// 是否可用券演出 // 是否可用券演出
...@@ -113,19 +75,8 @@ public class CandyCouponController { ...@@ -113,19 +75,8 @@ public class CandyCouponController {
@ApiImplicitParam(type = "form", dataType = "String", name = "ticketId", value = "票id", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "ticketId", value = "票id", required = true),
}) })
public ResponseDto<HashMap<String, Integer>> preCanUsePerformanceCoupon(@RequestParam("priceTotal") BigDecimal priceTotal, @RequestParam("performanceId") String performanceId, @RequestParam("timeId") String timeId, @RequestParam("ticketId") String ticketId) { public ResponseDto<HashMap<String, Integer>> preCanUsePerformanceCoupon(@RequestParam("priceTotal") BigDecimal priceTotal, @RequestParam("performanceId") String performanceId, @RequestParam("timeId") String timeId, @RequestParam("ticketId") String ticketId) {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
HashMap<String, Integer> hashMap = CollectionUtil.mapStringInteger(); HashMap<String, Integer> hashMap = CollectionUtil.mapStringInteger();
hashMap.put("canUse", 0); hashMap.put("canUse", candyCouponService.preCanUsePerformanceCoupon(priceTotal, performanceId, timeId, ticketId));
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getPerformanceCouponUserVo(dtoItem, priceTotal, performanceId, timeId, ticketId);
if (baseVo.getState().equals(1)) { //可用
hashMap.put("canUse", 1);
break;
} else {//不可用
continue;
}
}
return ResponseDto.success(hashMap); return ResponseDto.success(hashMap);
} }
...@@ -139,27 +90,7 @@ public class CandyCouponController { ...@@ -139,27 +90,7 @@ public class CandyCouponController {
@ApiImplicitParam(type = "form", dataType = "String", name = "produceId", value = "场次id", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "produceId", value = "场次id", required = true),
}) })
public ResponseDto<CandyMyCouponListVo> preUseGoodCoupon(@RequestParam("priceTotal") BigDecimal priceTotal, @RequestParam("goodId") String goodId, @RequestParam("produceId") String produceId) { public ResponseDto<CandyMyCouponListVo> preUseGoodCoupon(@RequestParam("priceTotal") BigDecimal priceTotal, @RequestParam("goodId") String goodId, @RequestParam("produceId") String produceId) {
String uid = CurrentUtil.getCurrentUid(); return ResponseDto.success(candyCouponService.preUseGoodCoupon(priceTotal, goodId, produceId));
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
CandyMyCouponListVo vo = CandyMyCouponListVo.getNew();
List<CandyCouponVo> memberCoupon = ObjectUtil.getCandyCouponVoArrayList();
List<CandyCouponVo> myCoupon = ObjectUtil.getCandyCouponVoArrayList();
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getGoodCouponUserVo(dtoItem, priceTotal, goodId, produceId);
if (dtoItem.getExclusive().equals(1)) { //会员券
memberCoupon.add(baseVo);
} else {//非会员券
myCoupon.add(baseVo);
}
}
//排序
memberCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
myCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
vo.setMemberCoupon(memberCoupon);
vo.setMyCoupon(myCoupon);
return ResponseDto.success(vo);
} }
//是否可用券 - 商品 //是否可用券 - 商品
...@@ -171,19 +102,8 @@ public class CandyCouponController { ...@@ -171,19 +102,8 @@ public class CandyCouponController {
@ApiImplicitParam(type = "form", dataType = "String", name = "produceId", value = "场次id", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "produceId", value = "场次id", required = true),
}) })
public ResponseDto<HashMap<String, Integer>> preCanUseGoodCoupon(@RequestParam("priceTotal") BigDecimal priceTotal, @RequestParam("goodId") String goodId, @RequestParam("produceId") String produceId) { public ResponseDto<HashMap<String, Integer>> preCanUseGoodCoupon(@RequestParam("priceTotal") BigDecimal priceTotal, @RequestParam("goodId") String goodId, @RequestParam("produceId") String produceId) {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
HashMap<String, Integer> hashMap = CollectionUtil.mapStringInteger(); HashMap<String, Integer> hashMap = CollectionUtil.mapStringInteger();
hashMap.put("canUse", 0); hashMap.put("canUse", candyCouponService.preCanUseGoodCoupon(priceTotal, goodId, produceId));
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getGoodCouponUserVo(dtoItem, priceTotal, goodId, produceId);
if (baseVo.getState().equals(1)) { //可用
hashMap.put("canUse", 1);
break;
} else {//不可用
continue;
}
}
return ResponseDto.success(hashMap); return ResponseDto.success(hashMap);
} }
...@@ -192,23 +112,7 @@ public class CandyCouponController { ...@@ -192,23 +112,7 @@ public class CandyCouponController {
@GetMapping("my/advance") @GetMapping("my/advance")
@ApiOperation("提前券列表") @ApiOperation("提前券列表")
public ResponseDto<List<CandyCouponVo>> myAdvanceCoupon() { public ResponseDto<List<CandyCouponVo>> myAdvanceCoupon() {
String uid = CurrentUtil.getCurrentUid(); return ResponseDto.success(candyCouponService.myAdvanceCoupon());
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
List<CandyCouponVo> advanceCoupon = ObjectUtil.getCandyCouponVoArrayList();
for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (dtoItem.getBusiType().equals(3)) {
CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem);
if (baseVo.getState().equals(1)) {
advanceCoupon.add(baseVo);
} else {
continue;
}
} else {
continue;
}
}
//排序
return ResponseDto.success(advanceCoupon);
} }
//判断券是否可用 //判断券是否可用
...@@ -218,15 +122,13 @@ public class CandyCouponController { ...@@ -218,15 +122,13 @@ public class CandyCouponController {
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id", required = true),
}) })
public ResponseDto<HashMap<String, Integer>> stateCoupon(@RequestParam("uCouponId") String uCouponId) { public ResponseDto<HashMap<String, Integer>> stateCoupon(@RequestParam("uCouponId") String uCouponId) {
String uid = CurrentUtil.getCurrentUid(); Integer result = candyCouponService.stateCoupon(uCouponId);
CandyUserCouponBasicDto dto = CouponBaseUtil.getSingleDtoByUCouponId(redisDataUtils.getCouponByUid(uid), uCouponId); if (result == null) {
if (dto == null) { return ResponseDto.failure();
return ResponseDto.failure();//券不存在
} }
Integer state = CouponBaseUtil.getCouponState(LocalDateTime.now(), dto.getExpireAt(), dto.getState()); HashMap<String, Integer> hashMap = CollectionUtil.mapStringInteger();
HashMap<String, Integer> map = CollectionUtil.mapStringInteger(); hashMap.put("state", result);
map.put("state", state); return ResponseDto.success(hashMap);
return ResponseDto.success(map);
} }
//判断券是否可用并使用 //判断券是否可用并使用
...@@ -236,34 +138,11 @@ public class CandyCouponController { ...@@ -236,34 +138,11 @@ public class CandyCouponController {
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id", required = true),
}) })
public ResponseDto<CandyUseResultVo> useCoupon(@RequestParam("uCouponId") String uCouponId) { public ResponseDto<CandyUseResultVo> useCoupon(@RequestParam("uCouponId") String uCouponId) {
String uid = CurrentUtil.getCurrentUid(); CandyUseResultVo result = candyCouponService.useCoupon(uCouponId);
CandyUseResultVo vo = CandyUseResultVo.getNew(); if (result == null) {
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.useCoupon(redisDataUtils.getCouponByUid(uid), uCouponId);
if (dtoList == null) {
return ResponseDto.failure(); return ResponseDto.failure();
} else {
redisDataUtils.setCouponByUid(uid, dtoList);
}
CandyUserCouponBasicDto dto = CouponBaseUtil.getSingleDtoByUCouponId(redisDataUtils.getCouponByUid(uid), uCouponId);
switch (dto.getCouType()){//券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]
case 1:
vo.setValue(dto.getValFace());
break;
case 2:
vo.setValue(dto.getValMinus());
break;
case 3:
vo.setValue(BigDecimal.valueOf(-1));
break;
case 4:
vo.setValue(dto.getDiscount());
break;
default:
vo.setValue(BigDecimal.valueOf(0));
break;
} }
vo.setCouType(dto.getCouType()); return ResponseDto.success(result);
return ResponseDto.success(vo);
} }
//回退券 //回退券
...@@ -273,13 +152,7 @@ public class CandyCouponController { ...@@ -273,13 +152,7 @@ public class CandyCouponController {
@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) {
String uid = CurrentUtil.getCurrentUid(); candyCouponService.useBackCoupon(uCouponId);
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.backCoupon(redisDataUtils.getCouponByUid(uid), uCouponId);
if (dtoList == null) {
return ResponseDto.failure();
} else {
redisDataUtils.setCouponByUid(uid, dtoList);
}
return ResponseDto.success(); return ResponseDto.success();
} }
...@@ -290,14 +163,12 @@ public class CandyCouponController { ...@@ -290,14 +163,12 @@ public class CandyCouponController {
@ApiImplicitParam(type = "form", dataType = "String", name = "ccode", value = "兑换码", required = true), @ApiImplicitParam(type = "form", dataType = "String", name = "ccode", value = "兑换码", required = true),
}) })
public ResponseDto<Boolean> receiveCoupon(@RequestParam("ccode") String ccode) { public ResponseDto<Boolean> receiveCoupon(@RequestParam("ccode") String ccode) {
String uid = CurrentUtil.getCurrentUid(); Boolean result = candyCouponService.receiveCoupon(ccode);
Boolean result = CouponBaseUtil.receiveCoupon(uid, ccode);
if (result) { if (result) {
return ResponseDto.success();
} else { } else {
return ResponseDto.failure(); return ResponseDto.failure();
} }
return ResponseDto.success();
} }
} }
package com.liquidnet.service.candy.service; package com.liquidnet.service.candy.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyMyCouponListVo;
import com.liquidnet.service.candy.vo.CandyUseResultVo;
import org.springframework.web.bind.annotation.RequestParam;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +22,23 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -13,4 +22,23 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface ICandyCouponService extends IService<CandyCoupon> { public interface ICandyCouponService extends IService<CandyCoupon> {
CandyMyCouponListVo myCoupon();
CandyMyCouponListVo preUsePerformanceCoupon(BigDecimal priceTotal, String performanceId, String timeId, String ticketId);
Integer preCanUsePerformanceCoupon(BigDecimal priceTotal, String performanceId, String timeId, String ticketId);
CandyMyCouponListVo preUseGoodCoupon(BigDecimal priceTotal, String goodId, String produceId);
Integer preCanUseGoodCoupon(BigDecimal priceTotal, String goodId, String produceId);
List<CandyCouponVo> myAdvanceCoupon();
Integer stateCoupon(String uCouponId);
CandyUseResultVo useCoupon( String uCouponId);
Boolean useBackCoupon(String uCouponId);
Boolean receiveCoupon(String ccode);
} }
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.service.base.ResponseDto;
import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.mapper.CandyCouponMapper; import com.liquidnet.service.candy.mapper.CandyCouponMapper;
import com.liquidnet.service.candy.service.ICandyCouponService; import com.liquidnet.service.candy.service.ICandyCouponService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.candy.util.CouponBaseUtil;
import com.liquidnet.service.candy.util.ObjectUtil;
import com.liquidnet.service.candy.util.RedisDataUtils;
import com.liquidnet.service.candy.vo.CandyCouponVo;
import com.liquidnet.service.candy.vo.CandyMyCouponListVo;
import com.liquidnet.service.candy.vo.CandyUseResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
/** /**
* <p> * <p>
* 券基础信息 服务实现类 * 券基础信息 服务实现类
...@@ -17,4 +34,200 @@ import org.springframework.stereotype.Service; ...@@ -17,4 +34,200 @@ import org.springframework.stereotype.Service;
@Service @Service
public class CandyCouponServiceImpl extends ServiceImpl<CandyCouponMapper, CandyCoupon> implements ICandyCouponService { public class CandyCouponServiceImpl extends ServiceImpl<CandyCouponMapper, CandyCoupon> implements ICandyCouponService {
@Autowired
private RedisDataUtils redisDataUtils;
@Override
public CandyMyCouponListVo myCoupon() {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
CandyMyCouponListVo vo = CandyMyCouponListVo.getNew();
List<CandyCouponVo> memberCoupon = ObjectUtil.getCandyCouponVoArrayList();
List<CandyCouponVo> myCoupon = ObjectUtil.getCandyCouponVoArrayList();
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem);
if (dtoItem.getExclusive().equals(1)) { //会员券
memberCoupon.add(baseVo);
} else {//非会员券
myCoupon.add(baseVo);
}
}
//排序
memberCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
myCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
vo.setMemberCoupon(memberCoupon);
vo.setMyCoupon(myCoupon);
return vo;
}
@Override
public CandyMyCouponListVo preUsePerformanceCoupon(BigDecimal priceTotal, String performanceId, String timeId, String ticketId) {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
CandyMyCouponListVo vo = CandyMyCouponListVo.getNew();
List<CandyCouponVo> memberCoupon = ObjectUtil.getCandyCouponVoArrayList();
List<CandyCouponVo> myCoupon = ObjectUtil.getCandyCouponVoArrayList();
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getPerformanceCouponUserVo(dtoItem, priceTotal, performanceId, timeId, ticketId);
if (dtoItem.getExclusive().equals(1)) { //会员券
memberCoupon.add(baseVo);
} else {//非会员券
myCoupon.add(baseVo);
}
}
//排序
memberCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
myCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
vo.setMemberCoupon(memberCoupon);
vo.setMyCoupon(myCoupon);
return vo;
}
@Override
public Integer preCanUsePerformanceCoupon(BigDecimal priceTotal, String performanceId, String timeId, String ticketId) {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
int canUse = 0;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getPerformanceCouponUserVo(dtoItem, priceTotal, performanceId, timeId, ticketId);
if (baseVo.getState().equals(1)) { //可用
canUse = 1;
break;
} else {//不可用
continue;
}
}
return canUse;
}
@Override
public CandyMyCouponListVo preUseGoodCoupon(BigDecimal priceTotal, String goodId, String produceId) {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
CandyMyCouponListVo vo = CandyMyCouponListVo.getNew();
List<CandyCouponVo> memberCoupon = ObjectUtil.getCandyCouponVoArrayList();
List<CandyCouponVo> myCoupon = ObjectUtil.getCandyCouponVoArrayList();
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getGoodCouponUserVo(dtoItem, priceTotal, goodId, produceId);
if (dtoItem.getExclusive().equals(1)) { //会员券
memberCoupon.add(baseVo);
} else {//非会员券
myCoupon.add(baseVo);
}
}
//排序
memberCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
myCoupon.sort(Comparator.comparing(CandyCouponVo::getState));
vo.setMemberCoupon(memberCoupon);
vo.setMyCoupon(myCoupon);
return vo;
}
@Override
public Integer preCanUseGoodCoupon(BigDecimal priceTotal, String goodId, String produceId) {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
int canUse = 0;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
CandyCouponVo baseVo = CouponBaseUtil.getGoodCouponUserVo(dtoItem, priceTotal, goodId, produceId);
if (baseVo.getState().equals(1)) { //可用
canUse = 1;
break;
} else {//不可用
continue;
}
}
return canUse;
}
@Override
public List<CandyCouponVo> myAdvanceCoupon() {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = redisDataUtils.getCouponByUid(uid);
List<CandyCouponVo> advanceCoupon = ObjectUtil.getCandyCouponVoArrayList();
for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (dtoItem.getBusiType().equals(3)) {
CandyCouponVo baseVo = CouponBaseUtil.getBaseCouponUserVo(dtoItem);
if (baseVo.getState().equals(1)) {
advanceCoupon.add(baseVo);
} else {
continue;
}
} else {
continue;
}
}
return advanceCoupon;
}
@Override
public Integer stateCoupon(String uCouponId) {
String uid = CurrentUtil.getCurrentUid();
CandyUserCouponBasicDto dto = CouponBaseUtil.getSingleDtoByUCouponId(redisDataUtils.getCouponByUid(uid), uCouponId);
if (dto == null) {
return null;//券不存在
}
return CouponBaseUtil.getCouponState(LocalDateTime.now(), dto.getExpireAt(), dto.getState());
}
@Override
public CandyUseResultVo useCoupon(String uCouponId) {
String uid = CurrentUtil.getCurrentUid();
CandyUseResultVo vo = CandyUseResultVo.getNew();
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.useCoupon(redisDataUtils.getCouponByUid(uid), uCouponId);
if (dtoList == null) {
return null;
} else {
redisDataUtils.setCouponByUid(uid, dtoList);
}
CandyUserCouponBasicDto dto = CouponBaseUtil.getSingleDtoByUCouponId(redisDataUtils.getCouponByUid(uid), uCouponId);
switch (dto.getCouType()){//券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]
case 1:
vo.setValue(dto.getValFace());
break;
case 2:
vo.setValue(dto.getValMinus());
break;
case 3:
vo.setValue(BigDecimal.valueOf(-1));
break;
case 4:
vo.setValue(dto.getDiscount());
break;
default:
vo.setValue(BigDecimal.valueOf(0));
break;
}
vo.setCouType(dto.getCouType());
return vo;
}
@Override
public Boolean useBackCoupon(String uCouponId) {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.backCoupon(redisDataUtils.getCouponByUid(uid), uCouponId);
if (dtoList == null) {
return false;
} else {
redisDataUtils.setCouponByUid(uid, dtoList);
}
return true;
}
@Override
public Boolean receiveCoupon(String ccode) {
String uid = CurrentUtil.getCurrentUid();
Boolean result = CouponBaseUtil.receiveCoupon(uid, ccode);
if (result) {
} else {
return false;
}
return true;
}
} }
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