diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java index ce0d8aad0..148a8b7c6 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java @@ -29,10 +29,12 @@ public class WxCouponPasswordController extends BaseController { @Autowired private WxCouponService couponService; + @Autowired private WxOrderService orderService; + @ApiOperation(value = "根据卡密领卡", notes = "{\"password\":\"String\",\"formId\":\"String\"}") @PostMapping("getCouponOrderByPassword") public ResultData getCouponOrderByPassword(@RequestBody Map params) { @@ -68,28 +70,31 @@ public class WxCouponPasswordController extends BaseController { return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF); } - // 2. 设置已使用 - try { - WxCouponPassword updateCouponPwd = new WxCouponPassword(); - updateCouponPwd.setId(couponPassword.getId()); - updateCouponPwd.setStatus(EnumCouponPasswordStatus.USED.getCode()); - couponPassword.setStatus(EnumCouponPasswordStatus.USED.getCode()); - couponPasswordService.saveOrUpdate(updateCouponPwd); - } catch (Exception e) { - logger.error(e.getMessage()); - return new ResultData(ErrorCode.DB_FAIL); - } + // 卡密领取卡券 + Integer pwdStatus = couponPassword.getStatus(); + setCouponPasswordStatus(couponPassword, EnumCouponPasswordStatus.USED); + couponPassword.setStatus(EnumCouponPasswordStatus.USED.getCode()); // 3. 领取free coupon try { WxOrder order = orderService.saveFreeOrderForCoupon(cuUser, coupon, null, formId, couponPassword.getId()); } catch (MallinkException e) { + setCouponPasswordStatus(couponPassword, EnumCouponPasswordStatus.getEnum(pwdStatus)); logger.error(e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage()); } catch (Exception e) { + setCouponPasswordStatus(couponPassword, EnumCouponPasswordStatus.getEnum(pwdStatus)); logger.error(e.getMessage()); return new ResultData(500, e.getMessage()); } return new ResultData(); } + + private void setCouponPasswordStatus(WxCouponPassword couponPassword, EnumCouponPasswordStatus pwdStatus) { + WxCouponPassword updateCouponPwd = new WxCouponPassword(); + updateCouponPwd.setId(couponPassword.getId()); + updateCouponPwd.setStatus(pwdStatus.getCode()); + couponPasswordService.saveOrUpdate(updateCouponPwd); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java index aae959129..23801e543 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponPasswordService.java @@ -1,8 +1,14 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; +import com.iformall.domain.po.WxCUser; +import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponPassword; +import com.iformall.domain.po.WxOrder; import com.iformall.domain.vo.WxCouponPasswordCountInfoVO; +import com.iformall.enums.EnumCouponPasswordStatus; +import com.iformall.exception.MallinkException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -35,8 +41,8 @@ public interface WxCouponPasswordService { * @return */ WxCouponPassword getByObj(WxCouponPassword obj); - - /** + + /** * 保存或更新实体 * * @param record diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java index 379156481..b0c99382c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponPasswordServiceImpl.java @@ -34,7 +34,6 @@ public class WxCouponPasswordServiceImpl implements WxCouponPasswordService { @Autowired ExcelService excelService; - @Override public PageInfo listAsPage(WxCouponPassword record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponPasswordMapper.findList(record));