|
|
@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.yc.ship.framework.common.exception.ErrorCode;
|
|
|
import com.yc.ship.framework.common.pojo.PageResult;
|
|
|
import com.yc.ship.framework.common.util.object.BeanUtils;
|
|
|
import com.yc.ship.framework.security.core.LoginUser;
|
|
|
@@ -20,9 +21,11 @@ import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
|
|
|
import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.OrderJzDetailPageReqVO;
|
|
|
import com.yc.ship.module.trade.controller.admin.orderjzdetail.vo.OrderJzDetailSaveReqVO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
|
|
|
+import com.yc.ship.module.trade.dal.dataobject.order.TradeVisitorDO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.orderjz.OrderJzDO;
|
|
|
import com.yc.ship.module.trade.dal.dataobject.orderjzdetail.OrderJzDetailDO;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
|
|
|
+import com.yc.ship.module.trade.dal.mysql.order.TradeVisitorMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.orderjz.OrderJzMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.orderjzdetail.OrderJzDetailMapper;
|
|
|
import com.yc.ship.module.trade.framework.common.Base64Util;
|
|
|
@@ -62,6 +65,9 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
|
|
|
@Resource
|
|
|
private OrderJzDetailMapper orderJzDetailMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private TradeVisitorMapper tradeVisitorMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public Long createOrderJzDetail(OrderJzDetailSaveReqVO createReqVO) {
|
|
|
// 插入
|
|
|
@@ -74,6 +80,44 @@ public class OrderJzDetailServiceImpl implements OrderJzDetailService {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ @TenantIgnore
|
|
|
+ public void validateAndFillVisitorId(List<OrderJzDetailSaveReqVO> createReqVOList) {
|
|
|
+ if (createReqVOList == null || createReqVOList.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String oid = createReqVOList.get(0).getOid();
|
|
|
+ if (oid == null || oid.isEmpty()) {
|
|
|
+ throw exception(new ErrorCode(10006, "未查询到相关订单"));
|
|
|
+ }
|
|
|
+ // 查询订单下所有游客信息
|
|
|
+ List<TradeVisitorDO> visitorList = tradeVisitorMapper.selectListByOrderId(Long.valueOf(oid));
|
|
|
+ if (visitorList == null || visitorList.isEmpty()) {
|
|
|
+ throw exception(new ErrorCode(10005, "未查询到该订单的游客信息"));
|
|
|
+ }
|
|
|
+ // 遍历传入的接站明细,按姓名匹配游客,校验身份证号
|
|
|
+ for (OrderJzDetailSaveReqVO reqVO : createReqVOList) {
|
|
|
+ if (reqVO.getIdCard() == null || reqVO.getName() == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 按姓名匹配游客
|
|
|
+ TradeVisitorDO matchedVisitor = visitorList.stream()
|
|
|
+ .filter(v -> reqVO.getName().equals(v.getName()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (matchedVisitor == null) {
|
|
|
+ throw exception(new ErrorCode(10007, "未找到匹配的游客"));
|
|
|
+ //continue;
|
|
|
+ }
|
|
|
+ // 校验身份证号是否一致(匹配到游客时)
|
|
|
+ if (matchedVisitor.getCredentialNo() != null
|
|
|
+ && !matchedVisitor.getCredentialNo().trim().equalsIgnoreCase(reqVO.getIdCard().trim())) {
|
|
|
+ throw exception(new ErrorCode(10003, "游客【" + reqVO.getName() + "】身份证效验不通过"));
|
|
|
+ }
|
|
|
+ // 校验通过,填充 visitorId
|
|
|
+ reqVO.setVisitorId(matchedVisitor.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@TenantIgnore
|
|
|
public Long createOrderJzDetail(List<OrderJzDetailSaveReqVO> createReqVOList) {
|