Przeglądaj źródła

[卡券][修复]:给已购买的卡券限制使用时间

release_toaliyun_real
hupeng 7 lat temu
rodzic
commit
530c473b0e
11 zmienionych plików z 205 dodań i 21 usunięć
  1. +23
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java
  2. +33
    -6
      mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java
  3. +29
    -3
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  5. +33
    -1
      mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderCVo.java
  6. +36
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java
  7. +37
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderValidStatus.java
  8. +3
    -6
      mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java
  9. +5
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  10. +2
    -0
      mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml
  11. +2
    -0
      mallinkService/src/main/resources/mapper/WxOrderMapper.xml

+ 23
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java Wyświetl plik

@@ -5,6 +5,9 @@ import com.iformall.common.ErrorCode;
import com.iformall.common.Result; import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.po.WxCouponOrder;
import com.iformall.domain.vo.WxCouponOrderCVo;
import com.iformall.enums.EnumCouponChannelActivityStatus;
import com.iformall.enums.EnumCouponOrderValidStatus;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.WxCouponOrderService; import com.iformall.service.WxCouponOrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -17,6 +20,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


import java.util.Date;
import java.util.Map; import java.util.Map;


@RestController @RestController
@@ -113,6 +117,25 @@ public class WxCouponOrderController extends BaseController {
logger.error("couponOrderId参数不正确: " + paramMap.toString()); logger.error("couponOrderId参数不正确: " + paramMap.toString());
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
} }

WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(getUser().getId(), couponOrderIdStr);

if (wxCouponOrderCVo == null)
return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL);


if (wxCouponOrderCVo.getValidStartDate() != null && wxCouponOrderCVo.getValidEndDate() != null ) {
Date now = new Date();
if (wxCouponOrderCVo.getValidStartDate().getTime() > now.getTime()) {
logger.error("此券有效期未开始:" + couponOrderIdStr);
return new ResultData(ErrorCode.COUPON_ORDER_IS_EARLIER_THAN_VALIDDATE);
}
if (wxCouponOrderCVo.getValidEndDate().getTime() < now.getTime()) {
logger.error("此券有效期已结束:" + couponOrderIdStr);
return new ResultData(ErrorCode.COUPON_ORDER_IS_LATER_THAN_VALIDDATE);
}
}

WxCouponOrder couponOrder = null; WxCouponOrder couponOrder = null;
try { try {
couponOrder = wxCouponOrderService.verify(couponOrderId, getUser().getId()); couponOrder = wxCouponOrderService.verify(couponOrderId, getUser().getId());


+ 33
- 6
mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java Wyświetl plik

@@ -1,12 +1,15 @@
package com.iformall.controller; package com.iformall.controller;


import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.po.WxCouponOrder;
import com.iformall.domain.vo.WxCardCVo; import com.iformall.domain.vo.WxCardCVo;
import com.iformall.domain.vo.WxCouponOrderCVo; import com.iformall.domain.vo.WxCouponOrderCVo;
import com.iformall.enums.EnumCouponChannelActivityStatus;
import com.iformall.enums.EnumCouponOrderStatus; import com.iformall.enums.EnumCouponOrderStatus;
import com.iformall.enums.EnumCouponOrderValidStatus;
import com.iformall.service.WxCouponOrderService; import com.iformall.service.WxCouponOrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -19,10 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;


@RestController @RestController
@RequestMapping("/api/couponOrder") @RequestMapping("/api/couponOrder")
@@ -55,7 +55,23 @@ public class WxCouponOrderController extends BaseController {
wxCouponOrder.setSortColumns(WxCouponOrder.Field.CreateDate_DESC); wxCouponOrder.setSortColumns(WxCouponOrder.Field.CreateDate_DESC);
else else
wxCouponOrder.setSortColumns(WxCouponOrder.Field.UpdateDate_DESC); wxCouponOrder.setSortColumns(WxCouponOrder.Field.UpdateDate_DESC);
return wxCouponOrderService.listCUserVoAsPage(wxCouponOrder, pageNum, pageSize);

PageInfo<WxCouponOrderCVo> page = wxCouponOrderService.listCUserVoAsPage(wxCouponOrder, pageNum, pageSize);

Date now = new Date();
page.getList().stream().forEach(co->{
if (co.getValidStartDate() != null && co.getValidEndDate() != null ) {
if (co.getValidStartDate().getTime() > now.getTime()) {
co.setValidStatus(EnumCouponOrderValidStatus.PREPARED.getCode());
} else if (co.getValidEndDate().getTime() < now.getTime()) {
co.setValidStatus(EnumCouponOrderValidStatus.ENDED.getCode());
} else {
co.setValidStatus(EnumCouponChannelActivityStatus.STARTED.getCode());
}
}
});

return new ResultData(page);
} }


@ApiOperation(value = "券详情接口") @ApiOperation(value = "券详情接口")
@@ -68,8 +84,19 @@ public class WxCouponOrderController extends BaseController {
if (couponOrderId == null) { if (couponOrderId == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
} }
WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.detailCUserVo(getUser().getId(), couponOrderId);
Date now = new Date();
if (wxCouponOrderCVo.getValidStartDate() != null && wxCouponOrderCVo.getValidEndDate() != null ) {
if (wxCouponOrderCVo.getValidStartDate().getTime() > now.getTime()) {
wxCouponOrderCVo.setValidStatus(EnumCouponOrderValidStatus.PREPARED.getCode());
} else if (wxCouponOrderCVo.getValidEndDate().getTime() < now.getTime()) {
wxCouponOrderCVo.setValidStatus(EnumCouponOrderValidStatus.ENDED.getCode());
} else {
wxCouponOrderCVo.setValidStatus(EnumCouponChannelActivityStatus.STARTED.getCode());
}
}


return wxCouponOrderService.detailCUserVo(getUser().getId(), couponOrderId);
return new ResultData(wxCouponOrderCVo);
} }


