diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskBidOrderController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskBidOrderController.java
index 8fa6a651..ad43836a 100644
--- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskBidOrderController.java
+++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskBidOrderController.java
@@ -1,32 +1,41 @@
package com.xm.core.ctrl;
-import java.util.*;
-import java.util.stream.Collectors;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import io.swagger.annotations.*;
-
-import static com.mdp.core.utils.ResponseHelper.*;
-import static com.mdp.core.utils.BaseUtils.*;
+import com.alibaba.fastjson.JSON;
import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
-import com.mdp.mybatis.PageUtils;
-import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.NumberUtil;
+import com.mdp.core.utils.RequestUtils;
+import com.mdp.core.utils.ResponseHelper;
+import com.mdp.meta.client.entity.ItemVo;
+import com.mdp.meta.client.service.ItemService;
+import com.mdp.msg.client.PushNotifyMsgService;
+import com.mdp.mybatis.PageUtils;
import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils;
+import com.mdp.swagger.ApiEntityParams;
+import com.xm.core.entity.XmTask;
+import com.xm.core.entity.XmTaskBidOrder;
+import com.xm.core.service.XmTaskBidOrderService;
+import com.xm.core.service.XmTaskService;
+import com.xm.core.vo.AddXmTaskBidOrderVo;
import io.swagger.annotations.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
-import com.xm.core.service.XmTaskBidOrderService;
-import com.xm.core.entity.XmTaskBidOrder;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import static com.mdp.core.utils.BaseUtils.toMap;
+import static com.mdp.core.utils.ResponseHelper.failed;
/**
* url编制采用rest风格,如对xm_task_bid_order 任务相关费用订单表的操作有增删改查,对应的url分别为:
@@ -42,6 +51,18 @@ public class XmTaskBidOrderController {
@Autowired
private XmTaskBidOrderService xmTaskBidOrderService;
+
+ @Autowired
+ XmTaskService xmTaskService;
+
+ @Autowired
+ ItemService itemService;
+
+ @Autowired
+ PushNotifyMsgService msgService;
+
+ @Autowired
+ RedisTemplate redisTemplate;
Map fieldsMap = toMap(new XmTaskBidOrder());
@@ -72,225 +93,189 @@ public class XmTaskBidOrderController {
m.put("tips", tips);
return m;
}
-
-
-
- /**
+
+
+
+ @ApiOperation( value = "计算订单金额",notes=" ")
+ @ApiResponses({
+ @ApiResponse(code = 200,response= AddXmTaskBidOrderVo.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
+ })
+ @RequestMapping(value="/calcOrder",method= RequestMethod.GET)
+ public Map calcOrder( AddXmTaskBidOrderVo xmTaskBidOrder) {
+ xmTaskBidOrder.setCalc(true);
+ return addXmTaskBidOrder(xmTaskBidOrder);
+ }
+
@ApiOperation( value = "新增一条任务相关费用订单表信息",notes=" ")
@ApiResponses({
- @ApiResponse(code = 200,response=XmTaskBidOrder.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
- })
+ @ApiResponse(code = 200,response= XmTaskBidOrder.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
+ })
@RequestMapping(value="/add",method=RequestMethod.POST)
- public Map addXmTaskBidOrder(@RequestBody XmTaskBidOrder xmTaskBidOrder) {
+ public Map addXmTaskBidOrder(@RequestBody AddXmTaskBidOrderVo bidOrderVo) {
Map m = new HashMap<>();
Tips tips=new Tips("成功新增一条数据");
try{
- boolean createPk=false;
- if(!StringUtils.hasText(xmTaskBidOrder.getId())) {
- createPk=true;
- xmTaskBidOrder.setId(xmTaskBidOrderService.createKey("id"));
+ if(!StringUtils.hasText(bidOrderVo.getTaskId())){
+ return ResponseHelper.failed("taskId-0","任务编号不能为空");
+ }
+ XmTask xmTaskDb=this.xmTaskService.selectOneById(bidOrderVo.getTaskId());
+ if(xmTaskDb==null){
+ return ResponseHelper.failed("data-0","任务已不存在");
+ }
+ if(!"1".equals(xmTaskDb.getTaskOut())){
+ return ResponseHelper.failed("taskOut-0","不是外包任务,无须付款");
+ }
+
+ if(!"1".equals(xmTaskDb.getCrowd())){
+ return ResponseHelper.failed("taskOut-0","不是众包任务,无须付款");
}
- if(createPk==false){
- if(xmTaskBidOrderService.selectOneObject(xmTaskBidOrder) !=null ){
- return failed("pk-exists","编号重复,请修改编号再提交");
- }
- }
- xmTaskBidOrderService.insert(xmTaskBidOrder);
- m.put("data",xmTaskBidOrder);
- }catch (BizException e) {
+ if(!"2".equals(xmTaskDb.getBidStep()) ){
+ return ResponseHelper.failed("bidStep-no-2","当前任务不是投标阶段,无须购买投标直通车");
+ }
+ User user= LoginUtils.getCurrentUserInfo();
+ bidOrderVo.setExecUserBranchId(user.getBranchId());
+ bidOrderVo.setUsername(user.getUsername());
+ bidOrderVo.setBranchId(xmTaskDb.getCbranchId());
+ bidOrderVo.setProjectId(xmTaskDb.getProjectId());
+ XmTaskBidOrder order=new XmTaskBidOrder();
+ order.setId(this.xmTaskBidOrderService.createKey("id"));
+ order.setTaskId(xmTaskDb.getId());
+ order.setOuserid(user.getUserid());
+ order.setObranchId(user.getBranchId());
+ order.setProjectId(xmTaskDb.getProjectId());
+ order.setTaskBudgetAt(xmTaskDb.getBudgetAt());
+ order.setName(xmTaskDb.getName());
+ order.setBizType("1");
+ BigDecimal originFee=BigDecimal.ZERO;
+ ItemVo itemVo=itemService.getDict("sysParam","crowd_task_bid_sfee");
+ int bidFeeRate=NumberUtil.getInteger(itemVo.getExtInfo("bidFeeRate").getValue(),0);
+ originFee=originFee.add(order.getTaskBudgetAt().multiply(BigDecimal.valueOf(bidFeeRate).multiply(BigDecimal.valueOf(100))));
+
+ order.setName("购买投标直通车,任务【"+xmTaskDb.getName()+"】");
+ order.setRemark(order.getName());
+
+ if(order.getOthFee()==null){
+ order.setOthFee(BigDecimal.ZERO);
+ }
+ order.setOriginFee(originFee);
+ order.setFinalFee(originFee.add(order.getOthFee()));
+ order.setPayType(bidOrderVo.getPayType());
+ order.setOstatus("2");
+ order.setPayStatus("0");
+ order.setBizType("1");
+ order.setCtime(new Date());
+ order.setLtime(new Date());
+ if(!bidOrderVo.isCalc()){
+ xmTaskBidOrderService.insert(order);
+ redisTemplate.opsForValue().set(XmTaskBidOrder.class.getSimpleName()+"-"+order.getId(), JSON.toJSONString(bidOrderVo),1, TimeUnit.HOURS);
+ String remark="投标直通车费用";
+ msgService.pushMsg(user,user.getUserid(),user.getUsername(),"2",order.getProjectId(),order.getTaskId(),"您为任务支付"+remark+order.getFinalFee()+"元订单提交成功,请及时付款");
+ }
+ m.put("data",order);
+ }catch (BizException e) {
tips=e.getTips();
logger.error("",e);
}catch (Exception e) {
tips.setFailureMsg(e.getMessage());
logger.error("",e);
- }
+ }
m.put("tips", tips);
return m;
}
- */
-
- /**
- @ApiOperation( value = "删除一条任务相关费用订单表信息",notes=" ")
+
+
+ @ApiOperation( value = "通过Id获取订单",notes=" ")
@ApiResponses({
- @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}")
- })
- @RequestMapping(value="/del",method=RequestMethod.POST)
- public Map delXmTaskBidOrder(@RequestBody XmTaskBidOrder xmTaskBidOrder){
+ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
+ })
+ @RequestMapping(value="/getOrderById",method=RequestMethod.GET)
+ public Map getOrderById(String orderId) {
Map m = new HashMap<>();
- Tips tips=new Tips("成功删除一条数据");
- try{
- if(!StringUtils.hasText(xmTaskBidOrder.getId())) {
- return failed("pk-not-exists","请上送主键参数id");
- }
- XmTaskBidOrder xmTaskBidOrderDb = xmTaskBidOrderService.selectOneObject(xmTaskBidOrder);
- if( xmTaskBidOrderDb == null ){
- return failed("data-not-exists","数据不存在,无法删除");
- }
- xmTaskBidOrderService.deleteByPk(xmTaskBidOrder);
- }catch (BizException e) {
- tips=e.getTips();
- logger.error("",e);
- }catch (Exception e) {
- tips.setFailureMsg(e.getMessage());
- logger.error("",e);
- }
+ Tips tips=new Tips("查询成功");
+ if(!StringUtils.hasText(orderId)) {
+ return failed("data-0","订单Id不能为空");
+ }
+ XmTaskBidOrder moOrder = xmTaskBidOrderService.selectOneById(orderId);
m.put("tips", tips);
+ m.put("data", moOrder);
return m;
}
- */
-
- /**
- @ApiOperation( value = "根据主键修改一条任务相关费用订单表信息",notes=" ")
+
+ @ApiOperation( value = "通过Id获取订单",notes=" ")
@ApiResponses({
- @ApiResponse(code = 200,response=XmTaskBidOrder.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
- })
- @RequestMapping(value="/edit",method=RequestMethod.POST)
- public Map editXmTaskBidOrder(@RequestBody XmTaskBidOrder xmTaskBidOrder) {
+ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
+ })
+ @RequestMapping(value="/orderPaySuccess",method=RequestMethod.POST)
+ public Map orderPaySuccess(@RequestBody XmTaskBidOrder order) {
Map m = new HashMap<>();
- Tips tips=new Tips("成功更新一条数据");
- try{
- if(!StringUtils.hasText(xmTaskBidOrder.getId())) {
- return failed("pk-not-exists","请上送主键参数id");
- }
- XmTaskBidOrder xmTaskBidOrderDb = xmTaskBidOrderService.selectOneObject(xmTaskBidOrder);
- if( xmTaskBidOrderDb == null ){
- return failed("data-not-exists","数据不存在,无法修改");
- }
- xmTaskBidOrderService.updateSomeFieldByPk(xmTaskBidOrder);
- m.put("data",xmTaskBidOrder);
- }catch (BizException e) {
- tips=e.getTips();
+ try {
+ Tips tips=new Tips("操作成功");
+ if(!StringUtils.hasText(order.getId())) {
+ return failed("data-0","订单Id不能为空");
+ }
+ String flag= (String) this.redisTemplate.opsForValue().get("pay-notify-success-"+order.getPayId());
+ if(!StringUtils.hasText(flag)|| !"1".equals(flag)){
+ return failed("pay-notify-success-flag-0","验证码错误");
+ }
+ xmTaskBidOrderService.orderPaySuccess(order.getId(),order.getPayId(),order.getPrepayId(), order.getTranId(), order.getPayAt(), order.getRemark());
+
+ m.put("tips", tips);
+ return m;
+ }catch (BizException e) {
logger.error("",e);
- }catch (Exception e) {
- tips.setFailureMsg(e.getMessage());
+ return failed("data-0",e.getMessage());
+ } catch (Exception e) {
logger.error("",e);
- }
- m.put("tips", tips);
- return m;
+ return failed("data-0", "开通模块失败");
+ }
}
- */
- /**
- @ApiOperation( value = "批量修改某些字段",notes="")
- @ApiEntityParams( value = XmTaskBidOrder.class, props={ }, remark = "任务相关费用订单表", paramType = "body" )
+ @ApiOperation( value = "订单支付取消判断",notes=" ")
@ApiResponses({
- @ApiResponse(code = 200,response=XmTaskBidOrder.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}")
+ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
- @RequestMapping(value="/editSomeFields",method=RequestMethod.POST)
- public Map editSomeFields( @ApiIgnore @RequestBody Map xmTaskBidOrderMap) {
+ @RequestMapping(value="/payCancel",method=RequestMethod.POST)
+ public Map payCancel(@RequestBody XmTaskBidOrder order) {
Map m = new HashMap<>();
- Tips tips=new Tips("成功更新一条数据");
- try{
- List ids= (List) xmTaskBidOrderMap.get("ids");
- if(ids==null || ids.size()==0){
- return failed("ids-0","ids不能为空");
- }
-
- Set fields=new HashSet<>();
- fields.add("id");
- for (String fieldName : xmTaskBidOrderMap.keySet()) {
- if(fields.contains(fieldName)){
- return failed(fieldName+"-no-edit",fieldName+"不允许修改");
- }
- }
- Set fieldKey=xmTaskBidOrderMap.keySet().stream().filter(i-> fieldsMap.containsKey(i)).collect(Collectors.toSet());
- fieldKey=fieldKey.stream().filter(i->!StringUtils.isEmpty(xmTaskBidOrderMap.get(i) )).collect(Collectors.toSet());
-
- if(fieldKey.size()<=0) {
- return failed("fieldKey-0","没有需要更新的字段");
- }
- XmTaskBidOrder xmTaskBidOrder = fromMap(xmTaskBidOrderMap,XmTaskBidOrder.class);
- List xmTaskBidOrdersDb=xmTaskBidOrderService.selectListByIds(ids);
- if(xmTaskBidOrdersDb==null ||xmTaskBidOrdersDb.size()==0){
- return failed("data-0","记录已不存在");
+ try {
+ Tips tips=new Tips("操作成功");
+ if(!StringUtils.hasText(order.getId())) {
+ return failed("data-0","订单Id不能为空");
}
- List can=new ArrayList<>();
- List no=new ArrayList<>();
- User user = LoginUtils.getCurrentUserInfo();
- for (XmTaskBidOrder xmTaskBidOrderDb : xmTaskBidOrdersDb) {
- Tips tips2 = new Tips("检查通过");
- if(!tips2.isOk()){
- no.add(xmTaskBidOrderDb);
- }else{
- can.add(xmTaskBidOrderDb);
- }
+ String flag= (String) this.redisTemplate.opsForValue().get("pay-notify-cancel-"+order.getPayId());
+ if(!StringUtils.hasText(flag)|| !"1".equals(flag)){
+ return failed("pay-notify-cancel-flag-0","验证码错误");
}
- if(can.size()>0){
- xmTaskBidOrderMap.put("ids",can.stream().map(i->i.getId()).collect(Collectors.toList()));
- xmTaskBidOrderService.editSomeFields(xmTaskBidOrderMap);
- }
- List msgs=new ArrayList<>();
- if(can.size()>0){
- msgs.add(String.format("成功更新以下%s条数据",can.size()));
- }
- if(no.size()>0){
- msgs.add(String.format("以下%s个数据无权限更新",no.size()));
- }
- if(can.size()>0){
- tips.setOkMsg(msgs.stream().collect(Collectors.joining()));
- }else {
- tips.setFailureMsg(msgs.stream().collect(Collectors.joining()));
- }
- //m.put("data",xmMenu);
+ this.xmTaskBidOrderService.payCancel(order.getId(),order.getPayId(), order.getRemark());
+ m.put("tips", tips);
+ return m;
}catch (BizException e) {
- tips=e.getTips();
logger.error("",e);
- }catch (Exception e) {
- tips.setFailureMsg(e.getMessage());
+ return failed("data-0",e.getMessage());
+ } catch (Exception e) {
logger.error("",e);
+ return failed("data-0", "付款取消操作失败");
}
- m.put("tips", tips);
- return m;
}
- */
-
- /**
- @ApiOperation( value = "根据主键列表批量删除任务相关费用订单表信息",notes=" ")
+ @ApiOperation( value = "修改订单的第三方流水号",notes=" ")
@ApiResponses({
- @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
- })
- @RequestMapping(value="/batchDel",method=RequestMethod.POST)
- public Map batchDelXmTaskBidOrder(@RequestBody List xmTaskBidOrders) {
+ @ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
+ })
+ @RequestMapping(value="/updatePrepayId",method=RequestMethod.POST)
+ public Map updatePrepayId(@RequestBody XmTaskBidOrder order) {
Map m = new HashMap<>();
- Tips tips=new Tips("成功删除");
- try{
- if(xmTaskBidOrders.size()<=0){
- return failed("data-0","请上送待删除数据列表");
- }
- List datasDb=xmTaskBidOrderService.selectListByIds(xmTaskBidOrders.stream().map(i-> i.getId() ).collect(Collectors.toList()));
-
- List can=new ArrayList<>();
- List no=new ArrayList<>();
- for (XmTaskBidOrder data : datasDb) {
- if(true){
- can.add(data);
- }else{
- no.add(data);
- }
- }
- List msgs=new ArrayList<>();
- if(can.size()>0){
- xmTaskBidOrderService.batchDelete(can);
- msgs.add(String.format("成功删除%s条数据.",can.size()));
- }
-
- if(no.size()>0){
- msgs.add(String.format("以下%s条数据不能删除.【%s】",no.size(),no.stream().map(i-> i.getId() ).collect(Collectors.joining(","))));
- }
- if(can.size()>0){
- tips.setOkMsg(msgs.stream().collect(Collectors.joining()));
- }else {
- tips.setFailureMsg(msgs.stream().collect(Collectors.joining()));
- }
- }catch (BizException e) {
- tips=e.getTips();
- logger.error("",e);
- }catch (Exception e) {
- tips.setFailureMsg(e.getMessage());
- logger.error("",e);
- }
- m.put("tips", tips);
- return m;
- }
- */
+ Tips tips=new Tips("查询成功");
+ if(!StringUtils.hasText(order.getId())) {
+ return failed("data-0","订单Id不能为空");
+ }
+ XmTaskBidOrder moOrder = new XmTaskBidOrder();
+ moOrder.setId(order.getId());
+ moOrder.setPayId(order.getPayId());
+ moOrder.setPrepayId(order.getPrepayId());
+ moOrder.setPayTime(new Date());
+ xmTaskBidOrderService.updateSomeFieldByPk(moOrder);
+ m.put("tips", tips);
+ m.put("data", moOrder);
+ return m;
+ }
}
diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskOrderController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskOrderController.java
index 87bb8a56..cb684835 100644
--- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskOrderController.java
+++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskOrderController.java
@@ -457,7 +457,7 @@ public class XmTaskOrderController {
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}")
})
@RequestMapping(value="/getOrderById",method=RequestMethod.GET)
- public Map batchDelXmTaskOrder(String orderId) {
+ public Map getOrderById(String orderId) {
Map m = new HashMap<>();
Tips tips=new Tips("查询成功");
if(!StringUtils.hasText(orderId)) {
diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskBidOrderService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskBidOrderService.java
index 8675d4a4..7bd5c9f0 100644
--- a/xm-core/src/main/java/com/xm/core/service/XmTaskBidOrderService.java
+++ b/xm-core/src/main/java/com/xm/core/service/XmTaskBidOrderService.java
@@ -1,16 +1,29 @@
package com.xm.core.service;
+import com.alibaba.fastjson.JSON;
+import com.mdp.core.err.BizException;
+import com.mdp.core.service.BaseService;
+import com.mdp.msg.client.PushNotifyMsgService;
+import com.xm.core.entity.XmTask;
+import com.xm.core.entity.XmTaskBidOrder;
+import com.xm.core.service.client.AcClient;
+import com.xm.core.vo.AddXmTaskBidOrderVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.List;
-import java.util.Map;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
-import com.mdp.core.service.BaseService;
-import static com.mdp.core.utils.BaseUtils.*;
-import com.mdp.core.entity.Tips;
-import com.mdp.core.err.BizException;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
-import com.xm.core.entity.XmTaskBidOrder;
/**
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com 顶级模块 xm 大模块 core 小模块
@@ -20,5 +33,90 @@ import com.xm.core.entity.XmTaskBidOrder;
public class XmTaskBidOrderService extends BaseService {
static Logger logger =LoggerFactory.getLogger(XmTaskBidOrderService.class);
+ @Autowired
+ XmTaskService xmTaskService;
+
+ @Autowired
+ PushNotifyMsgService msgService;
+
+ @Autowired
+ XmRecordService xmRecordService;
+
+ @Autowired
+ XmTaskExecuserService execuserService;
+
+ @Autowired
+ RedisTemplate redisTemplate;
+
+
+
+ @Autowired
+ AcClient acClient;
+
+
+ @Transactional
+ public void orderPaySuccess(String orderId, String payId, String prepayId, String tranId, BigDecimal payAt, String remarks) {
+ //更新订单状态
+
+ if (!StringUtils.hasText(payId)) {
+ throw new BizException("payId-0", "参数不正确,payId不能为空");
+ }
+ XmTaskBidOrder taskOrderDb = this.selectOneById(orderId);
+ XmTask xmTaskUpdate=new XmTask();
+ xmTaskUpdate.setId(taskOrderDb.getTaskId());
+ if (!payId.equals(taskOrderDb.getPayId())) {
+ throw new BizException("payId-err", "参数不正确,payId与实际不匹配");
+ }
+ if (!"2".equals(taskOrderDb.getOstatus())) {
+ throw new BizException("该订单状态出错");
+ }
+ XmTaskBidOrder order=new XmTaskBidOrder();
+ //设置第三方付款号
+ order.setTranId(tranId);
+ order.setPayAt(payAt);
+ //设置结算状态为已结算
+ order.setPayStatus("1");
+ //设置状态为已付款
+ order.setOstatus("3");
+ //设置付款确认时间
+ order.setPayTime(new Date());
+
+ List marketNames=new ArrayList<>();
+ order.setId(taskOrderDb.getId() );
+
+
+ String json= (String) redisTemplate.opsForValue().get(XmTaskBidOrder.class.getSimpleName()+"-"+orderId);
+ AddXmTaskBidOrderVo bidOrderVo=JSON.parseObject(json,AddXmTaskBidOrderVo.class);
+ execuserService.addExecuser(bidOrderVo,true);
+
+ BeanUtils.copyProperties(order,xmTaskUpdate);
+ xmTaskUpdate.setId(taskOrderDb.getTaskId());
+ //托管资金后用户开始工作
+ if("1".equals(taskOrderDb.getBizType()) && "2".equals(xmTaskUpdate.getEstate()) && "1".equals(taskOrderDb.getEstate())){
+ xmTaskUpdate.setBidStep("5");
+ xmTaskUpdate.setEfunds(payAt);
+ }
+ this.updateSomeFieldByPk(order);
+ if("1".equals(taskOrderDb.getBizType()) && "5".equals(xmTaskUpdate.getBidStep())){
+ XmTask xmTaskDb=this.xmTaskService.selectOneById(taskOrderDb.getTaskId());
+ 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{
+
+ xmRecordService.addXmTaskRecord(taskOrderDb.getProjectId(),taskOrderDb.getTaskId(),"营销活动","成功缴纳活动费用金额【"+taskOrderDb.getFinalFee()+"】,实际到账金额【"+payAt+"】。参加的活动为【"+marketNames.stream().collect(Collectors.joining(","))+"】");
+ }
+ }
+ public void payCancel(String orderId, String payId, String remark) {
+ XmTaskBidOrder orderDb = this.selectOneById(orderId);
+ if(StringUtils.isEmpty(orderDb.getPayId()) ||orderDb.getPayId().equals(payId)){
+ XmTaskBidOrder orderUpdate=new XmTaskBidOrder();
+ orderUpdate.setId(orderId);
+ orderUpdate.setRemark(remark);
+ orderUpdate.setPayStatus("2");
+ orderUpdate.setLtime(new Date());
+ super.updateSomeFieldByPk(orderUpdate);
+ }
+ }
+
}
diff --git a/xm-core/src/main/java/com/xm/core/vo/AddXmTaskBidOrderVo.java b/xm-core/src/main/java/com/xm/core/vo/AddXmTaskBidOrderVo.java
new file mode 100644
index 00000000..ad09ada7
--- /dev/null
+++ b/xm-core/src/main/java/com/xm/core/vo/AddXmTaskBidOrderVo.java
@@ -0,0 +1,28 @@
+package com.xm.core.vo;
+
+import com.xm.core.entity.XmTaskExecuser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 组织 com 顶级模块 xm 大模块 core 小模块
+ * 实体 XmTaskOrder所有属性名:
+ * "userid","用户编号","branchId","公司ID-下单客户对应的企业","ostatus","订单状态0-初始,1-待确认,2-待付款,3-已付款,4-已完成,5-已取消-未付款前可取消,取消后可删除,6-退单-退单后变为已取消,8已关闭-售后完成后可以关闭订单","ctime","创建时间","ltime","更新时间","payType","支付方式","payStatus","支付状态0待付款,1已付款","payTime","支付时间","prepayId","第三方支付订单编号","id","订单编号","finalFee","最终总费用=origin_fee","othFee","其它费用","originFee","原始价格=top_fee+urgent_fee+crm_sup_fee+hot_fee+efunds+share_fee","payAt","最终付款金额-客户付款后回填","payAuthId","支付授权码","payOpenid","支付账户对应的第三方openid,注意,下单根付款不一定是同一个人","payUserid","付款用户编号","payUsername","付款用户名称","discount","折扣率0-199","topFee","置顶费用","topStime","置顶开始时间","topEtime","置顶结束时间","hotFee","热搜费用","hotStime","热搜开始时间","hotEtime","热搜结束时间","top","是否置顶0否1待付款2已开通3已过期","hot","是否热搜0否1待付款2已开通3已过期","crmSupFee","客服包办费用","urgentFee","加急费用","urgent","是否加急0否1待付款2已开通3已过期","crmSup","是否客服包办0否1待付款2已开通3已过期","efunds","托管金额","estate","资金托管状况0-无须托管,1-待付款,2-已托管资金,3-已付款给服务商,4-已退款","etoPlatTime","托管资金付款给平台的时间","etoDevTime","托管资金支付给服务商的时间","ebackTime","托管资金退回甲方时间","taskId","任务编号","topDays","置顶天数","hotDays","热搜天数","urgentDays","加急天数","urgentStime","加急开始时间","urgentEtime","加急结束时间","calcStatus","定时检查日期是否已过期,已过期则取消任务中的置顶、加急、热搜状态计算状态0-无须计算,1-本周期已计算待下周期计算,2-结束","calcTime","计算时间","oshare","是否开启分享赚0否1待付款2已开通3已过期","shareFee","分享赚佣金";
+ * 当前主键(包括多主键):
+ * id;
+ */
+ @Data
+@ApiModel(description="任务相关费用订单表")
+public class AddXmTaskBidOrderVo extends XmTaskExecuser implements java.io.Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+
+ @ApiModelProperty(notes="付款方式1微信2支付宝",allowEmptyValue=true,example="",allowableValues="")
+ String payType;
+
+ boolean calc=false;
+
+
+}
\ No newline at end of file