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;
}
} }
...@@ -20,54 +20,76 @@ public class DgtoolsPayOrderModel extends BaseModelClass implements Serializable ...@@ -20,54 +20,76 @@ public class DgtoolsPayOrderModel extends BaseModelClass implements Serializable
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** pay_order_id /**
*预付款id * pay_order_id
* 预付款id
*/ */
private Integer payOrderId; private Integer payOrderId;
@Column(name = "pay_order_id",length = 10) @Column(name = "pay_order_id", length = 10)
@Id @GeneratedValue(strategy = GenerationType.AUTO) @Id
public Integer getPayOrderId(){ @GeneratedValue(strategy = GenerationType.AUTO)
public Integer getPayOrderId() {
return this.payOrderId; return this.payOrderId;
} }
public void setPayOrderId(Integer payOrderId){ public void setPayOrderId(Integer payOrderId) {
this.payOrderId = payOrderId; this.payOrderId = payOrderId;
super.addValidField("payOrderId"); super.addValidField("payOrderId");
} }
/** pay_order_sn /**
*预付款号 * pay_order_sn
* 预付款号
*/ */
private String payOrderSn; private String payOrderSn;
@Column(name = "pay_order_sn",length = 50) @Column(name = "pay_order_sn", length = 50)
public String getPayOrderSn(){ public String getPayOrderSn() {
return this.payOrderSn; return this.payOrderSn;
} }
public void setPayOrderSn(String payOrderSn){ public void setPayOrderSn(String payOrderSn) {
this.payOrderSn = payOrderSn; this.payOrderSn = payOrderSn;
super.addValidField("payOrderSn"); super.addValidField("payOrderSn");
} }
/** pay_order_type /**
*预付款类型(MarketingGamePay:游戏支付) * pay_order_type
* 预付款类型(MarketingGamePay:游戏支付)
*/ */
private String payOrderType; private String payOrderType;
@Column(name = "pay_order_type",length = 255) @Column(name = "pay_order_type", length = 255)
public String getPayOrderType(){ public String getPayOrderType() {
return this.payOrderType; return this.payOrderType;
} }
public void setPayOrderType(String payOrderType){ public void setPayOrderType(String payOrderType) {
this.payOrderType = payOrderType; this.payOrderType = payOrderType;
super.addValidField("payOrderType"); super.addValidField("payOrderType");
} }
/**
* pay_channel
* 预付款类型(MarketingGamePay:游戏支付)
*/
private String payChannel;
@Column(name = "pay_channel", length = 10)
public String getPayChannel() {
return payChannel;
}
public void setPayChannel(String payChannel) {
this.payChannel = payChannel;
super.addValidField("payChannel");
}
/** /**
* sharer_id * sharer_id
* 分享者id * 分享者id
...@@ -84,143 +106,152 @@ public class DgtoolsPayOrderModel extends BaseModelClass implements Serializable ...@@ -84,143 +106,152 @@ public class DgtoolsPayOrderModel extends BaseModelClass implements Serializable
super.addValidField("sharerId"); super.addValidField("sharerId");
} }
/** total_amount /**
*订单金额(分) * total_amount
* 订单金额(分)
*/ */
private Integer totalAmount; private Integer totalAmount;
@Column(name = "total_amount",length = 10) @Column(name = "total_amount", length = 10)
public Integer getTotalAmount(){ public Integer getTotalAmount() {
return this.totalAmount; return this.totalAmount;
} }
public void setTotalAmount(Integer totalAmount){ public void setTotalAmount(Integer totalAmount) {
this.totalAmount = totalAmount; this.totalAmount = totalAmount;
super.addValidField("totalAmount"); super.addValidField("totalAmount");
} }
/** paid_amount /**
*已付金额(分) * paid_amount
* 已付金额(分)
*/ */
private Integer paidAmount; private Integer paidAmount;
@Column(name = "paid_amount",length = 10) @Column(name = "paid_amount", length = 10)
public Integer getPaidAmount(){ public Integer getPaidAmount() {
return this.paidAmount; return this.paidAmount;
} }
public void setPaidAmount(Integer paidAmount){ public void setPaidAmount(Integer paidAmount) {
this.paidAmount = paidAmount; this.paidAmount = paidAmount;
super.addValidField("paidAmount"); super.addValidField("paidAmount");
} }
/** need_pay_amount /**
*订单待付金额(分) * need_pay_amount
* 订单待付金额(分)
*/ */
private Integer needPayAmount; private Integer needPayAmount;
@Column(name = "need_pay_amount",length = 10) @Column(name = "need_pay_amount", length = 10)
public Integer getNeedPayAmount(){ public Integer getNeedPayAmount() {
return this.needPayAmount; return this.needPayAmount;
} }
public void setNeedPayAmount(Integer needPayAmount){ public void setNeedPayAmount(Integer needPayAmount) {
this.needPayAmount = needPayAmount; this.needPayAmount = needPayAmount;
super.addValidField("needPayAmount"); super.addValidField("needPayAmount");
} }
/** member_id /**
*下单人id * member_id
* 下单人id
*/ */
private Integer memberId; private Integer memberId;
@Column(name = "member_id",length = 10) @Column(name = "member_id", length = 10)
public Integer getMemberId(){ public Integer getMemberId() {
return this.memberId; return this.memberId;
} }
public void setMemberId(Integer memberId){ public void setMemberId(Integer memberId) {
this.memberId = memberId; this.memberId = memberId;
super.addValidField("memberId"); super.addValidField("memberId");
} }
/** marketing_game_flow_no /**
*游戏号 * marketing_game_flow_no
* 游戏号
*/ */
private String marketingGameFlowNo; private String marketingGameFlowNo;
@Column(name = "marketing_game_flow_no",length = 11) @Column(name = "marketing_game_flow_no", length = 11)
public String getMarketingGameFlowNo(){ public String getMarketingGameFlowNo() {
return this.marketingGameFlowNo; return this.marketingGameFlowNo;
} }
public void setMarketingGameFlowNo(String marketingGameFlowNo){ public void setMarketingGameFlowNo(String marketingGameFlowNo) {
this.marketingGameFlowNo = marketingGameFlowNo; this.marketingGameFlowNo = marketingGameFlowNo;
super.addValidField("marketingGameFlowNo"); super.addValidField("marketingGameFlowNo");
} }
/** currency /**
*币种 * currency
* 币种
*/ */
private String currency; private String currency;
@Column(name = "currency",length = 10) @Column(name = "currency", length = 10)
public String getCurrency(){ public String getCurrency() {
return this.currency; return this.currency;
} }
public void setCurrency(String currency){ public void setCurrency(String currency) {
this.currency = currency; this.currency = currency;
super.addValidField("currency"); super.addValidField("currency");
} }
/** retain_information /**
*留资信息 * retain_information
* 留资信息
*/ */
private String retainInformation; private String retainInformation;
@Column(name = "retain_information",length = 1073741824) @Column(name = "retain_information", length = 1073741824)
public String getRetainInformation(){ public String getRetainInformation() {
return this.retainInformation; return this.retainInformation;
} }
public void setRetainInformation(String retainInformation){ public void setRetainInformation(String retainInformation) {
this.retainInformation = retainInformation; this.retainInformation = retainInformation;
super.addValidField("retainInformation"); super.addValidField("retainInformation");
} }
/** description /**
*描述 * description
* 描述
*/ */
private String description; private String description;
@Column(name = "description",length = 500) @Column(name = "description", length = 500)
public String getDescription(){ public String getDescription() {
return this.description; return this.description;
} }
public void setDescription(String description){ public void setDescription(String description) {
this.description = description; this.description = description;
super.addValidField("description"); super.addValidField("description");
} }
/** order_status /**
*支付状态: * order_status
NoPayment-待支付; * 支付状态:
Refunding-退款中; * NoPayment-待支付;
Paid-已付款; * Refunding-退款中;
Cancel-已取消; * Paid-已付款;
* Cancel-已取消;
*/ */
private String orderStatus; private String orderStatus;
@Column(name = "order_status",length = 255) @Column(name = "order_status", length = 255)
public String getOrderStatus() { public String getOrderStatus() {
return orderStatus; return orderStatus;
} }
...@@ -231,182 +262,193 @@ public class DgtoolsPayOrderModel extends BaseModelClass implements Serializable ...@@ -231,182 +262,193 @@ public class DgtoolsPayOrderModel extends BaseModelClass implements Serializable
} }
/** pay_status /**
*支付状态: * pay_status
NoPayment-待支付; * 支付状态:
Refunding-退款中; * NoPayment-待支付;
Paid-已付款; * Refunding-退款中;
Cancel-已取消; * Paid-已付款;
* Cancel-已取消;
*/ */
private String payStatus; private String payStatus;
@Column(name = "pay_status",length = 255) @Column(name = "pay_status", length = 255)
public String getPayStatus(){ public String getPayStatus() {
return this.payStatus; return this.payStatus;
} }
public void setPayStatus(String payStatus){ public void setPayStatus(String payStatus) {
this.payStatus = payStatus; this.payStatus = payStatus;
super.addValidField("payStatus"); super.addValidField("payStatus");
} }
/** pay_time /**
*付款时间 * pay_time
* 付款时间
*/ */
private java.util.Date payTime; private java.util.Date payTime;
@Column(name = "pay_time",length = 19) @Column(name = "pay_time", length = 19)
public java.util.Date getPayTime(){ public java.util.Date getPayTime() {
return this.payTime; return this.payTime;
} }
public void setPayTime(java.util.Date payTime){ public void setPayTime(java.util.Date payTime) {
this.payTime = payTime; this.payTime = payTime;
super.addValidField("payTime"); super.addValidField("payTime");
} }
/** cancel_time /**
*订单取消时间 * cancel_time
* 订单取消时间
*/ */
private java.util.Date cancelTime; private java.util.Date cancelTime;
@Column(name = "cancel_time",length = 19) @Column(name = "cancel_time", length = 19)
public java.util.Date getCancelTime(){ public java.util.Date getCancelTime() {
return this.cancelTime; return this.cancelTime;
} }
public void setCancelTime(java.util.Date cancelTime){ public void setCancelTime(java.util.Date cancelTime) {
this.cancelTime = cancelTime; this.cancelTime = cancelTime;
super.addValidField("cancelTime"); super.addValidField("cancelTime");
} }
/** corp_info_id /**
*企业号 * corp_info_id
* 企业号
*/ */
private Integer corpInfoId; private Integer corpInfoId;
@Column(name = "corp_info_id",length = 10) @Column(name = "corp_info_id", length = 10)
public Integer getCorpInfoId(){ public Integer getCorpInfoId() {
return this.corpInfoId; return this.corpInfoId;
} }
public void setCorpInfoId(Integer corpInfoId){ public void setCorpInfoId(Integer corpInfoId) {
this.corpInfoId = corpInfoId; this.corpInfoId = corpInfoId;
super.addValidField("corpInfoId"); super.addValidField("corpInfoId");
} }
/** merchant_id /**
*商家号 * merchant_id
* 商家号
*/ */
private Integer merchantId; private Integer merchantId;
@Column(name = "merchant_id",length = 10) @Column(name = "merchant_id", length = 10)
public Integer getMerchantId(){ public Integer getMerchantId() {
return this.merchantId; return this.merchantId;
} }
public void setMerchantId(Integer merchantId){ public void setMerchantId(Integer merchantId) {
this.merchantId = merchantId; this.merchantId = merchantId;
super.addValidField("merchantId"); super.addValidField("merchantId");
} }
/** is_deleted /**
*是否删除 Y 是 N 否 * is_deleted
* 是否删除 Y 是 N 否
*/ */
private String isDeleted; private String isDeleted;
@Column(name = "is_deleted",length = 1) @Column(name = "is_deleted", length = 1)
public String getIsDeleted(){ public String getIsDeleted() {
return this.isDeleted; return this.isDeleted;
} }
public void setIsDeleted(String isDeleted){ public void setIsDeleted(String isDeleted) {
this.isDeleted = isDeleted; this.isDeleted = isDeleted;
super.addValidField("isDeleted"); super.addValidField("isDeleted");
} }
/** CREATOR /**
*创建人 * CREATOR
* 创建人
*/ */
private String creator; private String creator;
@Column(name = "CREATOR",length = 11) @Column(name = "CREATOR", length = 11)
public String getCreator(){ public String getCreator() {
return this.creator; return this.creator;
} }
public void setCreator(String creator){ public void setCreator(String creator) {
this.creator = creator; this.creator = creator;
super.addValidField("creator"); super.addValidField("creator");
} }
/** CREATED_TIME /**
*创建时间 * CREATED_TIME
* 创建时间
*/ */
private java.util.Date createdTime; private java.util.Date createdTime;
@Column(name = "CREATED_TIME",length = 19) @Column(name = "CREATED_TIME", length = 19)
public java.util.Date getCreatedTime(){ public java.util.Date getCreatedTime() {
return this.createdTime; return this.createdTime;
} }
public void setCreatedTime(java.util.Date createdTime){ public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime; this.createdTime = createdTime;
super.addValidField("createdTime"); super.addValidField("createdTime");
} }
/** MODIFIER /**
*修改人 * MODIFIER
* 修改人
*/ */
private String modifier; private String modifier;
@Column(name = "MODIFIER",length = 11) @Column(name = "MODIFIER", length = 11)
public String getModifier(){ public String getModifier() {
return this.modifier; return this.modifier;
} }
public void setModifier(String modifier){ public void setModifier(String modifier) {
this.modifier = modifier; this.modifier = modifier;
super.addValidField("modifier"); super.addValidField("modifier");
} }
/** MODIFIED_TIME /**
*修改时间 * MODIFIED_TIME
* 修改时间
*/ */
private java.util.Date modifiedTime; private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME",length = 19) @Column(name = "MODIFIED_TIME", length = 19)
public java.util.Date getModifiedTime(){ public java.util.Date getModifiedTime() {
return this.modifiedTime; return this.modifiedTime;
} }
public void setModifiedTime(java.util.Date modifiedTime){ public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime; this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime"); super.addValidField("modifiedTime");
} }
/** SYS_VERSION /**
*乐观锁,版本号 * SYS_VERSION
* 乐观锁,版本号
*/ */
private Integer sysVersion; private Integer sysVersion;
@Column(name = "SYS_VERSION",length = 10) @Column(name = "SYS_VERSION", length = 10)
@Version @Version
public Integer getSysVersion(){ public Integer getSysVersion() {
return this.sysVersion; return this.sysVersion;
} }
public void setSysVersion(Integer sysVersion){ public void setSysVersion(Integer sysVersion) {
this.sysVersion = sysVersion; this.sysVersion = sysVersion;
super.addValidField("sysVersion"); super.addValidField("sysVersion");
} }
......
...@@ -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