@ApiOperation(value = "卡券状态接口") @ApiOperation(value = "卡券状态接口")


+ 29
- 3
mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java Wyświetl plik

@@ -9,9 +9,7 @@ import com.iformall.domain.po.WxCouponChannel;
import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxOrder;
import com.iformall.domain.vo.WxOrderCouponPressVo; import com.iformall.domain.vo.WxOrderCouponPressVo;
import com.iformall.domain.vo.WxOrderCouponVo; import com.iformall.domain.vo.WxOrderCouponVo;
import com.iformall.enums.EnumCouponChannelStatus;
import com.iformall.enums.EnumCouponChannelType;
import com.iformall.enums.EnumOrderStatus;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxCouponChannelService;
import com.iformall.service.WxOrderService; import com.iformall.service.WxOrderService;
@@ -251,6 +249,21 @@ public class WxOrderController extends BaseController {
wxOrder.setcUserId(getUser().getId()); wxOrder.setcUserId(getUser().getId());
wxOrder.setSortColumns(WxOrder.Field.UpdateDate_DESC); wxOrder.setSortColumns(WxOrder.Field.UpdateDate_DESC);
final PageInfo<WxOrderCouponVo> page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize); final PageInfo<WxOrderCouponVo> page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize);

Date now = new Date();
page.getList().stream().forEach(oc->{
if (oc.getValidStartDate() != null && oc.getValidEndDate() != null ) {
if (oc.getValidStartDate().getTime() > now.getTime()) {
oc.setValidStatus(EnumCouponOrderValidStatus.PREPARED.getCode());
} else if (oc.getValidEndDate().getTime() < now.getTime()) {
oc.setValidStatus(EnumCouponOrderValidStatus.ENDED.getCode());
} else {
oc.setValidStatus(EnumCouponChannelActivityStatus.STARTED.getCode());
}
}
});


return new ResultData(page); return new ResultData(page);
} }


@@ -274,6 +287,19 @@ public class WxOrderController extends BaseController {
WxOrderCouponVo wxOrderCVo = wxOrderService.detailCUserVo(wxOrder); WxOrderCouponVo wxOrderCVo = wxOrderService.detailCUserVo(wxOrder);
if (wxOrderCVo == null) if (wxOrderCVo == null)
return new ResultData(ErrorCode.ORDER_IS_NOT_FIND); return new ResultData(ErrorCode.ORDER_IS_NOT_FIND);

Date now = new Date();

if (wxOrderCVo.getValidStartDate() != null && wxOrderCVo.getValidEndDate() != null ) {
if (wxOrderCVo.getValidStartDate().getTime() > now.getTime()) {
wxOrderCVo.setValidStatus(EnumCouponOrderValidStatus.PREPARED.getCode());
} else if (wxOrderCVo.getValidEndDate().getTime() < now.getTime()) {
wxOrderCVo.setValidStatus(EnumCouponOrderValidStatus.ENDED.getCode());
} else {
wxOrderCVo.setValidStatus(EnumCouponChannelActivityStatus.STARTED.getCode());
}
}

return new ResultData(wxOrderCVo); return new ResultData(wxOrderCVo);
} }




+ 2
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Wyświetl plik

