diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java index a02d534d..d7a0ff7d 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskExecuserController.java @@ -15,6 +15,7 @@ import com.xm.core.entity.XmProject; import com.xm.core.entity.XmTask; import com.xm.core.entity.XmTaskExecuser; import com.xm.core.service.*; +import com.xm.core.service.client.AcClient; import com.xm.core.service.client.MkClient; import com.xm.core.service.client.SysClient; import com.xm.core.vo.XmGroupVo; @@ -23,6 +24,7 @@ import io.swagger.annotations.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; @@ -73,8 +75,14 @@ public class XmTaskExecuserController { @Autowired MkClient mkClient; + @Autowired + AcClient acClient; + @Autowired SysClient sysClient; + + @Value(value = "${mdp.platform-branch-id:platform-branch-001}") + String platformBranchId; @Autowired @@ -528,10 +536,15 @@ public class XmTaskExecuserController { xmTaskUpdate.setId(xmTask.getId()); xmTaskUpdate.setTaskState("4"); if(needPay){ + XmTaskExecuser xmTaskExecuserDb=this.xmTaskExecuserService.selectOneById(map("taskId",xmTask.getId(),"userid",xmTask.getExecutorUserid())); + acClient.shopBalancePayToClient("plaftform-branch-001","platfrom", + xmTask.getId(),xmTask.getQuoteFinalAt(),"任务【"+xmTask.getName()+"】验收完毕,发放佣金.",xmTask.getExecutorUserid(),xmTaskExecuserDb.getExecUserBranchId()); //调用ac系统付款给服务商 xmTaskUpdate.setEtoDevTime(new Date()); xmTaskUpdate.setBidStep("7"); xmTaskUpdate.setEstate("3"); + acClient.shopBalancePayToClient(platformBranchId,"platform",xmTask.getId(),xmTask.getEfunds(), + "任务【"+xmTask.getName()+"】验收完毕,发放佣金.",xmTaskExecuserDb.getUserid(),xmTaskExecuserDb.getExecUserBranchId()); } xmTaskService.updateSomeFieldByPk(xmTaskUpdate); diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskOrderService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskOrderService.java index c8a4d9fd..9aabc8f3 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskOrderService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskOrderService.java @@ -5,6 +5,7 @@ import com.mdp.core.service.BaseService; import com.mdp.msg.client.PushNotifyMsgService; import com.xm.core.entity.XmTask; import com.xm.core.entity.XmTaskOrder; +import com.xm.core.service.client.AcClient; import org.apache.commons.lang3.time.DateUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,6 +40,11 @@ public class XmTaskOrderService extends BaseService { XmRecordService xmRecordService; + + @Autowired + AcClient acClient; + + @Transactional public void orderPaySuccess(String orderId, String payId, String prepayId, String tranId, BigDecimal payAt, String remarks) { //更新订单状态 @@ -114,9 +120,13 @@ public class XmTaskOrderService extends BaseService { this.xmTaskService.updateSomeFieldByPkAfterPaySuccess(xmTaskUpdate); if("1".equals(taskOrderDb.getBizType()) && "5".equals(xmTaskUpdate.getBidStep())){ XmTask xmTaskDb=this.xmTaskService.selectOneById(taskOrderDb.getTaskId()); + acClient.platformRecharge(xmTaskDb.getCreateUserid(),xmTaskUpdate.getEfunds(),xmTaskDb.getId(),"任务【"+xmTaskDb.getName()+"】,成功托管佣金【"+taskOrderDb.getEfunds()+"】,实际到账金额【"+payAt+"】"); + msgService.pushMsg(taskOrderDb.getObranchId(),taskOrderDb.getOuserid(),xmTaskDb.getExecutorUserid(),"2",xmTaskDb.getProjectId(),xmTaskDb.getId(),"雇主成功托管佣金【"+taskOrderDb.getEfunds()+"】,实际到账金额【"+payAt+"】,当前任务进入用户工作阶段,请尽快开展工作。"); xmRecordService.addXmTaskRecord(taskOrderDb.getProjectId(),taskOrderDb.getTaskId(),"托管佣金","成功托管佣金【"+taskOrderDb.getEfunds()+"】,实际到账金额【"+payAt+"】"); }else{ + acClient.platformRecharge(taskOrderDb.getOuserid(),payAt,taskOrderDb.getTaskId(),"成功缴纳活动费用金额【"+taskOrderDb.getFinalFee()+"】,实际到账金额【"+payAt+"】。参加的活动为【"+marketNames.stream().collect(Collectors.joining(","))+"】"); + xmRecordService.addXmTaskRecord(taskOrderDb.getProjectId(),taskOrderDb.getTaskId(),"营销活动","成功缴纳活动费用金额【"+taskOrderDb.getFinalFee()+"】,实际到账金额【"+payAt+"】。参加的活动为【"+marketNames.stream().collect(Collectors.joining(","))+"】"); } } diff --git a/xm-core/src/main/java/com/xm/core/service/client/AcClientServie.java b/xm-core/src/main/java/com/xm/core/service/client/AcClient.java similarity index 86% rename from xm-core/src/main/java/com/xm/core/service/client/AcClientServie.java rename to xm-core/src/main/java/com/xm/core/service/client/AcClient.java index a9eac99e..f8896089 100644 --- a/xm-core/src/main/java/com/xm/core/service/client/AcClientServie.java +++ b/xm-core/src/main/java/com/xm/core/service/client/AcClient.java @@ -19,7 +19,7 @@ import java.util.Map; import java.util.Set; @Service -public class AcClientServie { +public class AcClient { @Autowired CallBizService restTemplate; @@ -65,6 +65,29 @@ public class AcClientServie { return tipMap; } + /** + * 给平台充值,登记到平台账户中,用于下一步支付给第三方 + * @param payUserid 订单号 如没有,调用者自行编码一个订单号 + * @param rechargeAmount 订单总金额 如果有多次付款,即为所有子单总金额之和 + * @param refsn 关联流水号 + * @param remark 备注 + * @return + */ + public Map platformRecharge(String payUserid, BigDecimal rechargeAmount, String refsn,String remark ){ + + String urls = "/accore/accore/acct/account/platform"; + Map m=new HashMap<>(); + m.put("payUserid", payUserid); + m.put("rechargeAmount", rechargeAmount); + m.put("refsn", refsn); + m.put("remark",remark); + Map tipMap = restTemplate.postForMap(urls,m); + Tips tips= BaseUtils.mapToTips(tipMap); + if(!tips.isOk()){ + throw new BizException(tips); + } + return tipMap; + } /** * 结算商家付款给客户。不适用第三方支付、而是直接使用本系统账户余额支付。登记流水及记账一次性完成