|
|
@@ -22,6 +22,7 @@ import com.yc.ship.framework.common.util.object.BeanUtils;
|
|
|
import com.yc.ship.framework.common.util.object.ObjectUtils;
|
|
|
import com.yc.ship.framework.ip.core.utils.AreaUtils;
|
|
|
import com.yc.ship.framework.security.core.LoginUser;
|
|
|
+import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
|
|
|
import com.yc.ship.framework.tenant.core.util.TenantUtils;
|
|
|
import com.yc.ship.module.infra.api.config.ConfigApi;
|
|
|
@@ -54,6 +55,8 @@ import com.yc.ship.module.system.api.dict.dto.DictDataRespDTO;
|
|
|
import com.yc.ship.module.system.api.user.AdminUserApi;
|
|
|
import com.yc.ship.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
import com.yc.ship.module.trade.api.dto.*;
|
|
|
+import com.yc.ship.module.trade.controller.admin.order.vo.check.TradeCheckReqVO;
|
|
|
+import com.yc.ship.module.trade.controller.admin.order.vo.check.TradeCheckRespVO;
|
|
|
import com.yc.ship.module.trade.controller.admin.order.vo.order.*;
|
|
|
import com.yc.ship.module.trade.controller.admin.order.vo.otc.PrintRespVO;
|
|
|
import com.yc.ship.module.trade.controller.admin.order.vo.refund.*;
|
|
|
@@ -63,10 +66,13 @@ import com.yc.ship.module.trade.dal.dataobject.insurance.InsuranceDO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.invoice.InvoiceDO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.order.*;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
|
|
|
+import com.yc.ship.module.trade.dal.dataobject.tradeOrderaudit.TradeOrderAuditDO;
|
|
|
+import com.yc.ship.module.trade.dal.mysql.audituser.AuditUserMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.contract.ContractMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.insurance.InsuranceMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.*;
|
|
|
import com.yc.ship.module.trade.dal.mysql.orderjz.OrderJzMapper;
|
|
|
+import com.yc.ship.module.trade.dal.mysql.tradeOrderaudit.TradeOrderAuditMapper;
|
|
|
import com.yc.ship.module.trade.enums.*;
|
|
|
import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
|
|
|
import com.yc.ship.module.trade.framework.common.ThreadLocalUtil;
|
|
|
@@ -92,6 +98,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
@@ -201,6 +208,12 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
@Resource
|
|
|
private OrderJzMapper orderJzMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private AuditUserMapper auditUserMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TradeOrderAuditMapper tradeOrderAuditMapper;
|
|
|
+
|
|
|
|
|
|
public final static String AGENCY_LOGIN_INFO = "agencyLoginInfo";
|
|
|
|
|
|
@@ -569,19 +582,134 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
|
|
|
return CommonResult.error(ORDER_NOT_EXIST);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
+ @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ORDER_AUDIT)
|
|
|
public CommonResult<?> orderAudit(Long orderId, Integer auditStatus) {
|
|
|
+ TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(orderId);
|
|
|
+ if(tradeOrderDO==null){
|
|
|
+ return CommonResult.error(ORDER_NOT_EXIST);
|
|
|
+ }
|
|
|
+
|
|
|
if (auditStatus != null && auditStatus == 1) {
|
|
|
- tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
|
|
|
- .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.UNPAID.getStatus())
|
|
|
- .set(TradeOrderDO::getAuditStatus, 1)
|
|
|
- .eq(TradeOrderDO::getId, orderId)
|
|
|
- );
|
|
|
+ TradeOrderAuditDO tradeOrderAuditDO = new TradeOrderAuditDO();
|
|
|
+ tradeOrderAuditDO.setId(IdWorker.getId());
|
|
|
+ tradeOrderAuditDO.setType(tradeOrderDO.getAuditType());
|
|
|
+ LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
|
|
+ if (loginUser != null) {
|
|
|
+ tradeOrderAuditDO.setAuditUser(loginUser.getId());
|
|
|
+ }
|
|
|
+ tradeOrderAuditDO.setAuditTime(LocalDateTime.now());
|
|
|
+ //审核状态 1、通过 2、不通过
|
|
|
+ tradeOrderAuditDO.setAuditStatus(1);
|
|
|
+ tradeOrderAuditDO.setAuditCurrentStatus(tradeOrderDO.getAuditStatus() + 1);
|
|
|
+ tradeOrderAuditDO.setOrderNo(tradeOrderDO.getOrderNo());
|
|
|
+ tradeOrderAuditMapper.insert(tradeOrderAuditDO);
|
|
|
+
|
|
|
+ if(tradeOrderDO.getAuditStatus() + 1>=tradeOrderDO.getAuditType()){
|
|
|
+ tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
|
|
|
+ .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.UNPAID.getStatus())
|
|
|
+ .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
|
|
|
+ .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderDO::getId, orderId)
|
|
|
+ );
|
|
|
+ Map<String, Object> extMap = new HashMap<>();
|
|
|
+ extMap.put("result", "审核通过");
|
|
|
+ TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus(), extMap);
|
|
|
+ }else{
|
|
|
+ tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
|
|
|
+ .set(TradeOrderDO::getAuditStatus, tradeOrderDO.getAuditStatus() + 1)
|
|
|
+ .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderDO::getId, orderId)
|
|
|
+ );
|
|
|
+ Map<String, Object> extMap = new HashMap<>();
|
|
|
+ extMap.put("result", "审核通过,等待下一级审核");
|
|
|
+ TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
|
|
|
+ }
|
|
|
} else {
|
|
|
- tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
|
|
|
- .set(TradeOrderDO::getOrderStatus, TradeOrderStatusEnum.YD.getStatus())
|
|
|
- .eq(TradeOrderDO::getId, orderId)
|
|
|
- );
|
|
|
+ //审核 不通过还原到修改前订单
|
|
|
+ List<TradeOrderDO> tradeOrderDoList = tradeOrderMapper.queryOrderByLast(tradeOrderDO.getOrderNo());
|
|
|
+ if(tradeOrderDoList!=null && !tradeOrderDoList.isEmpty()){
|
|
|
+ TradeOrderDO lastTradeOrder = tradeOrderDoList.get(0);
|
|
|
+ tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
|
|
|
+ .set(TradeOrderDO::getDeleted, 1)
|
|
|
+ .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderDO::getId, orderId)
|
|
|
+ );
|
|
|
+ tradeOrderMapper.update(Wrappers.<TradeOrderDO>lambdaUpdate()
|
|
|
+ .set(TradeOrderDO::getDeleted, 0)
|
|
|
+ .set(TradeOrderDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderDO::getId, lastTradeOrder.getId())
|
|
|
+ );
|
|
|
+ tradeDetailMapper.update(Wrappers.<TradeDetailDO>lambdaUpdate()
|
|
|
+ .set(TradeDetailDO::getDeleted, 1)
|
|
|
+ .set(TradeDetailDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeDetailDO::getOrderId, orderId)
|
|
|
+ );
|
|
|
+
|
|
|
+ tradeDetailMapper.update(Wrappers.<TradeDetailDO>lambdaUpdate()
|
|
|
+ .set(TradeDetailDO::getDeleted, 0)
|
|
|
+ .set(TradeDetailDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeDetailDO::getOrderId, lastTradeOrder.getId())
|
|
|
+ );
|
|
|
+ tradeDetailBaseMapper.update(Wrappers.<TradeDetailBaseDO>lambdaUpdate()
|
|
|
+ .set(TradeDetailBaseDO::getDeleted, 1)
|
|
|
+ .set(TradeDetailBaseDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeDetailBaseDO::getOrderId, orderId)
|
|
|
+ );
|
|
|
+ tradeDetailBaseMapper.update(Wrappers.<TradeDetailBaseDO>lambdaUpdate()
|
|
|
+ .set(TradeDetailBaseDO::getDeleted, 0)
|
|
|
+ .set(TradeDetailBaseDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeDetailBaseDO::getOrderId, lastTradeOrder.getId())
|
|
|
+ );
|
|
|
+ tradeOrderCountryMapper.update(new LambdaUpdateWrapper<TradeOrderCountryDO>()
|
|
|
+ .set(TradeOrderCountryDO::getDeleted, 1)
|
|
|
+ .set(TradeOrderCountryDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderCountryDO::getOrderId, orderId)
|
|
|
+ );
|
|
|
+ tradeOrderRoomModelMapper.update(new LambdaUpdateWrapper<TradeOrderRoomModelDO>()
|
|
|
+ .set(TradeOrderRoomModelDO::getDeleted, 1)
|
|
|
+ .set(TradeOrderRoomModelDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderRoomModelDO::getOrderId, orderId)
|
|
|
+ );
|
|
|
+ tradeOrderFloorMapper.update(new LambdaUpdateWrapper<TradeOrderFloorDO>()
|
|
|
+ .set(TradeOrderFloorDO::getDeleted, 1)
|
|
|
+ .set(TradeOrderFloorDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderFloorDO::getOrderId, orderId)
|
|
|
+ );
|
|
|
+
|
|
|
+ tradeOrderCountryMapper.update(new LambdaUpdateWrapper<TradeOrderCountryDO>()
|
|
|
+ .set(TradeOrderCountryDO::getDeleted, 0)
|
|
|
+ .set(TradeOrderCountryDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderCountryDO::getOrderId, lastTradeOrder.getId())
|
|
|
+ );
|
|
|
+ tradeOrderRoomModelMapper.update(new LambdaUpdateWrapper<TradeOrderRoomModelDO>()
|
|
|
+ .set(TradeOrderRoomModelDO::getDeleted, 0)
|
|
|
+ .set(TradeOrderRoomModelDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderRoomModelDO::getOrderId, lastTradeOrder.getId())
|
|
|
+ );
|
|
|
+ tradeOrderFloorMapper.update(new LambdaUpdateWrapper<TradeOrderFloorDO>()
|
|
|
+ .set(TradeOrderFloorDO::getDeleted, 0)
|
|
|
+ .set(TradeOrderFloorDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderFloorDO::getOrderId, lastTradeOrder.getId())
|
|
|
+ );
|
|
|
+
|
|
|
+ tradeOrderTotalMapper.update(new LambdaUpdateWrapper<TradeOrderTotalDO>()
|
|
|
+ .set(TradeOrderTotalDO::getDeleted, 1)
|
|
|
+ .set(TradeOrderTotalDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderTotalDO::getOldOrderId, orderId)
|
|
|
+ );
|
|
|
+ tradeOrderTotalMapper.update(new LambdaUpdateWrapper<TradeOrderTotalDO>()
|
|
|
+ .set(TradeOrderTotalDO::getDeleted, 0)
|
|
|
+ .set(TradeOrderTotalDO::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(TradeOrderTotalDO::getOldOrderId, lastTradeOrder.getId())
|
|
|
+ );
|
|
|
+
|
|
|
+ Map<String, Object> extMap = new HashMap<>();
|
|
|
+ extMap.put("result", "审核不通过");
|
|
|
+ TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), tradeOrderDO.getOrderStatus(), extMap);
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
return CommonResult.success("审核成功");
|
|
|
}
|