Bläddra i källkod

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

release_toaliyun_real
hupeng 7 år sedan
förälder
incheckning
530c473b0e
11 ändrade filer med 205 tillägg och 21 borttagningar
  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 Visa fil

@@ -5,6 +5,9 @@ import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
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.service.WxCouponOrderService;
import io.swagger.annotations.Api;
@@ -17,6 +20,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

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

@RestController
@@ -113,6 +117,25 @@ public class WxCouponOrderController extends BaseController {
logger.error("couponOrderId参数不正确: " + paramMap.toString());
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;
try {
couponOrder = wxCouponOrderService.verify(couponOrderId, getUser().getId());


+ 33
- 6
mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java Visa fil

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

import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxCouponOrder;
import com.iformall.domain.vo.WxCardCVo;
import com.iformall.domain.vo.WxCouponOrderCVo;
import com.iformall.enums.EnumCouponChannelActivityStatus;
import com.iformall.enums.EnumCouponOrderStatus;
import com.iformall.enums.EnumCouponOrderValidStatus;
import com.iformall.service.WxCouponOrderService;
import io.swagger.annotations.Api;
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.web.bind.annotation.*;

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

@RestController
@RequestMapping("/api/couponOrder")
@@ -55,7 +55,23 @@ public class WxCouponOrderController extends BaseController {
wxCouponOrder.setSortColumns(WxCouponOrder.Field.CreateDate_DESC);
else
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 = "券详情接口")
@@ -68,8 +84,19 @@ public class WxCouponOrderController extends BaseController {
if (couponOrderId == 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 = "卡券状态接口")


+ 29
- 3
mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java Visa fil

@@ -9,9 +9,7 @@ import com.iformall.domain.po.WxCouponChannel;
import com.iformall.domain.po.WxOrder;
import com.iformall.domain.vo.WxOrderCouponPressVo;
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.service.WxCouponChannelService;
import com.iformall.service.WxOrderService;
@@ -251,6 +249,21 @@ public class WxOrderController extends BaseController {
wxOrder.setcUserId(getUser().getId());
wxOrder.setSortColumns(WxOrder.Field.UpdateDate_DESC);
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);
}

@@ -274,6 +287,19 @@ public class WxOrderController extends BaseController {
WxOrderCouponVo wxOrderCVo = wxOrderService.detailCUserVo(wxOrder);
if (wxOrderCVo == null)
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);
}



+ 2
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Visa fil

@@ -149,6 +149,8 @@ public enum ErrorCode{
COUPON_ORDER_IS_INVALID(4003, "卡券已经作废"),
COUPON_ORDER_BUSER_IS_NULL(4004, "卡券B端用户不存在"),
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 Visa fil

@@ -45,6 +45,17 @@ public class WxCouponOrderCVo extends WxCouponOrder {
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")
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) {
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 Visa fil

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

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

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

@@ -23,6 +25,18 @@ public class WxOrderCouponVo {
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")
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表里**/
@io.swagger.annotations.ApiModelProperty(value="券包中券ID",name="couponOrderId")
@@ -292,4 +312,20 @@ public class WxOrderCouponVo {
public void setSupportTransfer(Integer 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 Visa fil

@@ -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 Visa fil

@@ -4,10 +4,7 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCouponOrder;
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.HttpServletResponse;
@@ -103,14 +100,14 @@ public interface WxCouponOrderService {
* @param record C端用户
*/

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

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

/**
* C用户查券carlist


+ 5
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Visa fil

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

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

WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId));
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 Visa fil

@@ -505,6 +505,8 @@
<result column="price" jdbcType="INTEGER" property="price" />
<result column="unit" jdbcType="INTEGER" property="unit" />
<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" />



+ 2
- 0
mallinkService/src/main/resources/mapper/WxOrderMapper.xml Visa fil

@@ -212,6 +212,8 @@
<result column="price" jdbcType="INTEGER" property="price"/>
<result column="unit" jdbcType="INTEGER" property="unit"/>
<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_status" jdbcType="INTEGER" property="couponOrderStatus"/>


Laddar…
Avbryt
Spara