Parcourir la source

[分账][修复]:多人分账支持

release_toaliyun_real
hupeng il y a 7 ans
Parent
révision
fdc5cd5269
4 fichiers modifiés avec 47 ajouts et 17 suppressions
  1. +1
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxCouponMerchant.java
  2. +12
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingReceiver.java
  3. +9
    -9
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java
  4. +25
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java

+ 1
- 2
mallinkService/src/main/java/com/iformall/domain/po/WxCouponMerchant.java Voir le fichier

@@ -58,7 +58,7 @@ public class WxCouponMerchant implements Serializable {
private Date updateDate; private Date updateDate;


/*状态,0 有效 1 无效**/ /*状态,0 有效 1 无效**/
@io.swagger.annotations.ApiModelProperty(value="修改时间",name="updateDate")
@io.swagger.annotations.ApiModelProperty(value="状态,0 有效 1 无效",name="status")
private Integer status; private Integer status;




@@ -116,7 +116,6 @@ public class WxCouponMerchant implements Serializable {
Id_ASC("`id` ASC"),Id_DESC("`id` DESC") Id_ASC("`id` ASC"),Id_DESC("`id` DESC")
,ProductId_ASC("`product_id` ASC"),ProductId_DESC("`product_id` DESC") ,ProductId_ASC("`product_id` ASC"),ProductId_DESC("`product_id` DESC")
,MerchantId_ASC("`merchant_id` ASC"),MerchantId_DESC("`merchant_id` DESC") ,MerchantId_ASC("`merchant_id` ASC"),MerchantId_DESC("`merchant_id` DESC")
,Parameter_ASC("`parameter` ASC"),Parameter_DESC("`description` DESC")
,CreateDate_ASC("`create_date` ASC"),CreateDate_DESC("`create_date` DESC") ,CreateDate_ASC("`create_date` ASC"),CreateDate_DESC("`create_date` DESC")
,UpdateDate_ASC("`update_date` ASC"),UpdateDate_DESC("`update_date` DESC") ,UpdateDate_ASC("`update_date` ASC"),UpdateDate_DESC("`update_date` DESC")
; ;


+ 12
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingReceiver.java Voir le fichier

@@ -80,6 +80,10 @@ public class WxProfitSharingReceiver implements Serializable {
@io.swagger.annotations.ApiModelProperty(value="分账参数,目前为分账比例(单位为万分之一)",name="parameter") @io.swagger.annotations.ApiModelProperty(value="分账参数,目前为分账比例(单位为万分之一)",name="parameter")
private String parameter; private String parameter;


/*分账金额**/
private Integer sharingAmount;


public Integer getStatus() { public Integer getStatus() {
return status; return status;
} }
@@ -165,6 +169,14 @@ public class WxProfitSharingReceiver implements Serializable {
this.parameter = parameter; this.parameter = parameter;
} }


public Integer getSharingAmount() {
return sharingAmount;
}

public void setSharingAmount(Integer sharingAmount) {
this.sharingAmount = sharingAmount;
}

public static enum Field public static enum Field
{ {
Id_ASC("`id` ASC"),Id_DESC("`id` DESC") Id_ASC("`id` ASC"),Id_DESC("`id` DESC")


+ 9
- 9
mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java Voir le fichier

@@ -183,15 +183,15 @@ public class WxCouponServiceImpl implements WxCouponService {
} }
} }


if (record.getStatus() != null) {
if (record.getStatus().equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode())) {
//下架所有投放频道
wxCouponChannelService
.updateStatusByCouponId(record.getId(), record.getTenantId(), EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode());
wxCouponSendService
.updateStatusByCouponId(record.getId(), record.getTenantId(), EnumCouponSendStatus.INVALID.getCode());
}
if (record.getStatus() != null &&
(record.getStatus().equals(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode()))) {
//下架所有投放频道
wxCouponChannelService
.updateStatusByCouponId(record.getId(), record.getTenantId(), EnumCouponChannelStatus.STATUS_TAKE_OFFF.getCode());
wxCouponSendService
.updateStatusByCouponId(record.getId(), record.getTenantId(), EnumCouponSendStatus.INVALID.getCode());
} }
record.setUpdateDate(new Date()); record.setUpdateDate(new Date());
wxCouponMapper.updateByPrimaryKeySelective(record); wxCouponMapper.updateByPrimaryKeySelective(record);


