Commit 42911469 authored by alex yao's avatar alex yao

feat: 用户权益支付订单列表

parent f6aa86e3
...@@ -3,6 +3,8 @@ package cn.com.poc.equity.aggregate; ...@@ -3,6 +3,8 @@ package cn.com.poc.equity.aggregate;
import cn.com.poc.equity.constants.EquityEnum; import cn.com.poc.equity.constants.EquityEnum;
import cn.com.poc.equity.domain.AgentEquity; import cn.com.poc.equity.domain.AgentEquity;
import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity; import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity;
import cn.com.poc.equity.entity.CurrentUserPayOrderEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.List; import java.util.List;
...@@ -32,4 +34,13 @@ public interface EquityService { ...@@ -32,4 +34,13 @@ public interface EquityService {
*/ */
String createEquityOrder(EquityEnum.TYPE type, EquityEnum.DOMAIN domain, EquityEnum.VALIDITY_UNIT validityUnit, Long memberID) throws Exception; String createEquityOrder(EquityEnum.TYPE type, EquityEnum.DOMAIN domain, EquityEnum.VALIDITY_UNIT validityUnit, Long memberID) throws Exception;
/**
* 获取用户订单列表
*
* @param memberId 会员ID
* @param domain 权益域
* @return 订单列表
*/
List<CurrentUserPayOrderEntity> getUserOrderList(Long memberId, EquityEnum.DOMAIN domain, PagingInfo pagingInfo);
} }
package cn.com.poc.equity.aggregate.impl; package cn.com.poc.equity.aggregate.impl;
import cn.com.poc.common.constant.CommonConstant; import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.DateUtils;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.equity.aggregate.EquityService; import cn.com.poc.equity.aggregate.EquityService;
import cn.com.poc.equity.constants.EquityEnum; import cn.com.poc.equity.constants.EquityEnum;
import cn.com.poc.equity.domain.AgentEquity; import cn.com.poc.equity.domain.AgentEquity;
import cn.com.poc.equity.entity.BizMemberEquityPayOrderLogEntity;
import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity; import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity;
import cn.com.poc.equity.entity.CurrentUserPayOrderEntity;
import cn.com.poc.equity.service.BizMemberEquityPayOrderLogService;
import cn.com.poc.equity.service.BizPaymentPackageConfigurationService; import cn.com.poc.equity.service.BizPaymentPackageConfigurationService;
import cn.com.poc.thirdparty.resource.demand.dgTools.constants.CurrencyEnum; import cn.com.poc.thirdparty.resource.demand.dgTools.constants.CurrencyEnum;
import cn.com.poc.thirdparty.resource.demand.pay.constants.DgtoolsPayOrderConstants;
import cn.com.poc.thirdparty.resource.demand.pay.entity.DgtoolsPayOrderEntity; import cn.com.poc.thirdparty.resource.demand.pay.entity.DgtoolsPayOrderEntity;
import cn.com.poc.thirdparty.resource.demand.pay.service.DgtoolsPayOrderService; import cn.com.poc.thirdparty.resource.demand.pay.service.DgtoolsPayOrderService;
import cn.com.yict.framemax.core.i18n.I18nMessageException; import cn.com.yict.framemax.core.i18n.I18nMessageException;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
@Component @Component
...@@ -33,6 +40,9 @@ public class EquityServiceImpl implements EquityService { ...@@ -33,6 +40,9 @@ public class EquityServiceImpl implements EquityService {
@Resource @Resource
private DgtoolsPayOrderService dgtoolsPayOrderService; private DgtoolsPayOrderService dgtoolsPayOrderService;
@Resource
private BizMemberEquityPayOrderLogService bizMemberEquityPayOrderLogService;
@Override @Override
public List<AgentEquity> getEquityList(EquityEnum.TYPE type) { public List<AgentEquity> getEquityList(EquityEnum.TYPE type) {
List<AgentEquity> result = new ArrayList<>(); List<AgentEquity> result = new ArrayList<>();
...@@ -92,4 +102,62 @@ public class EquityServiceImpl implements EquityService { ...@@ -92,4 +102,62 @@ public class EquityServiceImpl implements EquityService {
logger.info("创建支付订单,pay_order:{}", JsonUtils.serialize(payOrder)); logger.info("创建支付订单,pay_order:{}", JsonUtils.serialize(payOrder));
return payOrder.getPayOrderSn(); return payOrder.getPayOrderSn();
} }
@Override
public List<CurrentUserPayOrderEntity> getUserOrderList(Long memberId, EquityEnum.DOMAIN domain, PagingInfo pagingInfo) {
List<CurrentUserPayOrderEntity> currentUserPayOrderEntities = new ArrayList<>();
BizMemberEquityPayOrderLogEntity bizMemberEquityPayOrderLogEntity = new BizMemberEquityPayOrderLogEntity();
bizMemberEquityPayOrderLogEntity.setMemberId(memberId);
bizMemberEquityPayOrderLogEntity.setDomain(domain.name());
bizMemberEquityPayOrderLogEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizMemberEquityPayOrderLogEntity> payOrderLogEntities = bizMemberEquityPayOrderLogService.findByExample(bizMemberEquityPayOrderLogEntity, pagingInfo);
Date currDateTime = DateUtils.getCurrDateTime();
if (CollectionUtils.isNotEmpty(payOrderLogEntities)) {
for (BizMemberEquityPayOrderLogEntity payOrderLogEntity : payOrderLogEntities) {
CurrentUserPayOrderEntity currentUserPayOrderEntity = new CurrentUserPayOrderEntity();
currentUserPayOrderEntity.setType(EquityEnum.TYPE.valueOf(payOrderLogEntity.getType()));
currentUserPayOrderEntity.setDomain(domain);
currentUserPayOrderEntity.setExpiredNum(payOrderLogEntity.getExpiredNum());
currentUserPayOrderEntity.setExpiredType(EquityEnum.VALIDITY_UNIT.valueOf(payOrderLogEntity.getExpiredType()));
currentUserPayOrderEntity.setPointNum(new BigDecimal(payOrderLogEntity.getTotalPoints()).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
currentUserPayOrderEntity.setRemainExpiredDay(calculateRemainExpiredDay(currDateTime, payOrderLogEntity.getPayTime(), payOrderLogEntity.getExpiredNum(), EquityEnum.VALIDITY_UNIT.valueOf(payOrderLogEntity.getExpiredType())));
currentUserPayOrderEntity.setAmount(new BigDecimal(payOrderLogEntity.getPayAmount()));
currentUserPayOrderEntity.setPayTime(DateUtils.formatDate(payOrderLogEntity.getPayTime(), DateUtils.yyyy_MM_dd_HH_mm_ss));
currentUserPayOrderEntity.setPayChannel(payOrderLogEntity.getPayChannel());
currentUserPayOrderEntity.setPayOrderSn(payOrderLogEntity.getPayOrderSn());
currentUserPayOrderEntities.add(currentUserPayOrderEntity);
}
}
return currentUserPayOrderEntities;
}
/**
* 计算剩余有效天数
*
* @param now
* @param payTime
* @param expiredNum
* @param validityUnit
* @return -1 表示永久有效, 0 表示已过期 , >0 表示剩余有效天数
*/
private Integer calculateRemainExpiredDay(Date now, Date payTime, Integer expiredNum, EquityEnum.VALIDITY_UNIT validityUnit) {
int diff = 0;
Date expiredDate = new Date();
switch (validityUnit) {
case month:
expiredDate = DateUtils.addMonth(payTime, expiredNum);
diff = DateUtils.diffTwoDateDay(expiredDate, now);
break;
case year:
expiredDate = DateUtils.addYear(payTime, expiredNum);
diff = DateUtils.diffTwoDateDay(expiredDate, now);
break;
case indefinite:
return -2;
}
if (now.after(expiredDate)) {
return -1;
}
return diff;
}
} }
\ No newline at end of file
package cn.com.poc.equity.convert;
import cn.com.poc.equity.entity.BizMemberEquityPayOrderLogEntity;
import cn.com.poc.equity.model.BizMemberEquityPayOrderLogModel;
public class BizMemberEquityPayOrderLogConvert {
public static BizMemberEquityPayOrderLogEntity modelToEntity(BizMemberEquityPayOrderLogModel model) {
BizMemberEquityPayOrderLogEntity entity = new BizMemberEquityPayOrderLogEntity();
entity.setId(model.getId());
entity.setMemberId(model.getMemberId());
entity.setPayOrderSn(model.getPayOrderSn());
entity.setPayAmount(model.getPayAmount());
entity.setCurrency(model.getCurrency());
entity.setType(model.getType());
entity.setDomain(model.getDomain());
entity.setExpiredNum(model.getExpiredNum());
entity.setExpiredType(model.getExpiredType());
entity.setTotalPoints(model.getTotalPoints());
entity.setPayChannel(model.getPayChannel());
entity.setPayTime(model.getPayTime());
entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime());
entity.setModifier(model.getModifier());
entity.setModifiedTime(model.getModifiedTime());
entity.setSysVersion(model.getSysVersion());
return entity;
}
public static BizMemberEquityPayOrderLogModel entityToModel(BizMemberEquityPayOrderLogEntity entity) {
BizMemberEquityPayOrderLogModel model = new BizMemberEquityPayOrderLogModel();
model.setId(entity.getId());
model.setMemberId(entity.getMemberId());
model.setPayOrderSn(entity.getPayOrderSn());
model.setPayAmount(entity.getPayAmount());
model.setCurrency(entity.getCurrency());
model.setType(entity.getType());
model.setDomain(entity.getDomain());
model.setExpiredNum(entity.getExpiredNum());
model.setExpiredType(entity.getExpiredType());
model.setTotalPoints(entity.getTotalPoints());
model.setPayChannel(entity.getPayChannel());
model.setPayTime(entity.getPayTime());
model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime());
model.setModifier(entity.getModifier());
model.setModifiedTime(entity.getModifiedTime());
model.setSysVersion(entity.getSysVersion());
return model;
}
}
\ No newline at end of file
package cn.com.poc.equity.dto;
import cn.com.poc.equity.constants.EquityEnum;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author alex.yao
* @date 2024/12/11
*/
public class CurrentUserPayOrderDto implements Serializable {
private EquityEnum.TYPE type;
private EquityEnum.DOMAIN domain;
private Integer expiredNum;
private EquityEnum.VALIDITY_UNIT expiredType;
private BigDecimal pointNum;
private Integer remainExpiredDay;
private BigDecimal amount;
private String payTime;
private String payChannel;
private String payOrderSn;
public EquityEnum.TYPE getType() {
return type;
}
public void setType(EquityEnum.TYPE type) {
this.type = type;
}
public EquityEnum.DOMAIN getDomain() {
return domain;
}
public void setDomain(EquityEnum.DOMAIN domain) {
this.domain = domain;
}
public Integer getExpiredNum() {
return expiredNum;
}
public void setExpiredNum(Integer expiredNum) {
this.expiredNum = expiredNum;
}
public EquityEnum.VALIDITY_UNIT getExpiredType() {
return expiredType;
}
public void setExpiredType(EquityEnum.VALIDITY_UNIT expiredType) {
this.expiredType = expiredType;
}
public BigDecimal getPointNum() {
return pointNum;
}
public void setPointNum(BigDecimal pointNum) {
this.pointNum = pointNum;
}
public Integer getRemainExpiredDay() {
return remainExpiredDay;
}
public void setRemainExpiredDay(Integer remainExpiredDay) {
this.remainExpiredDay = remainExpiredDay;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getPayTime() {
return payTime;
}
public void setPayTime(String payTime) {
this.payTime = payTime;
}
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
public String getPayOrderSn() {
return payOrderSn;
}
public void setPayOrderSn(String payOrderSn) {
this.payOrderSn = payOrderSn;
}
}
package cn.com.poc.equity.entity;
public class BizMemberEquityPayOrderLogEntity {
private static final long serialVersionUID = 1L;
/** id
*
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** member_id
*用户id
*/
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
/** pay_order_sn
*订单号
*/
private java.lang.String payOrderSn;
public java.lang.String getPayOrderSn(){
return this.payOrderSn;
}
public void setPayOrderSn(java.lang.String payOrderSn){
this.payOrderSn = payOrderSn;
}
/** pay_amout
*支付金额 - 分
*/
private java.lang.Integer payAmount;
public java.lang.Integer getPayAmount(){
return this.payAmount;
}
public void setPayAmount(java.lang.Integer payAmount){
this.payAmount = payAmount;
}
/** currency
*货币
*/
private java.lang.String currency;
public java.lang.String getCurrency(){
return this.currency;
}
public void setCurrency(java.lang.String currency){
this.currency = currency;
}
/** type
*类型 normal-普通 professional-专业版 , ultimate-旗舰版
*/
private java.lang.String type;
public java.lang.String getType(){
return this.type;
}
public void setType(java.lang.String type){
this.type = type;
}
/** domain
*资源包领域 point-积分包 equity-权益包
*/
private java.lang.String domain;
public java.lang.String getDomain(){
return this.domain;
}
public void setDomain(java.lang.String domain){
this.domain = domain;
}
/**
*
* 获得积分数
*/
private java.lang.Long totalPoints;
public Long getTotalPoints() {
return totalPoints;
}
public void setTotalPoints(Long totalPoints) {
this.totalPoints = totalPoints;
}
/** expired_num
*过期数
*/
private java.lang.Integer expiredNum;
public java.lang.Integer getExpiredNum(){
return this.expiredNum;
}
public void setExpiredNum(java.lang.Integer expiredNum){
this.expiredNum = expiredNum;
}
/** expired_type
*套餐过期类型 day-天 month-月 year-年 indefinite-无限期
*/
private java.lang.String expiredType;
public java.lang.String getExpiredType(){
return this.expiredType;
}
public void setExpiredType(java.lang.String expiredType){
this.expiredType = expiredType;
}
/** pay_channel
*支付渠道: wx-微信 ali-支付宝
*/
private java.lang.String payChannel;
public java.lang.String getPayChannel(){
return this.payChannel;
}
public void setPayChannel(java.lang.String payChannel){
this.payChannel = payChannel;
}
/** pay_time
*付款时间
*/
private java.util.Date payTime;
public java.util.Date getPayTime(){
return this.payTime;
}
public void setPayTime(java.util.Date payTime){
this.payTime = payTime;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.equity.entity;
import cn.com.poc.equity.constants.EquityEnum;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author alex.yao
* @date 2024/12/11
*/
public class CurrentUserPayOrderEntity implements Serializable {
private EquityEnum.TYPE type;
private EquityEnum.DOMAIN domain;
private Integer expiredNum;
private EquityEnum.VALIDITY_UNIT expiredType;
private BigDecimal pointNum;
private Integer remainExpiredDay;
private BigDecimal amount;
private String payTime;
private String payChannel;
private String payOrderSn;
public EquityEnum.TYPE getType() {
return type;
}
public void setType(EquityEnum.TYPE type) {
this.type = type;
}
public EquityEnum.DOMAIN getDomain() {
return domain;
}
public void setDomain(EquityEnum.DOMAIN domain) {
this.domain = domain;
}
public Integer getExpiredNum() {
return expiredNum;
}
public void setExpiredNum(Integer expiredNum) {
this.expiredNum = expiredNum;
}
public EquityEnum.VALIDITY_UNIT getExpiredType() {
return expiredType;
}
public void setExpiredType(EquityEnum.VALIDITY_UNIT expiredType) {
this.expiredType = expiredType;
}
public BigDecimal getPointNum() {
return pointNum;
}
public void setPointNum(BigDecimal pointNum) {
this.pointNum = pointNum;
}
public Integer getRemainExpiredDay() {
return remainExpiredDay;
}
public void setRemainExpiredDay(Integer remainExpiredDay) {
this.remainExpiredDay = remainExpiredDay;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getPayTime() {
return payTime;
}
public void setPayTime(String payTime) {
this.payTime = payTime;
}
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
public String getPayOrderSn() {
return payOrderSn;
}
public void setPayOrderSn(String payOrderSn) {
this.payOrderSn = payOrderSn;
}
}
package cn.com.poc.equity.model;
import java.io.Serializable;
import cn.com.yict.framemax.data.model.BaseModelClass;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Version;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
/**
* Model class for biz_member_equity_pay_order_log
* 会员权益订单表
*/
@Entity
@Table(name = "biz_member_equity_pay_order_log")
@DynamicInsert
@DynamicUpdate
public class BizMemberEquityPayOrderLogModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private java.lang.Long id;
@Column(name = "id", length = 19)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public java.lang.Long getId() {
return this.id;
}
public void setId(java.lang.Long id) {
this.id = id;
super.addValidField("id");
}
/**
* member_id
* 用户id
*/
private java.lang.Long memberId;
@Column(name = "member_id", length = 19)
public java.lang.Long getMemberId() {
return this.memberId;
}
public void setMemberId(java.lang.Long memberId) {
this.memberId = memberId;
super.addValidField("memberId");
}
/**
* pay_order_sn
* 订单号
*/
private java.lang.String payOrderSn;
@Column(name = "pay_order_sn", length = 50)
public java.lang.String getPayOrderSn() {
return this.payOrderSn;
}
public void setPayOrderSn(java.lang.String payOrderSn) {
this.payOrderSn = payOrderSn;
super.addValidField("payOrderSn");
}
/**
* pay_amount
* 支付金额 - 分
*/
private java.lang.Integer payAmount;
@Column(name = "pay_amount", length = 10)
public java.lang.Integer getPayAmount() {
return this.payAmount;
}
public void setPayAmount(java.lang.Integer payAmount) {
this.payAmount = payAmount;
super.addValidField("payAmount");
}
/**
* currency
* 货币
*/
private java.lang.String currency;
@Column(name = "currency", length = 10)
public java.lang.String getCurrency() {
return this.currency;
}
public void setCurrency(java.lang.String currency) {
this.currency = currency;
super.addValidField("currency");
}
/**
* type
* 类型 normal-普通 professional-专业版 , ultimate-旗舰版
*/
private java.lang.String type;
@Column(name = "type", length = 100)
public java.lang.String getType() {
return this.type;
}
public void setType(java.lang.String type) {
this.type = type;
super.addValidField("type");
}
/**
* domain
* 资源包领域 point-积分包 equity-权益包
*/
private java.lang.String domain;
@Column(name = "domain", length = 100)
public java.lang.String getDomain() {
return this.domain;
}
public void setDomain(java.lang.String domain) {
this.domain = domain;
super.addValidField("domain");
}
/**
* total_points
* 获得积分数
*/
private java.lang.Long totalPoints;
@Column(name = "total_points", length = 10)
public java.lang.Long getTotalPoints() {
return this.totalPoints;
}
public void setTotalPoints(java.lang.Long totalPoints) {
this.totalPoints = totalPoints;
super.addValidField("totalPoints");
}
/**
* expired_num
* 过期数
*/
private java.lang.Integer expiredNum;
@Column(name = "expired_num", length = 10)
public java.lang.Integer getExpiredNum() {
return this.expiredNum;
}
public void setExpiredNum(java.lang.Integer expiredNum) {
this.expiredNum = expiredNum;
super.addValidField("expiredNum");
}
/**
* expired_type
* 套餐过期类型 day-天 month-月 year-年 indefinite-无限期
*/
private java.lang.String expiredType;
@Column(name = "expired_type", length = 100)
public java.lang.String getExpiredType() {
return this.expiredType;
}
public void setExpiredType(java.lang.String expiredType) {
this.expiredType = expiredType;
super.addValidField("expiredType");
}
/**
* pay_channel
* 支付渠道: wx-微信 ali-支付宝
*/
private java.lang.String payChannel;
@Column(name = "pay_channel", length = 10)
public java.lang.String getPayChannel() {
return this.payChannel;
}
public void setPayChannel(java.lang.String payChannel) {
this.payChannel = payChannel;
super.addValidField("payChannel");
}
/**
* pay_time
* 付款时间
*/
private java.util.Date payTime;
@Column(name = "pay_time", length = 19)
public java.util.Date getPayTime() {
return this.payTime;
}
public void setPayTime(java.util.Date payTime) {
this.payTime = payTime;
super.addValidField("payTime");
}
/**
* is_deleted
* 是否删除 Y 是 N 否
*/
private java.lang.String isDeleted;
@Column(name = "is_deleted", length = 1)
public java.lang.String getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted) {
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/**
* CREATOR
* 创建人
*/
private java.lang.String creator;
@Column(name = "CREATOR", length = 50)
public java.lang.String getCreator() {
return this.creator;
}
public void setCreator(java.lang.String creator) {
this.creator = creator;
super.addValidField("creator");
}
/**
* CREATED_TIME
* 创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME", length = 19)
public java.util.Date getCreatedTime() {
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime;
super.addValidField("createdTime");
}
/**
* MODIFIER
* 修改人
*/
private java.lang.String modifier;
@Column(name = "MODIFIER", length = 50)
public java.lang.String getModifier() {
return this.modifier;
}
public void setModifier(java.lang.String modifier) {
this.modifier = modifier;
super.addValidField("modifier");
}
/**
* MODIFIED_TIME
* 修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME", length = 19)
public java.util.Date getModifiedTime() {
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime");
}
/**
* SYS_VERSION
* 乐观锁,版本号
*/
private java.lang.Integer sysVersion;
@Column(name = "SYS_VERSION", length = 10)
@Version
public java.lang.Integer getSysVersion() {
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion) {
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
}
\ No newline at end of file
...@@ -5,7 +5,9 @@ import cn.com.poc.equity.aggregate.MemberEquityService; ...@@ -5,7 +5,9 @@ import cn.com.poc.equity.aggregate.MemberEquityService;
import cn.com.poc.equity.constants.EquityEnum; import cn.com.poc.equity.constants.EquityEnum;
import cn.com.poc.equity.constants.ModifyEventEnum; import cn.com.poc.equity.constants.ModifyEventEnum;
import cn.com.poc.equity.domain.modifyEquityInfo.PayModifyEventInfo; import cn.com.poc.equity.domain.modifyEquityInfo.PayModifyEventInfo;
import cn.com.poc.equity.entity.BizMemberEquityPayOrderLogEntity;
import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity; import cn.com.poc.equity.entity.BizPaymentPackageConfigurationEntity;
import cn.com.poc.equity.service.BizMemberEquityPayOrderLogService;
import cn.com.poc.thirdparty.resource.demand.pay.constants.DgtoolsPayOrderConstants; import cn.com.poc.thirdparty.resource.demand.pay.constants.DgtoolsPayOrderConstants;
import cn.com.poc.thirdparty.resource.demand.pay.entity.DgtoolsPayOrderEntity; import cn.com.poc.thirdparty.resource.demand.pay.entity.DgtoolsPayOrderEntity;
import cn.com.poc.thirdparty.resource.demand.pay.processor.AbstractPayPostProcessor; import cn.com.poc.thirdparty.resource.demand.pay.processor.AbstractPayPostProcessor;
...@@ -25,6 +27,9 @@ public class EquityPayPostProcessor implements AbstractPayPostProcessor { ...@@ -25,6 +27,9 @@ public class EquityPayPostProcessor implements AbstractPayPostProcessor {
@Resource @Resource
private MemberEquityService memberEquityService; private MemberEquityService memberEquityService;
@Resource
private BizMemberEquityPayOrderLogService bizMemberEquityPayOrderLogService;
@Resource @Resource
private DgtoolsPayOrderService dgtoolsPayOrderService; private DgtoolsPayOrderService dgtoolsPayOrderService;
...@@ -42,6 +47,9 @@ public class EquityPayPostProcessor implements AbstractPayPostProcessor { ...@@ -42,6 +47,9 @@ public class EquityPayPostProcessor implements AbstractPayPostProcessor {
if (payOrderEntity == null) { if (payOrderEntity == null) {
throw new BusinessException("支付回调,找不到账单信息"); throw new BusinessException("支付回调,找不到账单信息");
} }
if (!DgtoolsPayOrderConstants.PayStatus.PAID.equals(payOrderEntity.getPayStatus())) {
throw new BusinessException("支付回调,账单未支付");
}
String retainInformation = payOrderEntity.getRetainInformation(); String retainInformation = payOrderEntity.getRetainInformation();
Integer memberId = payOrderEntity.getMemberId(); Integer memberId = payOrderEntity.getMemberId();
BizPaymentPackageConfigurationEntity bizPaymentPackageConfigurationEntity = JsonUtils.deSerialize(retainInformation, BizPaymentPackageConfigurationEntity.class); BizPaymentPackageConfigurationEntity bizPaymentPackageConfigurationEntity = JsonUtils.deSerialize(retainInformation, BizPaymentPackageConfigurationEntity.class);
...@@ -55,6 +63,20 @@ public class EquityPayPostProcessor implements AbstractPayPostProcessor { ...@@ -55,6 +63,20 @@ public class EquityPayPostProcessor implements AbstractPayPostProcessor {
// 以小数点后两位为单位,添加积分 // 以小数点后两位为单位,添加积分
long pointNum = bizPaymentPackageConfigurationEntity.getResourceCount().longValue() * 100; long pointNum = bizPaymentPackageConfigurationEntity.getResourceCount().longValue() * 100;
memberEquityService.addPoint(memberId.longValue(), pointNum, EquityEnum.VALIDITY_UNIT.valueOf(expiredType), ModifyEventEnum.top_up, modifyEventInfo); memberEquityService.addPoint(memberId.longValue(), pointNum, EquityEnum.VALIDITY_UNIT.valueOf(expiredType), ModifyEventEnum.top_up, modifyEventInfo);
//记录支付日志
BizMemberEquityPayOrderLogEntity bizMemberEquityPayOrderLogEntity = new BizMemberEquityPayOrderLogEntity();
bizMemberEquityPayOrderLogEntity.setMemberId(memberId.longValue());
bizMemberEquityPayOrderLogEntity.setPayOrderSn(payOrderEntity.getPayChannel());
bizMemberEquityPayOrderLogEntity.setPayAmount(payOrderEntity.getAmount());
bizMemberEquityPayOrderLogEntity.setCurrency(payOrderEntity.getCurrency());
bizMemberEquityPayOrderLogEntity.setType(type);
bizMemberEquityPayOrderLogEntity.setDomain(domain);
bizMemberEquityPayOrderLogEntity.setExpiredNum(bizPaymentPackageConfigurationEntity.getExpiredNum());
bizMemberEquityPayOrderLogEntity.setExpiredType(expiredType);
bizMemberEquityPayOrderLogEntity.setTotalPoints(pointNum);
bizMemberEquityPayOrderLogEntity.setPayChannel(payOrderEntity.getPayChannel());
bizMemberEquityPayOrderLogEntity.setPayTime(payOrderEntity.getPayTime());
bizMemberEquityPayOrderLogService.save(bizMemberEquityPayOrderLogEntity);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
//todo 异常处理 //todo 异常处理
...@@ -64,6 +86,6 @@ public class EquityPayPostProcessor implements AbstractPayPostProcessor { ...@@ -64,6 +86,6 @@ public class EquityPayPostProcessor implements AbstractPayPostProcessor {
@Override @Override
public void postProcessFail(String orderSn) { public void postProcessFail(String orderSn) {
throw new BusinessException("暂不支持");
} }
} }
package cn.com.poc.equity.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.equity.model.BizMemberEquityPayOrderLogModel;
public interface BizMemberEquityPayOrderLogRepository extends Repository<BizMemberEquityPayOrderLogModel,java.lang.Long> {
}
\ No newline at end of file
package cn.com.poc.equity.rest; package cn.com.poc.equity.rest;
import cn.com.poc.equity.dto.CurrentUserPayOrderDto;
import cn.com.poc.equity.dto.EquityOrderCreateDto; import cn.com.poc.equity.dto.EquityOrderCreateDto;
import cn.com.yict.framemax.core.rest.BaseRest; import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.yict.framemax.web.permission.Access; import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission; import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@Permission(Access.Safety) @Permission(Access.Safety)
public interface EquityOrderRest extends BaseRest { public interface EquityOrderRest extends BaseRest {
...@@ -17,4 +22,12 @@ public interface EquityOrderRest extends BaseRest { ...@@ -17,4 +22,12 @@ public interface EquityOrderRest extends BaseRest {
@Deprecated @Deprecated
String createOrder(@RequestBody EquityOrderCreateDto createDto) throws Exception; String createOrder(@RequestBody EquityOrderCreateDto createDto) throws Exception;
/**
* 获取用户套餐充值列表(已支付,已发放)
*
* @return
*/
List<CurrentUserPayOrderDto> getCurrentUserPayOrderList(@RequestParam String domain, PagingInfo pagingInfo);
} }
...@@ -4,14 +4,20 @@ import cn.com.poc.common.utils.Assert; ...@@ -4,14 +4,20 @@ import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext; import cn.com.poc.common.utils.BlContext;
import cn.com.poc.equity.aggregate.EquityService; import cn.com.poc.equity.aggregate.EquityService;
import cn.com.poc.equity.constants.EquityEnum; import cn.com.poc.equity.constants.EquityEnum;
import cn.com.poc.equity.dto.CurrentUserPayOrderDto;
import cn.com.poc.equity.dto.EquityOrderCreateDto; import cn.com.poc.equity.dto.EquityOrderCreateDto;
import cn.com.poc.equity.entity.CurrentUserPayOrderEntity;
import cn.com.poc.equity.rest.EquityOrderRest; import cn.com.poc.equity.rest.EquityOrderRest;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.core.i18n.I18nMessageException; import cn.com.yict.framemax.core.i18n.I18nMessageException;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Component @Component
public class EquityOrderRestImpl implements EquityOrderRest { public class EquityOrderRestImpl implements EquityOrderRest {
...@@ -42,4 +48,28 @@ public class EquityOrderRestImpl implements EquityOrderRest { ...@@ -42,4 +48,28 @@ public class EquityOrderRestImpl implements EquityOrderRest {
EquityEnum.VALIDITY_UNIT.valueOf(createDto.getValidityUnit()), EquityEnum.VALIDITY_UNIT.valueOf(createDto.getValidityUnit()),
currentUser.getUserId()); currentUser.getUserId());
} }
@Override
public List<CurrentUserPayOrderDto> getCurrentUserPayOrderList(String domain, PagingInfo pagingInfo) {
List<CurrentUserPayOrderDto> result = new ArrayList<>();
UserBaseEntity currentUser = BlContext.getCurrentUser();
List<CurrentUserPayOrderEntity> userPayOrderEntities = equityService.getUserOrderList(currentUser.getUserId(), EquityEnum.DOMAIN.valueOf(domain), pagingInfo);
if (CollectionUtils.isNotEmpty(userPayOrderEntities)) {
for (CurrentUserPayOrderEntity entity : userPayOrderEntities) {
CurrentUserPayOrderDto dto = new CurrentUserPayOrderDto();
dto.setType(entity.getType());
dto.setDomain(entity.getDomain());
dto.setExpiredNum(entity.getExpiredNum());
dto.setExpiredType(entity.getExpiredType());
dto.setPointNum(entity.getPointNum());
dto.setRemainExpiredDay(entity.getRemainExpiredDay());
dto.setAmount(entity.getAmount());
dto.setPayTime(entity.getPayTime());
dto.setPayChannel(entity.getPayChannel());
dto.setPayOrderSn(entity.getPayOrderSn());
result.add(dto);
}
}
return result;
}
} }
package cn.com.poc.equity.service;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.equity.entity.BizMemberEquityPayOrderLogEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
public interface BizMemberEquityPayOrderLogService extends BaseService {
BizMemberEquityPayOrderLogEntity get(java.lang.Long id) throws Exception;
List<BizMemberEquityPayOrderLogEntity> findByExample(BizMemberEquityPayOrderLogEntity example,PagingInfo pagingInfo);
BizMemberEquityPayOrderLogEntity save(BizMemberEquityPayOrderLogEntity entity) throws Exception;
BizMemberEquityPayOrderLogEntity update(BizMemberEquityPayOrderLogEntity entity) throws Exception;
void deletedById(java.lang.Long id) throws Exception;
}
\ No newline at end of file
package cn.com.poc.equity.service.impl;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.equity.service.BizMemberEquityPayOrderLogService;
import cn.com.poc.equity.model.BizMemberEquityPayOrderLogModel;
import cn.com.poc.equity.entity.BizMemberEquityPayOrderLogEntity;
import cn.com.poc.equity.convert.BizMemberEquityPayOrderLogConvert;
import cn.com.poc.equity.repository.BizMemberEquityPayOrderLogRepository;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.stereotype.Service;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.util.Assert;
@Service
public class BizMemberEquityPayOrderLogServiceImpl extends BaseServiceImpl
implements BizMemberEquityPayOrderLogService {
@Resource
private BizMemberEquityPayOrderLogRepository repository;
public BizMemberEquityPayOrderLogEntity get(java.lang.Long id) throws Exception{
Assert.notNull(id);
BizMemberEquityPayOrderLogModel model = this.repository.get(id);
if (model == null){
return null;
}
if ("Y".equals(model.getIsDeleted())){
return null;
}
return BizMemberEquityPayOrderLogConvert.modelToEntity(model);
}
public List<BizMemberEquityPayOrderLogEntity> findByExample(BizMemberEquityPayOrderLogEntity example,PagingInfo pagingInfo){
List<BizMemberEquityPayOrderLogEntity> result = new ArrayList<BizMemberEquityPayOrderLogEntity>();
BizMemberEquityPayOrderLogModel model = new BizMemberEquityPayOrderLogModel();
if (example != null){
model = BizMemberEquityPayOrderLogConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizMemberEquityPayOrderLogModel> models = this.repository.findByExample(model,pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizMemberEquityPayOrderLogConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizMemberEquityPayOrderLogEntity save(BizMemberEquityPayOrderLogEntity entity) throws Exception{
Assert.notNull(entity);
entity.setId(null);
entity.setIsDeleted("N");
BizMemberEquityPayOrderLogModel model = BizMemberEquityPayOrderLogConvert.entityToModel(entity);
BizMemberEquityPayOrderLogModel saveModel = this.repository.save(model);
return BizMemberEquityPayOrderLogConvert.modelToEntity(saveModel);
}
public BizMemberEquityPayOrderLogEntity update(BizMemberEquityPayOrderLogEntity entity) throws Exception{
Assert.notNull(entity);
Assert.notNull(entity.getId(),"update pk can not be null");
BizMemberEquityPayOrderLogModel model = this.repository.get(entity.getId());
if (entity.getMemberId() != null){
model.setMemberId(entity.getMemberId());
}
if (entity.getPayOrderSn() != null){
model.setPayOrderSn(entity.getPayOrderSn());
}
if (entity.getPayAmount() != null){
model.setPayAmount(entity.getPayAmount());
}
if (entity.getCurrency() != null){
model.setCurrency(entity.getCurrency());
}
if (entity.getType() != null){
model.setType(entity.getType());
}
if (entity.getDomain() != null){
model.setDomain(entity.getDomain());
}
if (entity.getExpiredNum() != null){
model.setExpiredNum(entity.getExpiredNum());
}
if (entity.getExpiredType() != null){
model.setExpiredType(entity.getExpiredType());
}
if (entity.getPayChannel() != null){
model.setPayChannel(entity.getPayChannel());
}
if (entity.getPayTime() != null){
model.setPayTime(entity.getPayTime());
}
if (entity.getIsDeleted() != null){
model.setIsDeleted(entity.getIsDeleted());
}
if (entity.getCreator() != null){
model.setCreator(entity.getCreator());
}
if (entity.getCreatedTime() != null){
model.setCreatedTime(entity.getCreatedTime());
}
if (entity.getModifier() != null){
model.setModifier(entity.getModifier());
}
if (entity.getModifiedTime() != null){
model.setModifiedTime(entity.getModifiedTime());
}
if (entity.getSysVersion() != null){
model.setSysVersion(entity.getSysVersion());
}
BizMemberEquityPayOrderLogModel saveModel = this.repository.save(model);
return BizMemberEquityPayOrderLogConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Long id) throws Exception{
Assert.notNull(id);
BizMemberEquityPayOrderLogModel model = this.repository.get(id);
if (model != null){
if ("N".equals(model.getIsDeleted())){
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
}
\ No newline at end of file
...@@ -25,6 +25,11 @@ public class PayCallBackRequest { ...@@ -25,6 +25,11 @@ public class PayCallBackRequest {
*/ */
private Integer amount; private Integer amount;
/**
* 支付渠道
*/
private String payChannel;
public String getBizUniqueNo() { public String getBizUniqueNo() {
return bizUniqueNo; return bizUniqueNo;
} }
...@@ -48,4 +53,12 @@ public class PayCallBackRequest { ...@@ -48,4 +53,12 @@ public class PayCallBackRequest {
public void setAmount(Integer amount) { public void setAmount(Integer amount) {
this.amount = amount; this.amount = amount;
} }
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
}
} }
...@@ -19,5 +19,5 @@ public interface PayCallBackRest extends BaseRest { ...@@ -19,5 +19,5 @@ public interface PayCallBackRest extends BaseRest {
* @return * @return
* @throws Exception * @throws Exception
*/ */
String payCallBack(@RequestBody PayCallBackRequest wxMiniPayRequest) throws Exception; String payCallBack(@RequestBody PayCallBackRequest wxMiniPayRequest);
} }
...@@ -31,7 +31,7 @@ public class PayCallBackRestImpl implements PayCallBackRest { ...@@ -31,7 +31,7 @@ public class PayCallBackRestImpl implements PayCallBackRest {
@Override @Override
public String payCallBack(PayCallBackRequest payRequest) throws Exception { public String payCallBack(PayCallBackRequest payRequest) {
String bizUniqueNo = payRequest.getBizUniqueNo(); String bizUniqueNo = payRequest.getBizUniqueNo();
String payLogSn = payRequest.getPayLogSn(); String payLogSn = payRequest.getPayLogSn();
...@@ -40,7 +40,7 @@ public class PayCallBackRestImpl implements PayCallBackRest { ...@@ -40,7 +40,7 @@ public class PayCallBackRestImpl implements PayCallBackRest {
if (payOrderEntity == null) { if (payOrderEntity == null) {
throw new BusinessException("支付回调,找不到账单信息"); throw new BusinessException("支付回调,找不到账单信息");
} }
dgtoolsPayOrderService.changePayOrder2PaidStatus(bizUniqueNo, payRequest.getAmount()); dgtoolsPayOrderService.changePayOrder2PaidStatus(bizUniqueNo, payRequest.getAmount(), payRequest.getPayChannel());
//更新支付流水 //更新支付流水
dgtoolsPayLogService.changePayLog2PaidStatus(bizUniqueNo, payLogSn); dgtoolsPayLogService.changePayLog2PaidStatus(bizUniqueNo, payLogSn);
// 支付後置處理 // 支付後置處理
......
...@@ -58,6 +58,16 @@ public interface DgtoolsPayOrderService extends BaseService { ...@@ -58,6 +58,16 @@ public interface DgtoolsPayOrderService extends BaseService {
*/ */
void changePayOrder2PaidStatus(String payOrderSn, Integer amount); void changePayOrder2PaidStatus(String payOrderSn, Integer amount);
/**
* 改变付款订单到已支付
*
* @param payOrderSn
* @param amount
* @param payChannel
*/
void changePayOrder2PaidStatus(String payOrderSn, Integer amount, String payChannel);
/** /**
* 创建付款单并且支付 * 创建付款单并且支付
* *
......
...@@ -78,7 +78,7 @@ public class DgtoolsPayOrderServiceImpl extends BaseServiceImpl ...@@ -78,7 +78,7 @@ public class DgtoolsPayOrderServiceImpl extends BaseServiceImpl
DgtoolsPayOrderModel saved = repository.save(dgtoolsPayOrderModel); DgtoolsPayOrderModel saved = repository.save(dgtoolsPayOrderModel);
//设置付款订单过期 //todo 设置付款订单过期
// redisService.set(MkpRedisKeyConstant.PRE_PAY_ORDER_EXPIRED + ":" + saved.getPayOrderSn(), "", 15 * 60); // redisService.set(MkpRedisKeyConstant.PRE_PAY_ORDER_EXPIRED + ":" + saved.getPayOrderSn(), "", 15 * 60);
DgtoolsPayOrderEntity savedEntity = new DgtoolsPayOrderEntity(); DgtoolsPayOrderEntity savedEntity = new DgtoolsPayOrderEntity();
...@@ -213,6 +213,28 @@ public class DgtoolsPayOrderServiceImpl extends BaseServiceImpl ...@@ -213,6 +213,28 @@ public class DgtoolsPayOrderServiceImpl extends BaseServiceImpl
} }
} }
@Override
public void changePayOrder2PaidStatus(String payOrderSn, Integer amount, String payChannel) {
Assert.notBlank(payOrderSn, "更改付款订单状态,付款订单号不能为空");
Assert.notNull(amount, "更改付款订单状态,付款金额不能为空");
DgtoolsPayOrderModel dgtoolsPayOrderModel = new DgtoolsPayOrderModel();
dgtoolsPayOrderModel.setPayOrderSn(payOrderSn);
dgtoolsPayOrderModel.setIsDeleted(CommonConstant.IsDeleted.N);
List<DgtoolsPayOrderModel> dgtoolsPayOrderModelList = repository.findByExample(dgtoolsPayOrderModel);
if (CollectionUtils.isNotEmpty(dgtoolsPayOrderModelList)) {
DgtoolsPayOrderModel model = dgtoolsPayOrderModelList.get(0);
if (!DgtoolsPayOrderConstants.PayStatus.NO_PAYMENT.equals(model.getPayStatus())) {
return;
}
model.setOrderStatus(DgtoolsPayOrderConstants.OrderStatus.COMPLETED);
model.setPayTime(new Date());
model.setPaidAmount(amount);
model.setPayStatus(DgtoolsPayOrderConstants.PayStatus.PAID);
model.setPayChannel(payChannel);
repository.save(model);
}
}
/** /**
* 创建付款单并且支付 * 创建付款单并且支付
* *
......
package cn.com.poc.equity.aggregate; package cn.com.poc.equity.aggregate;
import cn.com.poc.common.utils.DateUtils;
import cn.com.poc.equity.constants.EquityEnum; import cn.com.poc.equity.constants.EquityEnum;
import cn.com.yict.framemax.core.spring.SingleContextInitializer; import cn.com.yict.framemax.core.spring.SingleContextInitializer;
import org.junit.Before; import org.junit.Before;
...@@ -14,6 +15,8 @@ import org.springframework.test.context.web.WebAppConfiguration; ...@@ -14,6 +15,8 @@ import org.springframework.test.context.web.WebAppConfiguration;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
...@@ -45,4 +48,27 @@ public class EquityServiceTest { ...@@ -45,4 +48,27 @@ public class EquityServiceTest {
assertNotNull(equityOrder); assertNotNull(equityOrder);
System.out.println("创建订单:" + equityOrder); System.out.println("创建订单:" + equityOrder);
} }
@Test
public void test_calculateRemainExpiredDay() {
EquityEnum.VALIDITY_UNIT validityUnit = EquityEnum.VALIDITY_UNIT.year;
Date now = DateUtils.getCurrDateTime();
Date payTime = DateUtils.addDays(now, -2);
Integer expiredNum = 1;
int diff = 0;
Date expiredDate;
switch (validityUnit) {
case month:
expiredDate = DateUtils.addMonth(payTime, expiredNum);
diff = DateUtils.diffTwoDateDay(expiredDate, now);
break;
case year:
expiredDate = DateUtils.addYear(payTime, expiredNum);
diff = DateUtils.diffTwoDateDay(expiredDate, now);
break;
case indefinite:
System.out.println(-1);
}
System.out.println(Math.max(diff, 0));
}
} }
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