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

Commit 68e2d263 authored by 张国柄's avatar 张国柄

+API:店铺券:代领券;

parent 6410bdd0
...@@ -16,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -16,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -76,24 +78,39 @@ public class GoblinCouponController { ...@@ -76,24 +78,39 @@ public class GoblinCouponController {
@ApiOperation("领取券") @ApiOperation("领取券")
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "storeCouponId", value = "平台券id"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "storeCouponId", value = "平台券ID"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "UID"),
// @ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "number", value = "数量"), // @ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "number", value = "数量"),
}) })
public ResponseDto<Boolean> receive(@NotBlank(message = "平台券ID不能为空") @RequestParam("storeCouponId") @Valid String storeCouponId, public ResponseDto<Boolean> receive(@NotBlank(message = "平台券ID不能为空") @RequestParam("storeCouponId") String storeCouponId) {
@NotBlank(message = "UID不能为空") @RequestParam("storeCouponId") @Valid String uid) {
// public ResponseDto<Boolean> checkOrderResult(@RequestParam("storeCouponId") @Valid String storeCouponId, // public ResponseDto<Boolean> checkOrderResult(@RequestParam("storeCouponId") @Valid String storeCouponId,
// @RequestParam("number") @Valid Integer number) { // @RequestParam("number") @Valid Integer number) {
String currentUid = uid; String currentUid = CurrentUtil.getCurrentUid();
return this.receiveFetchedProcessing(currentUid, storeCouponId);
}
@PostMapping("fetched")
@ApiOperation("POS机代领券")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "storeCouponId", value = "平台券ID"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "UID[POS机代领必传]"),
})
public ResponseDto<Boolean> fetched(@NotBlank(message = "平台券ID不能为空") @RequestParam("storeCouponId") String storeCouponId,
@NotBlank(message = "UID不能为空")@RequestParam("uid") String currentUid) {
// TODO: 2022/3/5 ==zhanggb.UID校验真实性
return receiveFetchedProcessing(currentUid, storeCouponId);
}
private ResponseDto<Boolean> receiveFetchedProcessing(String uid, String storeCouponId) {
GoblinStoreCouponVo storeCouponVo = goblinRedisUtils.getStoreCouponVo(storeCouponId); GoblinStoreCouponVo storeCouponVo = goblinRedisUtils.getStoreCouponVo(storeCouponId);
if (null == storeCouponVo) { if (null == storeCouponVo) {
log.warn("商城:用户领取优惠券:优惠券不存在:[uid={},storeCouponId={}]", currentUid, storeCouponId); log.warn("商城:用户领取优惠券:优惠券不存在:[uid={},storeCouponId={}]", uid, storeCouponId);
return ResponseDto.failure(ErrorMapping.get("140050")); return ResponseDto.failure(ErrorMapping.get("140050"));
} }
if (!storeCouponVo.getState().equals("1")) { if (!storeCouponVo.getState().equals("1")) {
return ResponseDto.failure(ErrorMapping.get("140051")); return ResponseDto.failure(ErrorMapping.get("140051"));
} }
List<GoblinUserCouponVo> userCouponVos = goblinRedisUtils.getUserCouponVos(currentUid); List<GoblinUserCouponVo> userCouponVos = goblinRedisUtils.getUserCouponVos(uid);
if (!CollectionUtils.isEmpty(userCouponVos)) { if (!CollectionUtils.isEmpty(userCouponVos)) {
int beforeSize = userCouponVos.size(); int beforeSize = userCouponVos.size();
userCouponVos.removeIf(vo -> vo.getStoreCouponId().equals(storeCouponId)); userCouponVos.removeIf(vo -> vo.getStoreCouponId().equals(storeCouponId));
...@@ -102,7 +119,7 @@ public class GoblinCouponController { ...@@ -102,7 +119,7 @@ public class GoblinCouponController {
} }
} }
if (storeCouponVo.getStock().equals(0) || goblinRedisUtils.getStoreCouponStock(storeCouponId) > 0) { if (storeCouponVo.getStock().equals(0) || goblinRedisUtils.getStoreCouponStock(storeCouponId) > 0) {
Boolean resultFlg = goblinCouponService.receiveCoupon(currentUid, userCouponVos, storeCouponVo); Boolean resultFlg = goblinCouponService.receiveCoupon(uid, userCouponVos, storeCouponVo);
return resultFlg ? ResponseDto.success() : ResponseDto.failure(); return resultFlg ? ResponseDto.success() : ResponseDto.failure();
} }
return ResponseDto.failure(ErrorMapping.get("140053")); return ResponseDto.failure(ErrorMapping.get("140053"));
......
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