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

Commit eb2695ea authored by wangyifan's avatar wangyifan

福袋补充需求:核验权限、兑换码详情接口

parent 5ddb9bf7
package com.liquidnet.service.kylin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@ApiModel(value = "福袋兑换码详情VO")
public class KylinLuckyBagCodeDetailVo {
@ApiModelProperty(value = "兑换码")
private String code;
@ApiModelProperty(value = "用户ID")
private String uid;
@ApiModelProperty(value = "福袋ID")
private String luckyBagId;
@ApiModelProperty(value = "关联订单ID")
private String orderId;
@ApiModelProperty(value = "状态 0:不可用 1:可用 2:已领取")
private int state;
@ApiModelProperty(value = "发放时间")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createdAt;
@ApiModelProperty(value = "领取时间")
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime updatedAt;
}
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "福袋Scope VO")
public class KylinLuckyBagScopeVo {
@ApiModelProperty(value = "福袋ID")
private String luckyBagId;
@ApiModelProperty(value = "福袋名称")
private String name;
@ApiModelProperty(value = "福袋描述")
private String introduction;
@ApiModelProperty(value = "关联演出名称")
private String performanceName;
}
package com.liquidnet.service.kylin.service;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagCodeDetailVo;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagScopeVo;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagVo;
import java.util.List;
public interface IKylinLuckyBagService {
KylinLuckyBagVo getLuckyBagByOrderId(String orderId);
Boolean consumeCode(String code, String luckyBagId);
List<KylinLuckyBagScopeVo> getLuckyBagListScope(String mobile, String performanceId);
KylinLuckyBagCodeDetailVo getCodeDetail(String code, String luckyBagId);
ResponseDto<Boolean> consumeCode(String code, String luckyBagId);
}
package com.liquidnet.service.kylin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagCodeDetailVo;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagScopeVo;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagVo;
import com.liquidnet.service.kylin.service.IKylinLuckyBagService;
import io.swagger.annotations.Api;
......@@ -12,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "前端-获取福袋相关")
@RestController
@RequestMapping("/luckyBag")
......@@ -28,10 +32,25 @@ public class KylinLuckyBagController {
return ResponseDto.success(luckyBagService.getLuckyBagByOrderId(orderId));
}
@GetMapping("/scope")
@ApiOperation("获取福袋权益列表")
public ResponseDto<List<KylinLuckyBagScopeVo>> getLuckyBagListScope(@RequestParam(value = "mobile") String mobile,
@RequestParam(value = "performanceId", required = false) String performanceId){
return ResponseDto.success(luckyBagService.getLuckyBagListScope(mobile, performanceId));
}
@ApiOperation("兑换码详情")
@GetMapping("/code/detail")
public ResponseDto<KylinLuckyBagCodeDetailVo> getCodeDetail(@RequestParam(value = "code") String code,
@RequestParam(value = "luckyBagId") String luckyBagId){
return ResponseDto.success(luckyBagService.getCodeDetail(code, luckyBagId));
}
@GetMapping("/code/consume")
@ApiOperation("兑换码核销")
public ResponseDto<Boolean> consumeCode(@RequestParam(value = "code") String code,
@RequestParam(value = "luckyBagId") String luckyBagId){
return ResponseDto.success(luckyBagService.consumeCode(code, luckyBagId));
return luckyBagService.consumeCode(code, luckyBagId);
}
}
......@@ -7,7 +7,10 @@ import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagCodeDetailVo;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagScopeVo;
import com.liquidnet.service.kylin.dto.vo.KylinLuckyBagVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.OrderDetailsVo;
......@@ -88,7 +91,7 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
}
@Override
public Boolean consumeCode(String code, String luckyBagId) {
public ResponseDto<Boolean> consumeCode(String code, String luckyBagId) {
LambdaQueryWrapper<KylinRewardUser> queryWrapper = new QueryWrapper<KylinRewardUser>()
.lambda()
.eq(KylinRewardUser::getCode, code)
......@@ -96,17 +99,27 @@ public class KylinLuckyBagServiceImpl implements IKylinLuckyBagService {
KylinRewardUser rewardUser = kylinRewardUserMapper.selectOne(queryWrapper);
if (rewardUser == null) {
log.error("code does not exist, code: {}, luckyBagId: {}.", code, luckyBagId);
return Boolean.FALSE;
return ResponseDto.failure("兑换码无效");
}
if (rewardUser.getState().equals(2)) {
log.info("code be used, code: {}, luckyBagId: {}.", code, luckyBagId);
return Boolean.FALSE;
log.info("code be used, code: {}, luckyBagId: {}.", code, luckyBagId);
return ResponseDto.failure("已被使用");
}
rewardUser.setState(2);
rewardUser.setUpdatedAt(LocalDateTime.now());
int updateById = kylinRewardUserMapper.updateById(rewardUser);
log.info("update code result: {}.", updateById);
return updateById > 0;
return ResponseDto.success(updateById > 0);
}
@Override
public List<KylinLuckyBagScopeVo> getLuckyBagListScope(String mobile, String performanceId) {
return Collections.emptyList();
}
@Override
public KylinLuckyBagCodeDetailVo getCodeDetail(String code, String luckyBagId) {
return null;
}
/**
......
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