|
@@ -9,10 +9,13 @@ import org.jeecg.modules.app.vo.OrderVO;
|
|
import org.jeecg.modules.system.app.entity.AppCourses;
|
|
import org.jeecg.modules.system.app.entity.AppCourses;
|
|
import org.jeecg.modules.system.app.entity.AppOrder;
|
|
import org.jeecg.modules.system.app.entity.AppOrder;
|
|
import org.jeecg.modules.system.app.entity.AppSitePlace;
|
|
import org.jeecg.modules.system.app.entity.AppSitePlace;
|
|
|
|
+import org.jeecg.modules.system.app.entity.AppSitePriceRules;
|
|
import org.jeecg.modules.system.app.mapper.AppCoursesMapper;
|
|
import org.jeecg.modules.system.app.mapper.AppCoursesMapper;
|
|
import org.jeecg.modules.system.app.mapper.AppOrderMapper;
|
|
import org.jeecg.modules.system.app.mapper.AppOrderMapper;
|
|
import org.jeecg.modules.system.app.mapper.AppSitePlaceMapper;
|
|
import org.jeecg.modules.system.app.mapper.AppSitePlaceMapper;
|
|
import org.jeecg.modules.system.app.mapper.AppSitePriceRulesMapper;
|
|
import org.jeecg.modules.system.app.mapper.AppSitePriceRulesMapper;
|
|
|
|
+import org.jeecg.modules.system.entity.SysDepart;
|
|
|
|
+import org.jeecg.modules.system.mapper.SysDepartMapper;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
@@ -33,6 +36,8 @@ public class OrderServiceImpl implements IOrderService {
|
|
private AppCoursesMapper appCoursesMapper;
|
|
private AppCoursesMapper appCoursesMapper;
|
|
@Resource
|
|
@Resource
|
|
private AppOrderMapper appOrderMapper;
|
|
private AppOrderMapper appOrderMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private SysDepartMapper sysDepartMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public boolean checkCourseLimitNum(String courseId, int limitNum) {
|
|
public boolean checkCourseLimitNum(String courseId, int limitNum) {
|
|
@@ -75,8 +80,34 @@ public class OrderServiceImpl implements IOrderService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public OrderVO.PreviewOrderPlaceGymnasiumChartered previewOrderPlaceGymnasiumChartered(String placeId) {
|
|
|
|
- return null;
|
|
|
|
|
|
+ public OrderVO.PreviewOrderPlaceGymnasiumChartered previewOrderPlaceGymnasiumChartered(List<String> rulesId) {
|
|
|
|
+ LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
|
+ OrderVO.PreviewOrderPlaceGymnasiumChartered result = new OrderVO.PreviewOrderPlaceGymnasiumChartered();
|
|
|
|
+ List<AppSitePriceRules> priceRules = appSitePriceRulesMapper.selectList(Wrappers.<AppSitePriceRules>lambdaQuery()
|
|
|
|
+ .in(AppSitePriceRules::getId, rulesId));
|
|
|
|
+ BigDecimal totalPrice = priceRules.stream()
|
|
|
|
+ .map(AppSitePriceRules::getSellingPrice)
|
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
+ if (priceRules.isEmpty()) {
|
|
|
|
+ throw new IllegalArgumentException("未找到对应的价格规则");
|
|
|
|
+ }
|
|
|
|
+ AppSitePlace sitePlace = appSitePlaceMapper.selectById(priceRules.get(0).getSitePlaceId());
|
|
|
|
+ if (sitePlace == null) {
|
|
|
|
+ throw new IllegalStateException("关联场地不存在");
|
|
|
|
+ }
|
|
|
|
+ List<OrderVO.PreviewOrderTimePeriod> timePeriod = appSitePriceRulesMapper.previewOrderPlaceGymnasiumChartered(rulesId);
|
|
|
|
+ SysDepart depart = sysDepartMapper.selectOne(Wrappers.<SysDepart>lambdaQuery()
|
|
|
|
+ .eq(SysDepart::getOrgCode, sitePlace.getOrgCode()));
|
|
|
|
+ return result.setTimePeriod(timePeriod)
|
|
|
|
+ .setEarlyRefundTime(sitePlace.getEarlyRefundTime())
|
|
|
|
+ .setPlaceId(sitePlace.getId())
|
|
|
|
+ .setPlaceName(sitePlace.getName())
|
|
|
|
+ .setReminder(sitePlace.getReminder())
|
|
|
|
+ .setRefundRule(sitePlace.getEarlyRefundTime())
|
|
|
|
+ .setMobile(user.getPhone())
|
|
|
|
+ .setTotalPrice(totalPrice) // 总价即为所有价格之和
|
|
|
|
+ .setSubtotal(totalPrice) // 小计与总价相同
|
|
|
|
+ .setStoreName(depart != null ? depart.getDepartName() : "未知门店");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|