@@ -149,6 +149,8 @@ public enum ErrorCode{
COUPON_ORDER_IS_INVALID(4003, "卡券已经作废"), COUPON_ORDER_IS_INVALID(4003, "卡券已经作废"),
COUPON_ORDER_BUSER_IS_NULL(4004, "卡券B端用户不存在"), COUPON_ORDER_BUSER_IS_NULL(4004, "卡券B端用户不存在"),
COUPON_ORDER_MERANT_IS_NULL(4005, "卡券商户不存在"), COUPON_ORDER_MERANT_IS_NULL(4005, "卡券商户不存在"),
COUPON_ORDER_IS_EARLIER_THAN_VALIDDATE(4006, "卡券使用期还未开始"),
COUPON_ORDER_IS_LATER_THAN_VALIDDATE(4007, "卡券使用期已结束"),


/** /**
* 卡 * 卡


+ 33
- 1
mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderCVo.java Wyświetl plik

@@ -45,6 +45,17 @@ public class WxCouponOrderCVo extends WxCouponOrder {
this.ids = ids; this.ids = ids;
} }


@Transient
private Integer validStatus;

public Integer getValidStatus() {
return validStatus;
}

public void setValidStatus(Integer validStatus) {
this.validStatus = validStatus;
}



/* 基础购买到的券信息 */ /* 基础购买到的券信息 */
/***/ /***/
@@ -109,7 +120,12 @@ public class WxCouponOrderCVo extends WxCouponOrder {
/*购买须知**/ /*购买须知**/
@io.swagger.annotations.ApiModelProperty(value="购买须知",name="remark") @io.swagger.annotations.ApiModelProperty(value="购买须知",name="remark")
private String remark; private String remark;

/**有效日期-开始**/
@io.swagger.annotations.ApiModelProperty(value="有效日期-开始",name="validStartDate")
private Date validStartDate;
/**有效日期-结束**/
@io.swagger.annotations.ApiModelProperty(value="有效日期-结束",name="validEndDate")
private Date validEndDate;


/*发券商户信息*/ /*发券商户信息*/
/*使用商户名**/ /*使用商户名**/
@@ -270,4 +286,20 @@ public class WxCouponOrderCVo extends WxCouponOrder {
public void setSendChannelType(Integer sendChannelType) { public void setSendChannelType(Integer sendChannelType) {
this.sendChannelType = sendChannelType; this.sendChannelType = sendChannelType;
} }

public Date getValidStartDate() {
return validStartDate;
}

public void setValidStartDate(Date validStartDate) {
this.validStartDate = validStartDate;
}

public Date getValidEndDate() {
return validEndDate;
}

public void setValidEndDate(Date validEndDate) {
this.validEndDate = validEndDate;
}
} }

+ 36
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java Wyświetl plik

@@ -1,6 +1,8 @@
package com.iformall.domain.vo; package com.iformall.domain.vo;


import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import javax.persistence.Transient;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;


@@ -23,6 +25,18 @@ public class WxOrderCouponVo {
this.id = id; this.id = id;
} }


@Transient
private Integer validStatus;

public Integer getValidStatus() {
return validStatus;
}

public void setValidStatus(Integer validStatus) {
this.validStatus = validStatus;
}




/* 基础购买到的券信息 */ /* 基础购买到的券信息 */


@@ -62,6 +76,12 @@ public class WxOrderCouponVo {
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate")
private Date updateDate; private Date updateDate;


/**有效日期-开始**/
@io.swagger.annotations.ApiModelProperty(value="有效日期-开始",name="validStartDate")
private Date validStartDate;
/**有效日期-结束**/
@io.swagger.annotations.ApiModelProperty(value="有效日期-结束",name="validEndDate")
private Date validEndDate;


/*券ID-产品ID将来的产品都会放在coupon表里**/ /*券ID-产品ID将来的产品都会放在coupon表里**/
@io.swagger.annotations.ApiModelProperty(value="券包中券ID",name="couponOrderId") @io.swagger.annotations.ApiModelProperty(value="券包中券ID",name="couponOrderId")
@@ -292,4 +312,20 @@ public class WxOrderCouponVo {
public void setSupportTransfer(Integer supportTransfer) { public void setSupportTransfer(Integer supportTransfer) {
this.supportTransfer = supportTransfer; this.supportTransfer = supportTransfer;
} }

public Date getValidStartDate() {
return validStartDate;
}

public void setValidStartDate(Date validStartDate) {
this.validStartDate = validStartDate;
}

public Date getValidEndDate() {
return validEndDate;
}

public void setValidEndDate(Date validEndDate) {
this.validEndDate = validEndDate;
}
} }

