diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java index c65eaccf7..67c37fd77 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java @@ -5,6 +5,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxOrder; +import com.iformall.enums.EnumOrderPressStatus; import com.iformall.exception.MallinkException; import com.iformall.service.WxCouponService; import com.iformall.service.WxOrderPressService; @@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Date; +import java.util.HashMap; import java.util.Map; @RestController @@ -90,6 +92,36 @@ public class WxPressOrderController extends BaseController { return new ResultData(); } + @ApiOperation(value = "砍价状态(1:我发起的砍价,2:未参与的砍价, 3:已参与的砍价)", notes = "{\"orderId\":\"String\"}") + @PostMapping("getPressOrderStatus") + public ResultData getPressOrderStatus(@RequestBody Map paramMap) { + Map ret = new HashMap(); + String orderIdStr = paramMap.get("orderId"); + if (StringUtils.isBlank(orderIdStr)) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId不能为空"); + } + Long orderId = 0L; + try { + orderId = Long.valueOf(orderIdStr); + } catch (NumberFormatException e) { + logger.error("orderId convert error, " + orderIdStr + ", e:" + e.getMessage()); + return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), "orderId: " + orderIdStr + ", e:" + e.getMessage()); + } + WxCUser user = getUser(); + WxOrder order = wxOrderService.getById(orderId); + if(order == null) { + logger.error("订单不存在:" + orderId); + return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); + } + if(order.getcUserId().equals(user.getId())) { + ret.put("status", EnumOrderPressStatus.FIRST.getCode()); + return new ResultData(ret); + } + int status = wxOrderPressService.pressCouponStatus(order, user); + ret.put("status", status); + return new ResultData(ret); + } + /// 砍价 - 统计 相关 ?????? diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumOrderPressStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumOrderPressStatus.java new file mode 100644 index 000000000..954ecaa49 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumOrderPressStatus.java @@ -0,0 +1,39 @@ +package com.iformall.enums; + + +/** + * @author gongbiao + */ + +public enum EnumOrderPressStatus { + + FIRST(1,"我发起的砍价"), + NOT_JOIN(2,"未参与的砍价"), + HAD_JOIN(3, "已参与的砍价") + ; + + public static EnumOrderPressStatus getEnum(Integer code) { + for (EnumOrderPressStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumOrderPressStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderPressService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderPressService.java index ab8edae6b..c020a9783 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderPressService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderPressService.java @@ -48,6 +48,13 @@ public interface WxOrderPressService { * @param user */ void pressCouponJoin(WxOrder order, WxCoupon coupon, WxCUser user); + + /** + * 检查用户砍价状态 + * @param order + * @param user + */ + int pressCouponStatus(WxOrder order, WxCUser user); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java index f1a4ae0cb..162c3d244 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderPressServiceImpl.java @@ -8,6 +8,7 @@ import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxOrderPress; +import com.iformall.enums.EnumOrderPressStatus; import com.iformall.enums.EnumOrderPressType; import com.iformall.enums.EnumOrderStatus; import com.iformall.exception.MallinkException; @@ -116,6 +117,21 @@ public class WxOrderPressServiceImpl implements WxOrderPressService { throw new MallinkException(ErrorCode.DB_FAIL); } } + + @Override + public int pressCouponStatus(WxOrder order, WxCUser user) { + // 检查此人是否已参与砍价 + WxOrderPress orderPressQ = new WxOrderPress(); + orderPressQ.setTenantId(order.getTenantId()); + orderPressQ.setOrderId(order.getId()); + orderPressQ.setUserId(user.getId()); + int count = wxOrderPressMapper.selectCount(orderPressQ); + if(count >= 1) { + logger.info("用户已参与砍价: " + user.getId()); + return EnumOrderPressStatus.HAD_JOIN.getCode(); + } + return EnumOrderPressStatus.NOT_JOIN.getCode(); + }