|
|
@@ -1,5 +1,14 @@
|
|
|
package com.yc.ship.module.marketing.controller.admin.policydetail;
|
|
|
|
|
|
+import com.yc.ship.framework.common.util.collection.CollectionUtils;
|
|
|
+import com.yc.ship.framework.common.util.collection.MapUtils;
|
|
|
+import com.yc.ship.module.marketing.controller.admin.policy.vo.PolicyRespVO;
|
|
|
+import com.yc.ship.module.marketing.dal.dataobject.policy.PolicyDO;
|
|
|
+import com.yc.ship.module.marketing.service.policy.PolicyService;
|
|
|
+import com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO;
|
|
|
+import com.yc.ship.module.product.service.voyage.VoyageService;
|
|
|
+import com.yc.ship.module.resource.dal.dataobject.ship.ResourceShipDO;
|
|
|
+import com.yc.ship.module.resource.service.ship.ResourceShipService;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import javax.annotation.Resource;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
@@ -38,6 +47,15 @@ public class PolicyDetailController {
|
|
|
@Resource
|
|
|
private PolicyDetailService policyDetailService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private PolicyService policyService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ResourceShipService resourceShipService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private VoyageService voyageService;
|
|
|
+
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建政策详情")
|
|
|
@PreAuthorize("@ss.hasPermission('marketing:policy-detail:create')")
|
|
|
@@ -68,15 +86,60 @@ public class PolicyDetailController {
|
|
|
@PreAuthorize("@ss.hasPermission('marketing:policy-detail:query')")
|
|
|
public CommonResult<PolicyDetailRespVO> getPolicyDetail(@RequestParam("id") Long id) {
|
|
|
PolicyDetailDO policyDetail = policyDetailService.getPolicyDetail(id);
|
|
|
- return success(BeanUtils.toBean(policyDetail, PolicyDetailRespVO.class));
|
|
|
+ PolicyDetailRespVO policyDetailRespVO = BeanUtils.toBean(policyDetail, PolicyDetailRespVO.class);
|
|
|
+ PolicyDO policy = policyService.getPolicy(policyDetail.getPolicyId());
|
|
|
+ if(policy != null) {
|
|
|
+ policyDetailRespVO.setPolicyName(policy.getName());
|
|
|
+ policyDetailRespVO.setEarlyDays(policy.getEarlyDays());
|
|
|
+ policyDetailRespVO.setDiscountType(policy.getDiscountType());
|
|
|
+ policyDetailRespVO.setDiscount(policy.getDiscount());
|
|
|
+ policyDetailRespVO.setEffectiveTime(policy.getEffectiveTime());
|
|
|
+ }
|
|
|
+ ResourceShipDO ship = resourceShipService.getShip(policyDetail.getShipId());
|
|
|
+ if(ship != null) {
|
|
|
+ policyDetailRespVO.setShipName(ship.getName());
|
|
|
+ }
|
|
|
+ VoyageDO voyage = voyageService.getVoyage(policyDetail.getVoyageId());
|
|
|
+ if(voyage != null) {
|
|
|
+ policyDetailRespVO.setVoyageName(voyage.getName());
|
|
|
+ }
|
|
|
+ return success(policyDetailRespVO);
|
|
|
}
|
|
|
|
|
|
@GetMapping("/page")
|
|
|
@Operation(summary = "获得政策详情分页")
|
|
|
@PreAuthorize("@ss.hasPermission('marketing:policy-detail:query')")
|
|
|
public CommonResult<PageResult<PolicyDetailRespVO>> getPolicyDetailPage(@Valid PolicyDetailPageReqVO pageReqVO) {
|
|
|
- PageResult<PolicyDetailDO> pageResult = policyDetailService.getPolicyDetailPage(pageReqVO);
|
|
|
- return success(BeanUtils.toBean(pageResult, PolicyDetailRespVO.class));
|
|
|
+ PageResult<PolicyDetailDO> page = policyDetailService.getPolicyDetailPage(pageReqVO);
|
|
|
+ PageResult<PolicyDetailRespVO> pageResult = BeanUtils.toBean(page, PolicyDetailRespVO.class);
|
|
|
+ List<PolicyDetailRespVO> list = pageResult.getList();
|
|
|
+ List<Long> policyIds = CollectionUtils.convertList(list, PolicyDetailRespVO::getPolicyId);
|
|
|
+ List<PolicyDO> policyDOS = policyService.getByIds(policyIds);
|
|
|
+ Map<Long, PolicyDO> policyDOMap = CollectionUtils.convertMap(policyDOS, PolicyDO::getId);
|
|
|
+ List<Long> shipIds = CollectionUtils.convertList(list, PolicyDetailRespVO::getShipId);
|
|
|
+ List<ResourceShipDO> shipList = resourceShipService.getList(shipIds);
|
|
|
+ Map<Long, ResourceShipDO> shipDOMap = CollectionUtils.convertMap(shipList, ResourceShipDO::getId);
|
|
|
+
|
|
|
+ List<Long> voyageIds = CollectionUtils.convertList(list, PolicyDetailRespVO::getVoyageId);
|
|
|
+ List<VoyageDO> voyageDOS = voyageService.getList(voyageIds);
|
|
|
+ Map<Long, VoyageDO> voyageDOMap = CollectionUtils.convertMap(voyageDOS, VoyageDO::getId);
|
|
|
+
|
|
|
+ list.stream().forEach(policyDetailRespVO -> {
|
|
|
+ MapUtils.findAndThen(shipDOMap, policyDetailRespVO.getShipId(), resourceShipDO -> {
|
|
|
+ policyDetailRespVO.setShipName(resourceShipDO.getName());
|
|
|
+ });
|
|
|
+ MapUtils.findAndThen(voyageDOMap, policyDetailRespVO.getVoyageId(), voyageDO -> {
|
|
|
+ policyDetailRespVO.setVoyageName(voyageDO.getName());
|
|
|
+ });
|
|
|
+ MapUtils.findAndThen(policyDOMap, policyDetailRespVO.getPolicyId(), policyDO -> {
|
|
|
+ policyDetailRespVO.setPolicyName(policyDO.getName());
|
|
|
+ policyDetailRespVO.setEarlyDays(policyDO.getEarlyDays());
|
|
|
+ policyDetailRespVO.setDiscountType(policyDO.getDiscountType());
|
|
|
+ policyDetailRespVO.setDiscount(policyDO.getDiscount());
|
|
|
+ policyDetailRespVO.setEffectiveTime(policyDO.getEffectiveTime());
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return success(pageResult);
|
|
|
}
|
|
|
|
|
|
@GetMapping("/export-excel")
|