+ 37
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderValidStatus.java Wyświetl plik

@@ -0,0 +1,37 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumCouponOrderValidStatus {

PREPARED(0, "未到使用期"),
STARTED(1, "可使用"),
ENDED(1, "已过使用期"),
;

public static EnumCouponOrderValidStatus getEnum(Integer code) {
for (EnumCouponOrderValidStatus value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumCouponOrderValidStatus(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 3
- 6
mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java Wyświetl plik

@@ -4,10 +4,7 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCouponOrder; import com.iformall.domain.po.WxCouponOrder;
import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.domain.vo.CUserDateAmountVo;
import com.iformall.domain.vo.WxCardCVo;
import com.iformall.domain.vo.WxCouponOrderBVo;
import com.iformall.domain.vo.WxCouponOrderCarCVo;
import com.iformall.domain.vo.*;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -103,14 +100,14 @@ public interface WxCouponOrderService {
* @param record C端用户 * @param record C端用户
*/ */


ResultData listCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize);
PageInfo<WxCouponOrderCVo> listCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize);


/** /**
* C用户查券详情 * C用户查券详情
* *
* @param cUserId C端用户 * @param cUserId C端用户
*/ */
ResultData detailCUserVo(Long cUserId, String couponOrderId);
WxCouponOrderCVo detailCUserVo(Long cUserId, String couponOrderId);


/** /**
* C用户查券carlist * C用户查券carlist


+ 5
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Wyświetl plik

@@ -193,13 +193,13 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
} }


@Override @Override
public ResultData listCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize) {
public PageInfo<WxCouponOrderCVo> listCUserVoAsPage(WxCouponOrder record, Integer pageIndex, Integer pageSize) {


return new ResultData(PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfCUser(record)));
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfCUser(record));
} }


@Override @Override
public ResultData detailCUserVo(Long cUserId, String couponOrderId) {
public WxCouponOrderCVo detailCUserVo(Long cUserId, String couponOrderId) {
WxCUser wxCuser = wxCUserMapper.selectByPrimaryKey(cUserId); WxCUser wxCuser = wxCUserMapper.selectByPrimaryKey(cUserId);
if (wxCuser == null) { if (wxCuser == null) {
logger.error("用户不存在:" + cUserId); logger.error("用户不存在:" + cUserId);
@@ -208,8 +208,8 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {


WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId)); WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId));
if (wxCouponOrderCVo == null) if (wxCouponOrderCVo == null)
return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL);
return new ResultData(wxCouponOrderCVo);
throw new MallinkException(ErrorCode.COUPON_ORDER_IS_NULL);
return wxCouponOrderCVo;
} }






+ 2
- 0
mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml Wyświetl plik

@@ -505,6 +505,8 @@
<result column="price" jdbcType="INTEGER" property="price" /> <result column="price" jdbcType="INTEGER" property="price" />
<result column="unit" jdbcType="INTEGER" property="unit" /> <result column="unit" jdbcType="INTEGER" property="unit" />
<result column="remark" jdbcType="VARCHAR" property="remark" /> <result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="valid_start_date" jdbcType="TIMESTAMP" property="validStartDate"/>
<result column="valid_end_date" jdbcType="TIMESTAMP" property="validEndDate"/>


<result column="send_channel_type" jdbcType="INTEGER" property="sendChannelType" /> <result column="send_channel_type" jdbcType="INTEGER" property="sendChannelType" />




+ 2
- 0
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Wyświetl plik

@@ -212,6 +212,8 @@
<result column="price" jdbcType="INTEGER" property="price"/> <result column="price" jdbcType="INTEGER" property="price"/>
<result column="unit" jdbcType="INTEGER" property="unit"/> <result column="unit" jdbcType="INTEGER" property="unit"/>
<result column="remark" jdbcType="VARCHAR" property="remark"/> <result column="remark" jdbcType="VARCHAR" property="remark"/>
<result column="valid_start_date" jdbcType="TIMESTAMP" property="validStartDate"/>
<result column="valid_end_date" jdbcType="TIMESTAMP" property="validEndDate"/>


<result column="coupon_order_id" jdbcType="BIGINT" property="couponOrderId"/> <result column="coupon_order_id" jdbcType="BIGINT" property="couponOrderId"/>
<result column="coupon_order_status" jdbcType="INTEGER" property="couponOrderStatus"/> <result column="coupon_order_status" jdbcType="INTEGER" property="couponOrderStatus"/>


Ładowanie…
Anuluj
Zapisz