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

功能优化

上级 03ef7a13
......@@ -15,7 +15,9 @@ public enum ApplyRelateType {
//配偶
SPOUSE("1", "配偶"),
//子女
CHILDREN("2", "子女");
CHILDREN("2", "子女"),
//陪同人
COMPANION("3", "陪同人");
private final String code;
private final String desc;
......
......@@ -15,6 +15,7 @@ import org.dromara.server.domain.bo.OrderHotelBo;
import org.dromara.server.domain.vo.OrderHotelVo;
import org.dromara.server.dubbo.RemoteYsOrderServiceImpl;
import org.dromara.server.service.IOrderHotelService;
import org.dromara.server.service.ITravelConfigService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -37,6 +38,7 @@ public class HotelController extends BaseController {
private final IHotelService hotelService;
private final IOrderHotelService orderHotelService;
private final ITravelConfigService travelConfigService;
/**
* 酒店详情
......@@ -69,6 +71,21 @@ public class HotelController extends BaseController {
@PostMapping("/order/book")
public R<HotelOrderBookModel> orderBook(@RequestBody org.dromara.common.ys.model.req.hotel.HotelOrderBookModel model) {
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);
HotelOrderBookModel book = hotelService.orderBook(getUserId(), model);
orderHotelService.batchSaveOrder(getUserId(), subjectCode, List.of(book.getOrderId()));
......
......@@ -15,9 +15,14 @@ import java.util.List;
public class TravelApply {
/**
* 申请id
* 申请编码
*/
private Long applyId;
private String applyCode;
/**
* 订单类型
*/
private String orderType;
/**
* 出发城市
......@@ -39,11 +44,6 @@ public class TravelApply {
*/
private Date arriveTime;
/**
* 订单类型
*/
private String orderType;
/**
* 乘车人信息
*/
......
......@@ -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.service.AbstractBaseService;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.server.constant.ApplyRelateType;
import org.dromara.server.constant.ApplyStatus;
import org.dromara.server.constant.ProcessApproveStatus;
import org.dromara.server.constant.ProcessKey;
......@@ -90,10 +91,15 @@ public class ApplyServiceImpl extends AbstractBaseService<ApplyVo, ApplyBo, Appl
bo.setApplyCode(UUID.randomUUID().toString().replaceAll("-", ""));
Apply apply = MapstructUtils.convert(bo, Apply.class);
Boolean result = baseMapper.insert(apply) == 1;
if (result) {
String phone = LoginHelper.getLoginUser().getPhonenumber();
List<ApplyPersonBo> personList = bo.getPersonList();
for (ApplyPersonBo person : personList) {
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);
applyPersonMapper.insert(ap);
}
......
......@@ -80,19 +80,18 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
@Override
public boolean checkTravelLegal(TravelApply travelApply) {
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()))
.findAny().ifPresent(as -> {
as.isMatched(apply);
});
.findAny().ifPresent(as -> as.isMatched(apply));
//校验是否需要审批通过
Arrays.stream(ApproveSwitch.values()).filter(as -> Objects.equals(as.getCode(), tc.getApproveSwitch()))
.findAny().ifPresent(as -> {
as.isMatched(apply);
});
.findAny().ifPresent(as -> as.isMatched(apply));
//获取订单类型
OrderType orderType = Arrays.stream(OrderType.values()).filter(ot -> StringUtils.equals(ot.getType(), travelApply.getOrderType()))
......@@ -133,15 +132,11 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
//校验预算
Arrays.stream(BudgetControl.values()).filter(bc -> Objects.equals(bc.getCode(), tc.getBudgetControl()))
.findAny().ifPresent(bc -> {
bc.isMatched(null, apply);
});
.findAny().ifPresent(bc -> bc.isMatched(null, apply));
//校验管控
Arrays.stream(TravelControl.values()).filter(control -> Objects.equals(control.getCode(), tc.getTravelControl()))
.findAny().ifPresent(control -> {
control.isMatched(new JSONObject(), apply);
});
.findAny().ifPresent(control -> control.isMatched(new JSONObject(), apply));
return true;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论