From ded6b3d1304be1d2a8ab50c194cb9851d3a7d58e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Wed, 6 Jul 2022 09:42:33 +0800 Subject: [PATCH] task_order --- .../xm/core/service/XmTaskOrderService.java | 174 +++++++++++++++++- 1 file changed, 167 insertions(+), 7 deletions(-) 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 f896d6a2..fdf2d0fd 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 @@ -1,16 +1,23 @@ package com.xm.core.service; +import com.mdp.core.err.BizException; +import com.mdp.core.service.BaseService; +import com.mdp.core.utils.DateUtils; +import com.xm.core.entity.XmTaskOrder; +import org.apache.poi.ss.usermodel.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; -import java.util.Map; +import org.springframework.beans.BeanUtils; 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.Optional; +import java.util.stream.Collectors; -import com.xm.core.entity.XmTaskOrder; /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com 顶级模块 xm 大模块 core 小模块
@@ -20,5 +27,158 @@ import com.xm.core.entity.XmTaskOrder; public class XmTaskOrderService extends BaseService { static Logger logger =LoggerFactory.getLogger(XmTaskOrderService.class); + + @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不能为空"); + } + XmTaskOrder moOrder = this.selectOneById(orderId); + if(!payId.equals(moOrder.getPayId())) { + throw new BizException("payId-err", "参数不正确,payId与实际不匹配"); + } + + if("1".equals(moOrder.getSstatus())) { + throw new BizException("该订单已经结算"); + } + if(!"2".equals(moOrder.getStatus())) { + throw new BizException("该订单状态出错"); + } + +// if(payAt.compareTo(moOrder.getOfinalFee()) != 0) { +// throw new BizException("该订单支付金额与实际金额不符"); +// } + + //设置第三方付款号 + moOrder.setTranId(tranId); + moOrder.setPayAt(payAt); + //设置结算状态为已结算 + moOrder.setSstatus("1"); + //设置状态为已付款 + moOrder.setStatus("3"); + //设置付款确认时间 + moOrder.setPayCtime(new Date()); + + //设置结算时间 + moOrder.setSetTime(new Date()); + + + //开通模块 + //获取订单模块 + MoOrderModule params = new MoOrderModule(); + params.setOrderId(orderId); + List orderModules = moOrderModuleService.selectListByWhere(params); + + List menuModuleBranches = new ArrayList<>(); + for (MoOrderModule orderModule : orderModules) { + MenuModuleBranch menuModuleBranch = new MenuModuleBranch(); + BeanUtils.copyProperties(orderModule,menuModuleBranch); + menuModuleBranch.setBranchId(moOrder.getObranchId()); + menuModuleBranch.setModuleId(orderModule.getModuleId()); + menuModuleBranch.setModuleName(orderModule.getName()); + //模块启用 + menuModuleBranch.setStatus("1"); + menuModuleBranch.setMusers(orderModule.getMusers()); + menuModuleBranch.setStartTime(new Date()); + menuModuleBranch.setEndTime(DateUtil.offsetDay(menuModuleBranch.getStartTime(),orderModule.getDays())); + menuModuleBranch.setCtime(new Date()); + menuModuleBranch.setLtime(new Date()); + menuModuleBranch.setFeeDate(new Date()); + menuModuleBranch.setVer("1"); + menuModuleBranches.add(menuModuleBranch); + } + + moOrder.setStartTime(new Date()); + moOrder.setEndTime(DateUtil.offsetDay(moOrder.getStartTime(),moOrder.getOdays())); + if(moOrder.getPayTime()==null){ + moOrder.setPayTime(new Date()); + } + //保存订单信息 + this.updateSomeFieldByPk(moOrder); + + + List adds=new ArrayList<>(); + List updates=new ArrayList<>(); + List menuModuleBranchListDb = menuModuleBranchService.selectListByIds(menuModuleBranches.stream().map(i->map("branchId",i.getBranchId(),"moduleId",i.getModuleId())).collect(Collectors.toList())); + if(menuModuleBranchListDb==null || menuModuleBranchListDb.size()<=0){ + adds=menuModuleBranches; + }else{ + if("3".equals(moOrder.getOoper())){ + for (MenuModuleBranch edit : menuModuleBranches) { + Optional moduleBranchDb=menuModuleBranchListDb.stream().filter(i->i.getBranchId().equals(edit.getBranchId()) && i.getModuleId().equals(edit.getModuleId())).findAny(); + if(moduleBranchDb.isPresent()){ + MenuModuleBranch mdb=moduleBranchDb.get(); + mdb.setOusers(mdb.getOusers()+edit.getOusers()); + mdb.setMusers(mdb.getMusers()+edit.getMusers()); + updates.add(mdb); + }else { + adds.add(edit); + } + } + }else { + for (MenuModuleBranch edit : menuModuleBranches) { + Optional moduleBranchDb=menuModuleBranchListDb.stream().filter(i->i.getBranchId().equals(edit.getBranchId()) && i.getModuleId().equals(edit.getModuleId())).findAny(); + if(moduleBranchDb.isPresent()){ + MenuModuleBranch mdb=moduleBranchDb.get(); + if("2".equals(moOrder.getOoper())){ + edit.setEndTime(DateUtil.offsetDay(mdb.getEndTime(),moOrder.getOdays())); + } + if(mdb.getStartTime()==null){ + edit.setStartTime(new Date()); + }else { + edit.setStartTime(mdb.getStartTime()); + } + if(mdb.getCtime()==null){ + edit.setCtime(new Date()); + }else { + edit.setCtime(mdb.getCtime()); + } + edit.setLtime(new Date()); + updates.add(edit); + }else{ + adds.add(edit); + } + } + } + + } + if(updates.size()>0){ + menuModuleBranchService.batchUpdate(updates); + } + if(adds.size()>0){ + menuModuleBranchService.batchInsert(adds); + } + + BranchInterests branchInterests= branchInterestsService.selectOneById(moOrder.getObranchId()); + if(branchInterests==null){ + branchInterests=this.branchInterestsService.getDefaultBranchInterests(moOrder.getObranchId()); + branchInterests.setMaxUsers(moOrder.getOusers()); + branchInterests.setMver("1"); + branchInterests.setMaxRtime(DateUtils.format(moOrder.getEndTime(),"yyyy-MM-dd")); + branchInterestsService.insert(branchInterests); + }else { + if("3".equals(moOrder.getOoper())){ + BranchInterests branchInterestsUpdate=new BranchInterests(); + branchInterestsUpdate.setMaxUsers(branchInterests.getMaxUsers()+moOrder.getOusers()); + branchInterestsUpdate.setBranchId(moOrder.getObranchId()); + branchInterestsUpdate.setLtime(new Date()); + branchInterestsService.updateSomeFieldByPk(branchInterestsUpdate); + }else { + BranchInterests branchInterestsUpdate=new BranchInterests(); + if(branchInterests.getMaxUsers()< moOrder.getOusers()) { + branchInterestsUpdate.setMaxUsers(moOrder.getOusers()); + } + branchInterestsUpdate.setBranchId(moOrder.getObranchId()); + branchInterestsUpdate.setMver("1"); + branchInterestsUpdate.setLtime(new Date()); + branchInterests.setMaxRtime(DateUtils.format(moOrder.getEndTime(),"yyyy-MM-dd")); + branchInterestsService.updateSomeFieldByPk(branchInterestsUpdate); + } + + } + } + }