Просмотр исходного кода

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

release_toaliyun_real
hupeng 7 лет назад
Родитель
Сommit
fdc5cd5269
4 измененных файлов: 47 добавлений и 17 удалений
  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 Просмотреть файл

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

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


@@ -116,7 +116,6 @@ public class WxCouponMerchant implements Serializable {
Id_ASC("`id` ASC"),Id_DESC("`id` DESC")
,ProductId_ASC("`product_id` ASC"),ProductId_DESC("`product_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")
,UpdateDate_ASC("`update_date` ASC"),UpdateDate_DESC("`update_date` DESC")
;


+ 12
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingReceiver.java Просмотреть файл

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

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


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

public Integer getSharingAmount() {
return sharingAmount;
}

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

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


+ 9
- 9
mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java Просмотреть файл

@@ -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());
wxCouponMapper.updateByPrimaryKeySelective(record);


+ 25
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java Просмотреть файл

@@ -131,6 +131,25 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
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();

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

wxProfitSharingOrderMapper.insertSelective(record);
@@ -167,7 +186,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
JSONObject jo = new JSONObject();
jo.put("type",EnumProfitSharingReceiverType.getEnum(receiver.getReceiverType()).getMessage());
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());
receivers.add(jo);

@@ -178,7 +197,7 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
result.setMerchantId(frecord.getMerchantId());
result.setSharingOrderId(frecord.getId());
result.setSharingReceiverId(receiver.getId());
result.setPayAmount(sharingOrderDto.getShareAmount());
result.setPayAmount(receiver.getSharingAmount());
result.setCreateTime(currentDate);
result.setUpdateTime(currentDate);
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.setCreateTime(currentDate);
record.setUpdateTime(currentDate);
record.setPayTimeStart(currentDate);
record.setPayTimeEnd(currentDate);
record.setPayTimeStart(sharingOrderDto.getPayTimeStart());
record.setPayTimeEnd(sharingOrderDto.getPayTimeEnd());
record.setType(sharingOrderDto.getType());
wxProfitSharingOrderMapper.insertSelective(record);
}


Загрузка…
Отмена
Сохранить