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

Commit 1912bec0 authored by 胡佳晨's avatar 胡佳晨

我的劝相关接口

parent 2fb8b91c
...@@ -85,36 +85,48 @@ public class CandyCouponController { ...@@ -85,36 +85,48 @@ public class CandyCouponController {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
CandyUserCouponBasicDto dto = CouponBaseUtil.getSingleDtoByUCouponId(redisDataUtils.getCouponByUid(uid), uCouponId); CandyUserCouponBasicDto dto = CouponBaseUtil.getSingleDtoByUCouponId(redisDataUtils.getCouponByUid(uid), uCouponId);
if (dto == null) { if (dto == null) {
return ResponseDto.failure(); return ResponseDto.failure();//券不存在
} }
Integer state = CouponBaseUtil.getCouponState(LocalDateTime.now(), dto.getExpireAt(), dto.getState()); Integer state = CouponBaseUtil.getCouponState(LocalDateTime.now(), dto.getExpireAt(), dto.getState());
HashMap<String ,Integer> map = CollectionUtil.mapStringInteger(); HashMap<String, Integer> map = CollectionUtil.mapStringInteger();
map.put("state",state); map.put("state", state);
return ResponseDto.success(map); return ResponseDto.success(map);
} }
//判断券是否可用并使用 //判断券是否可用并使用
//使用券
@GetMapping("use") @GetMapping("use")
@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<HashMap<String, Integer>> use(@RequestParam("uCouponId") String uCouponId) { public ResponseDto<Boolean> use(@RequestParam("uCouponId") String uCouponId) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
CandyUserCouponBasicDto dto = CouponBaseUtil.getSingleDtoByUCouponId(redisDataUtils.getCouponByUid(uid), uCouponId); List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.useCoupon(redisDataUtils.getCouponByUid(uid), uCouponId);
if (dto == null) { if (dtoList == null) {
return ResponseDto.failure(); return ResponseDto.failure();
} else {
redisDataUtils.setCouponByUid(uid, dtoList);
} }
Integer state = CouponBaseUtil.getCouponState(LocalDateTime.now(), dto.getExpireAt(), dto.getState()); return ResponseDto.success();
HashMap<String ,Integer> map = CollectionUtil.mapStringInteger();
map.put("state",state);
return ResponseDto.success(map);
} }
//回退券 //回退券
@GetMapping("useBack")
@ApiOperation("回退券")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券唯一表示id", required = true),
})
public ResponseDto<Boolean> useBack(@RequestParam("uCouponId") String uCouponId) {
String uid = CurrentUtil.getCurrentUid();
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.backCoupon(redisDataUtils.getCouponByUid(uid), uCouponId);
if (dtoList == null) {
return ResponseDto.failure();
} else {
redisDataUtils.setCouponByUid(uid, dtoList);
}
return ResponseDto.success();
}
//领取 //兑换
} }
package com.liquidnet.service.candy.util; package com.liquidnet.service.candy.util;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.dto.CandyCouponRuleDto; import com.liquidnet.service.candy.dto.CandyCouponRuleDto;
import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto; import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto;
import com.liquidnet.service.candy.vo.CandyCouponRulesVo; import com.liquidnet.service.candy.vo.CandyCouponRulesVo;
...@@ -11,6 +12,12 @@ import java.util.List; ...@@ -11,6 +12,12 @@ import java.util.List;
public class CouponBaseUtil { public class CouponBaseUtil {
/**
* 获取 基础券vo
* @param dtoItem CandyUserCouponBasicDto
* @return
*/
public static CandyCouponVo getBaseCouponUserVo(CandyUserCouponBasicDto dtoItem) { public static CandyCouponVo getBaseCouponUserVo(CandyUserCouponBasicDto dtoItem) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
CandyCouponVo vo = CandyCouponVo.getNew(); CandyCouponVo vo = CandyCouponVo.getNew();
...@@ -45,6 +52,14 @@ public class CouponBaseUtil { ...@@ -45,6 +52,14 @@ public class CouponBaseUtil {
return vo; return vo;
} }
/**
* 获取券状态
* @param currentTime 当前服务器时间
* @param expireAt 券过期时间
* @param state 券状态
* @return 判断过后的券状态
*/
public static Integer getCouponState(LocalDateTime currentTime, LocalDateTime expireAt, Integer state) { public static Integer getCouponState(LocalDateTime currentTime, LocalDateTime expireAt, Integer state) {
//券状态 //券状态
Integer data; Integer data;
...@@ -60,6 +75,12 @@ public class CouponBaseUtil { ...@@ -60,6 +75,12 @@ public class CouponBaseUtil {
return data; return data;
} }
/**
* 根据券id获取Dto
* @param dtoList CouponBaseDtoList
* @param uCouponId 券唯一id
* @return CandyUserCouponBasicDto
*/
public static CandyUserCouponBasicDto getSingleDtoByUCouponId(List<CandyUserCouponBasicDto> dtoList, String uCouponId) { public static CandyUserCouponBasicDto getSingleDtoByUCouponId(List<CandyUserCouponBasicDto> dtoList, String uCouponId) {
for (CandyUserCouponBasicDto dtoItem : dtoList) { for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (dtoItem.getUcouponId().equals(uCouponId)) { if (dtoItem.getUcouponId().equals(uCouponId)) {
...@@ -68,4 +89,54 @@ public class CouponBaseUtil { ...@@ -68,4 +89,54 @@ public class CouponBaseUtil {
} }
return null; return null;
} }
/**
* 使用券
* @param dtoList CouponBaseDtoList
* @param uCouponId 券唯一id
* @return List<CandyUserCouponBasicDto>
*/
public static List<CandyUserCouponBasicDto> useCoupon(List<CandyUserCouponBasicDto> dtoList, String uCouponId) {
boolean isHas = false;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (dtoItem.getUcouponId().equals(uCouponId)) {
if (dtoItem.getState().equals(1)) {
dtoItem.setState(5);
isHas = true;//券存在
} else {
return null;//券不可用
}
break;
}
}
if (!isHas) {
return null;//券不存在
}
return dtoList;
}
/**
* 回退券
* @param dtoList CouponBaseDtoList
* @param uCouponId 券唯一id
* @return List<CandyUserCouponBasicDto>
*/
public static List<CandyUserCouponBasicDto> backCoupon(List<CandyUserCouponBasicDto> dtoList, String uCouponId) {
boolean isHas = false;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (dtoItem.getUcouponId().equals(uCouponId)) {
if (dtoItem.getState().equals(5)) {
dtoItem.setState(1);
isHas = true;//券存在
} else {
return null;//券不可用
}
break;
}
}
if (!isHas) {
return null;//券不存在
}
return dtoList;
}
} }
...@@ -25,4 +25,9 @@ public class RedisDataUtils { ...@@ -25,4 +25,9 @@ public class RedisDataUtils {
return (List<CandyUserCouponBasicDto>)obj; return (List<CandyUserCouponBasicDto>)obj;
} }
} }
public void setCouponByUid(String uid,List<CandyUserCouponBasicDto> dtoList){
String redisKey = CandyRedisConst.BASIC_USER_COUPON.concat(uid);
redisUtil.set(redisKey,dtoList);
}
} }
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