提交 1289fc45 authored 作者: hzh's avatar hzh

功能优化

上级 03ef7a13
...@@ -15,7 +15,9 @@ public enum ApplyRelateType { ...@@ -15,7 +15,9 @@ public enum ApplyRelateType {
//配偶 //配偶
SPOUSE("1", "配偶"), SPOUSE("1", "配偶"),
//子女 //子女
CHILDREN("2", "子女"); CHILDREN("2", "子女"),
//陪同人
COMPANION("3", "陪同人");
private final String code; private final String code;
private final String desc; private final String desc;
......
...@@ -15,6 +15,7 @@ import org.dromara.server.domain.bo.OrderHotelBo; ...@@ -15,6 +15,7 @@ import org.dromara.server.domain.bo.OrderHotelBo;
import org.dromara.server.domain.vo.OrderHotelVo; import org.dromara.server.domain.vo.OrderHotelVo;
import org.dromara.server.dubbo.RemoteYsOrderServiceImpl; import org.dromara.server.dubbo.RemoteYsOrderServiceImpl;
import org.dromara.server.service.IOrderHotelService; import org.dromara.server.service.IOrderHotelService;
import org.dromara.server.service.ITravelConfigService;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -37,6 +38,7 @@ public class HotelController extends BaseController { ...@@ -37,6 +38,7 @@ public class HotelController extends BaseController {
private final IHotelService hotelService; private final IHotelService hotelService;
private final IOrderHotelService orderHotelService; private final IOrderHotelService orderHotelService;
private final ITravelConfigService travelConfigService;
/** /**
* 酒店详情 * 酒店详情
...@@ -69,6 +71,21 @@ public class HotelController extends BaseController { ...@@ -69,6 +71,21 @@ public class HotelController extends BaseController {
@PostMapping("/order/book") @PostMapping("/order/book")
public R<HotelOrderBookModel> orderBook(@RequestBody org.dromara.common.ys.model.req.hotel.HotelOrderBookModel model) { public R<HotelOrderBookModel> orderBook(@RequestBody org.dromara.common.ys.model.req.hotel.HotelOrderBookModel model) {
String subjectCode = model.getSubjectCode(); String subjectCode = model.getSubjectCode();
//校验行程是否合法
// travelConfigService.checkTravelLegal(
// new TravelApply()
// .setApplyCode(subjectCode)
// .setOrderType(OrderType.HOTEL.getType())
// //TODO 如何转成城市名称
// .setArriveCity(model.getCityId())
// .setDepartTime(DateUtil.parse(model.getCheckInDate()))
// .setArriveTime(DateUtil.parse(model.getCheckOutDate()))
// .setPersonInfoList(Optional.ofNullable(model.getOrderRooms())
// .map(room -> room.stream().flatMap(r -> StreamUtils.toList(r.getCustomers(), HotelOrderBookRoomCustomerBean::getIdCardNo).stream()).collect(Collectors.toList())).orElse(List.of()))
// );
model.setSubjectCode(null); model.setSubjectCode(null);
HotelOrderBookModel book = hotelService.orderBook(getUserId(), model); HotelOrderBookModel book = hotelService.orderBook(getUserId(), model);
orderHotelService.batchSaveOrder(getUserId(), subjectCode, List.of(book.getOrderId())); orderHotelService.batchSaveOrder(getUserId(), subjectCode, List.of(book.getOrderId()));
......
...@@ -15,9 +15,14 @@ import java.util.List; ...@@ -15,9 +15,14 @@ import java.util.List;
public class TravelApply { public class TravelApply {
/** /**
* 申请id * 申请编码
*/ */
private Long applyId; private String applyCode;
/**
* 订单类型
*/
private String orderType;
/** /**
* 出发城市 * 出发城市
...@@ -39,11 +44,6 @@ public class TravelApply { ...@@ -39,11 +44,6 @@ public class TravelApply {
*/ */
private Date arriveTime; private Date arriveTime;
/**
* 订单类型
*/
private String orderType;
/** /**
* 乘车人信息 * 乘车人信息
*/ */
......
...@@ -13,6 +13,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; ...@@ -13,6 +13,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.service.AbstractBaseService; import org.dromara.common.mybatis.service.AbstractBaseService;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.server.constant.ApplyRelateType;
import org.dromara.server.constant.ApplyStatus; import org.dromara.server.constant.ApplyStatus;
import org.dromara.server.constant.ProcessApproveStatus; import org.dromara.server.constant.ProcessApproveStatus;
import org.dromara.server.constant.ProcessKey; import org.dromara.server.constant.ProcessKey;
...@@ -90,10 +91,15 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl ...@@ -90,10 +91,15 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl
bo.setApplyCode(UUID.randomUUID().toString().replaceAll("-", "")); bo.setApplyCode(UUID.randomUUID().toString().replaceAll("-", ""));
Apply apply = MapstructUtils.convert(bo, Apply.class); Apply apply = MapstructUtils.convert(bo, Apply.class);
Boolean result = baseMapper.insert(apply) == 1; Boolean result = baseMapper.insert(apply) == 1;
if (result) { if (result) {
String phone = LoginHelper.getLoginUser().getPhonenumber();
List<ApplyPersonBo> personList = bo.getPersonList(); List<ApplyPersonBo> personList = bo.getPersonList();
for (ApplyPersonBo person : personList) { for (ApplyPersonBo person : personList) {
person.setApplyId(apply.getId()); person.setApplyId(apply.getId());
if (StringUtils.isEmpty(person.getRelatedType())) {
person.setRelatedType(StringUtils.equals(phone, person.getPhone()) ? ApplyRelateType.SELF.getCode() : ApplyRelateType.COMPANION.getCode());
}
ApplyPerson ap = MapstructUtils.convert(person, ApplyPerson.class); ApplyPerson ap = MapstructUtils.convert(person, ApplyPerson.class);
applyPersonMapper.insert(ap); applyPersonMapper.insert(ap);
} }
......
...@@ -80,19 +80,18 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo, ...@@ -80,19 +80,18 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
@Override @Override
public boolean checkTravelLegal(TravelApply travelApply) { public boolean checkTravelLegal(TravelApply travelApply) {
TravelConfigVo tc = mapper().selectVoOne(new LambdaQueryWrapper<>()); TravelConfigVo tc = mapper().selectVoOne(new LambdaQueryWrapper<>());
Apply apply = Optional.ofNullable(travelApply.getApplyId()).map(applyMapper::selectById).orElse(null); Apply apply = Optional.ofNullable(travelApply.getApplyCode()).map(applyCode->{
return applyMapper.selectOne(new LambdaQueryWrapper<Apply>()
.eq(Apply::getApplyCode, applyCode));
}).orElse(null);
//校验是否需要提交申请单 //校验是否需要提交申请单
Arrays.stream(ApplySwitch.values()).filter(as -> Objects.equals(as.getCode(), tc.getApplySwitch())) Arrays.stream(ApplySwitch.values()).filter(as -> Objects.equals(as.getCode(), tc.getApplySwitch()))
.findAny().ifPresent(as -> { .findAny().ifPresent(as -> as.isMatched(apply));
as.isMatched(apply);
});
//校验是否需要审批通过 //校验是否需要审批通过
Arrays.stream(ApproveSwitch.values()).filter(as -> Objects.equals(as.getCode(), tc.getApproveSwitch())) Arrays.stream(ApproveSwitch.values()).filter(as -> Objects.equals(as.getCode(), tc.getApproveSwitch()))
.findAny().ifPresent(as -> { .findAny().ifPresent(as -> as.isMatched(apply));
as.isMatched(apply);
});
//获取订单类型 //获取订单类型
OrderType orderType = Arrays.stream(OrderType.values()).filter(ot -> StringUtils.equals(ot.getType(), travelApply.getOrderType())) OrderType orderType = Arrays.stream(OrderType.values()).filter(ot -> StringUtils.equals(ot.getType(), travelApply.getOrderType()))
...@@ -133,15 +132,11 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo, ...@@ -133,15 +132,11 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
//校验预算 //校验预算
Arrays.stream(BudgetControl.values()).filter(bc -> Objects.equals(bc.getCode(), tc.getBudgetControl())) Arrays.stream(BudgetControl.values()).filter(bc -> Objects.equals(bc.getCode(), tc.getBudgetControl()))
.findAny().ifPresent(bc -> { .findAny().ifPresent(bc -> bc.isMatched(null, apply));
bc.isMatched(null, apply);
});
//校验管控 //校验管控
Arrays.stream(TravelControl.values()).filter(control -> Objects.equals(control.getCode(), tc.getTravelControl())) Arrays.stream(TravelControl.values()).filter(control -> Objects.equals(control.getCode(), tc.getTravelControl()))
.findAny().ifPresent(control -> { .findAny().ifPresent(control -> control.isMatched(new JSONObject(), apply));
control.isMatched(new JSONObject(), apply);
});
return true; return true;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论