Kaynağa Gözat

Merge branch 'main' of http://47.98.207.247:3000/lsq/ship-ota-server into main

luofeiyun 2 hafta önce
ebeveyn
işleme
bfe81ddb66

+ 108 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/shipSaleRule/ShipSaleRuleController.java

@@ -0,0 +1,108 @@
+package com.yc.ship.module.trade.controller.admin.shipSaleRule;
+
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.constraints.*;
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.CommonResult;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+import static com.yc.ship.framework.common.pojo.CommonResult.success;
+
+import com.yc.ship.framework.excel.core.util.ExcelUtils;
+
+import com.yc.ship.framework.apilog.core.annotation.ApiAccessLog;
+import static com.yc.ship.framework.apilog.core.enums.OperateTypeEnum.*;
+
+import com.yc.ship.module.trade.controller.admin.shipSaleRule.vo.*;
+import com.yc.ship.module.trade.dal.dataobject.shipSaleRule.ShipSaleRuleDO;
+import com.yc.ship.module.trade.service.shipSaleRule.ShipSaleRuleService;
+
+@Tag(name = "管理后台 - 时间规则配置")
+@RestController
+@RequestMapping("/trade/ship-sale-rule")
+@Validated
+public class ShipSaleRuleController {
+
+    @Resource
+    private ShipSaleRuleService shipSaleRuleService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建时间规则配置")
+    @PreAuthorize("@ss.hasPermission('trade:ship-sale-rule:create')")
+    public CommonResult<Long> createShipSaleRule(@Valid @RequestBody ShipSaleRuleSaveReqVO createReqVO) {
+        return success(shipSaleRuleService.createShipSaleRule(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新时间规则配置")
+    @PreAuthorize("@ss.hasPermission('trade:ship-sale-rule:update')")
+    public CommonResult<Boolean> updateShipSaleRule(@Valid @RequestBody ShipSaleRuleSaveReqVO updateReqVO) {
+        shipSaleRuleService.updateShipSaleRule(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除时间规则配置")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('trade:ship-sale-rule:delete')")
+    public CommonResult<Boolean> deleteShipSaleRule(@RequestParam("id") Long id) {
+        shipSaleRuleService.deleteShipSaleRule(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得时间规则配置")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('trade:ship-sale-rule:query')")
+    public CommonResult<ShipSaleRuleRespVO> getShipSaleRule(@RequestParam("id") Long id) {
+        ShipSaleRuleDO shipSaleRule = shipSaleRuleService.getShipSaleRule(id);
+        return success(BeanUtils.toBean(shipSaleRule, ShipSaleRuleRespVO.class));
+    }
+
+    @GetMapping("/getOne")
+    @Operation(summary = "获得时间规则配置")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('trade:ship-sale-rule:query')")
+    public CommonResult<ShipSaleRuleRespVO> getShipSaleRuleOne() {
+        try {
+            ShipSaleRuleDO shipSaleRule = shipSaleRuleService.getShipSaleRuleOne();
+            return success(BeanUtils.toBean(shipSaleRule, ShipSaleRuleRespVO.class));
+        }catch (Exception e){
+            return success(new ShipSaleRuleRespVO());
+        }
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得时间规则配置分页")
+    @PreAuthorize("@ss.hasPermission('trade:ship-sale-rule:query')")
+    public CommonResult<PageResult<ShipSaleRuleRespVO>> getShipSaleRulePage(@Valid ShipSaleRulePageReqVO pageReqVO) {
+        PageResult<ShipSaleRuleDO> pageResult = shipSaleRuleService.getShipSaleRulePage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, ShipSaleRuleRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出时间规则配置 Excel")
+    @PreAuthorize("@ss.hasPermission('trade:ship-sale-rule:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportShipSaleRuleExcel(@Valid ShipSaleRulePageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<ShipSaleRuleDO> list = shipSaleRuleService.getShipSaleRulePage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "时间规则配置.xls", "数据", ShipSaleRuleRespVO.class,
+                        BeanUtils.toBean(list, ShipSaleRuleRespVO.class));
+    }
+
+}

+ 24 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/shipSaleRule/vo/ShipSaleRulePageReqVO.java

@@ -0,0 +1,24 @@
+package com.yc.ship.module.trade.controller.admin.shipSaleRule.vo;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+
+import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 时间规则配置分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class ShipSaleRulePageReqVO extends PageParam {
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 47 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/shipSaleRule/vo/ShipSaleRuleRespVO.java

@@ -0,0 +1,47 @@
+package com.yc.ship.module.trade.controller.admin.shipSaleRule.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 时间规则配置 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class ShipSaleRuleRespVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20731")
+    @ExcelProperty("主键")
+    private Long id;
+
+    @Schema(description = "确定日期(开航前多少天)")
+    @ExcelProperty("确定日期(开航前多少天)")
+    private Integer qdDay;
+
+    @Schema(description = "确定时间(当天几点,比如:12点)")
+    @ExcelProperty("确定时间(当天几点,比如:12点)")
+    private Integer qdHour;
+
+    @Schema(description = "变更时间(开航前多少天内修改游客信息需要审核)")
+    @ExcelProperty("变更时间(开航前多少天内修改游客信息需要审核)")
+    private Integer bgDay;
+
+    @Schema(description = "过期天数(开航前多少天过期)")
+    @ExcelProperty("过期天数(开航前多少天过期)")
+    private Integer expireDay;
+
+    @Schema(description = "过期时间(不填默认0点,结合过期天数)")
+    @ExcelProperty("过期时间(不填默认0点,结合过期天数)")
+    private Integer expireHour;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "更新时间")
+    @ExcelProperty("更新时间")
+    private LocalDateTime updateTime;
+
+}

+ 28 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/shipSaleRule/vo/ShipSaleRuleSaveReqVO.java

@@ -0,0 +1,28 @@
+package com.yc.ship.module.trade.controller.admin.shipSaleRule.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 时间规则配置新增/修改 Request VO")
+@Data
+public class ShipSaleRuleSaveReqVO {
+
+    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20731")
+    private Long id;
+
+    @Schema(description = "确定日期(开航前多少天)")
+    private Integer qdDay;
+
+    @Schema(description = "确定时间(当天几点,比如:12点)")
+    private Integer qdHour;
+
+    @Schema(description = "变更时间(开航前多少天内修改游客信息需要审核)")
+    private Integer bgDay;
+
+    @Schema(description = "过期天数(开航前多少天过期)")
+    private Integer expireDay;
+
+    @Schema(description = "过期时间(不填默认0点,结合过期天数)")
+    private Integer expireHour;
+
+}

+ 50 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/dataobject/shipSaleRule/ShipSaleRuleDO.java

@@ -0,0 +1,50 @@
+package com.yc.ship.module.trade.dal.dataobject.shipSaleRule;
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+/**
+ * 时间规则配置 DO
+ *
+ * @author qsl
+ */
+@TableName("ship_sale_rule")
+@KeySequence("ship_sale_rule_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ShipSaleRuleDO extends BaseDO {
+
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+    /**
+     * 确定日期(开航前多少天)
+     */
+    private Integer qdDay;
+    /**
+     * 确定时间(当天几点,比如:12点)
+     */
+    private Integer qdHour;
+    /**
+     * 变更时间(开航前多少天内修改游客信息需要审核)
+     */
+    private Integer bgDay;
+    /**
+     * 过期天数(开航前多少天过期)
+     */
+    private Integer expireDay;
+    /**
+     * 过期时间(不填默认0点,结合过期天数)
+     */
+    private Integer expireHour;
+
+}

+ 24 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/shipSaleRule/ShipSaleRuleMapper.java

@@ -0,0 +1,24 @@
+package com.yc.ship.module.trade.dal.mysql.shipSaleRule;
+
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.module.trade.controller.admin.shipSaleRule.vo.ShipSaleRulePageReqVO;
+import com.yc.ship.module.trade.dal.dataobject.shipSaleRule.ShipSaleRuleDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 时间规则配置 Mapper
+ *
+ * @author qsl
+ */
+@Mapper
+public interface ShipSaleRuleMapper extends BaseMapperX<ShipSaleRuleDO> {
+
+    default PageResult<ShipSaleRuleDO> selectPage(ShipSaleRulePageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<ShipSaleRuleDO>()
+                .betweenIfPresent(ShipSaleRuleDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(ShipSaleRuleDO::getId));
+    }
+
+}

+ 56 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/shipSaleRule/ShipSaleRuleService.java

@@ -0,0 +1,56 @@
+package com.yc.ship.module.trade.service.shipSaleRule;
+
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.module.trade.controller.admin.shipSaleRule.vo.ShipSaleRulePageReqVO;
+import com.yc.ship.module.trade.controller.admin.shipSaleRule.vo.ShipSaleRuleSaveReqVO;
+import com.yc.ship.module.trade.dal.dataobject.shipSaleRule.ShipSaleRuleDO;
+
+import javax.validation.Valid;
+
+/**
+ * 时间规则配置 Service 接口
+ *
+ * @author qsl
+ */
+public interface ShipSaleRuleService {
+
+    /**
+     * 创建时间规则配置
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createShipSaleRule(@Valid ShipSaleRuleSaveReqVO createReqVO);
+
+    /**
+     * 更新时间规则配置
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateShipSaleRule(@Valid ShipSaleRuleSaveReqVO updateReqVO);
+
+    /**
+     * 删除时间规则配置
+     *
+     * @param id 编号
+     */
+    void deleteShipSaleRule(Long id);
+
+    /**
+     * 获得时间规则配置
+     *
+     * @param id 编号
+     * @return 时间规则配置
+     */
+    ShipSaleRuleDO getShipSaleRule(Long id);
+    ShipSaleRuleDO getShipSaleRuleOne();
+
+    /**
+     * 获得时间规则配置分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 时间规则配置分页
+     */
+    PageResult<ShipSaleRuleDO> getShipSaleRulePage(ShipSaleRulePageReqVO pageReqVO);
+
+}

+ 82 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/shipSaleRule/ShipSaleRuleServiceImpl.java

@@ -0,0 +1,82 @@
+package com.yc.ship.module.trade.service.shipSaleRule;
+
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.module.trade.controller.admin.shipSaleRule.vo.ShipSaleRulePageReqVO;
+import com.yc.ship.module.trade.controller.admin.shipSaleRule.vo.ShipSaleRuleSaveReqVO;
+import com.yc.ship.module.trade.dal.dataobject.shipSaleRule.ShipSaleRuleDO;
+import com.yc.ship.module.trade.dal.mysql.shipSaleRule.ShipSaleRuleMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
+
+/**
+ * 时间规则配置 Service 实现类
+ *
+ * @author qsl
+ */
+@Slf4j
+@Service
+@Validated
+public class ShipSaleRuleServiceImpl implements ShipSaleRuleService {
+
+    @Resource
+    private ShipSaleRuleMapper shipSaleRuleMapper;
+
+    @Override
+    public Long createShipSaleRule(ShipSaleRuleSaveReqVO createReqVO) {
+        // 插入
+        ShipSaleRuleDO shipSaleRule = BeanUtils.toBean(createReqVO, ShipSaleRuleDO.class);
+        shipSaleRuleMapper.insert(shipSaleRule);
+        // 返回
+        return shipSaleRule.getId();
+    }
+
+    @Override
+    public void updateShipSaleRule(ShipSaleRuleSaveReqVO updateReqVO) {
+        if(updateReqVO.getId() == null){
+            createShipSaleRule(updateReqVO);
+            return;
+        }
+        // 校验存在
+        validateShipSaleRuleExists(updateReqVO.getId());
+        // 更新
+        ShipSaleRuleDO updateObj = BeanUtils.toBean(updateReqVO, ShipSaleRuleDO.class);
+        shipSaleRuleMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteShipSaleRule(Long id) {
+        // 校验存在
+        validateShipSaleRuleExists(id);
+        // 删除
+        shipSaleRuleMapper.deleteById(id);
+    }
+
+    private void validateShipSaleRuleExists(Long id) {
+        if (shipSaleRuleMapper.selectById(id) == null) {
+            throw exception(500,"不存在");
+        }
+    }
+
+    @Override
+    public ShipSaleRuleDO getShipSaleRule(Long id) {
+        return shipSaleRuleMapper.selectById(id);
+    }
+
+    @Override
+    public ShipSaleRuleDO getShipSaleRuleOne() {
+        return shipSaleRuleMapper.selectOne(new LambdaQueryWrapperX<ShipSaleRuleDO>().eq(ShipSaleRuleDO::getDeleted, false).last("limit 1"));
+    }
+
+    @Override
+    public PageResult<ShipSaleRuleDO> getShipSaleRulePage(ShipSaleRulePageReqVO pageReqVO) {
+        return shipSaleRuleMapper.selectPage(pageReqVO);
+    }
+
+}

+ 12 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/shipSaleRule/ShipSaleRuleMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yc.ship.module.trade.dal.mysql.shipSaleRule.ShipSaleRuleMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>