+ 25
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java Voir le fichier

@@ -131,6 +131,25 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID);
} }


//计算分账账户合法性
if (psReceiverList.size() > 1 &&
psReceiverList.stream().filter(r->(r.getParameter() == null)).count() > 0) {
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID);
}

//计算分账金额合法性
psReceiverList.stream().forEach(r->
{
if (r.getParameter() == null){
r.setSharingAmount(sharingOrderDto.getShareAmount());
} else {
r.setSharingAmount(sharingOrderDto.getShareAmount()*Integer.valueOf(r.getParameter())/10000);
}
});
if (psReceiverList.stream().mapToInt(r->r.getSharingAmount()).sum() > sharingOrderDto.getShareAmount()){
throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID);
}

//单次分账检查是否已创建分账订单 //单次分账检查是否已创建分账订单
WxProfitSharingOrder record = new WxProfitSharingOrder(); WxProfitSharingOrder record = new WxProfitSharingOrder();


@@ -149,8 +168,8 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
record.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_UNKNOWN.getCode()); record.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_UNKNOWN.getCode());
record.setCreateTime(currentDate); record.setCreateTime(currentDate);
record.setUpdateTime(currentDate); record.setUpdateTime(currentDate);
record.setPayTimeStart(currentDate);
record.setPayTimeEnd(currentDate);
record.setPayTimeStart(sharingOrderDto.getPayTimeStart());
record.setPayTimeEnd(sharingOrderDto.getPayTimeEnd());
record.setType(sharingOrderDto.getType()); record.setType(sharingOrderDto.getType());


wxProfitSharingOrderMapper.insertSelective(record); wxProfitSharingOrderMapper.insertSelective(record);
@@ -167,7 +186,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
jo.put("type",EnumProfitSharingReceiverType.getEnum(receiver.getReceiverType()).getMessage()); jo.put("type",EnumProfitSharingReceiverType.getEnum(receiver.getReceiverType()).getMessage());
jo.put("account",receiver.getReceiverAccount()); jo.put("account",receiver.getReceiverAccount());
jo.put("amount", sharingOrderDto.getShareAmount()); //temp: sharing all money with only owner
jo.put("amount", receiver.getSharingAmount());
jo.put("description",receiver.getReceiverComments()); jo.put("description",receiver.getReceiverComments());
receivers.add(jo); receivers.add(jo);


@@ -178,7 +197,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
result.setMerchantId(frecord.getMerchantId()); result.setMerchantId(frecord.getMerchantId());
result.setSharingOrderId(frecord.getId()); result.setSharingOrderId(frecord.getId());
result.setSharingReceiverId(receiver.getId()); result.setSharingReceiverId(receiver.getId());
result.setPayAmount(sharingOrderDto.getShareAmount());
result.setPayAmount(receiver.getSharingAmount());
result.setCreateTime(currentDate); result.setCreateTime(currentDate);
result.setUpdateTime(currentDate); result.setUpdateTime(currentDate);
result.setSharingStatus(EnumProfitSharingResultStatus.PROFIT_SHARING_RESULT_PENDING.getCode()); result.setSharingStatus(EnumProfitSharingResultStatus.PROFIT_SHARING_RESULT_PENDING.getCode());
@@ -409,8 +428,8 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
record.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_UNKNOWN.getCode()); record.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_UNKNOWN.getCode());
record.setCreateTime(currentDate); record.setCreateTime(currentDate);
record.setUpdateTime(currentDate); record.setUpdateTime(currentDate);
record.setPayTimeStart(currentDate);
record.setPayTimeEnd(currentDate);
record.setPayTimeStart(sharingOrderDto.getPayTimeStart());
record.setPayTimeEnd(sharingOrderDto.getPayTimeEnd());
record.setType(sharingOrderDto.getType()); record.setType(sharingOrderDto.getType());
wxProfitSharingOrderMapper.insertSelective(record); wxProfitSharingOrderMapper.insertSelective(record);
} }


Chargement…
Annuler
Enregistrer