|
|
|
@@ -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); |
|
|
|
} |
|
|
|
|