From cd958cabc38e53ed14b6b0f39e3e0ff685c1a9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Thu, 8 Aug 2024 15:04:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=E8=AE=A2=E5=8D=95=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OrderExportController.java | 115 ++++++++++++++++++ .../gxwebsoft/booking/entity/OrderExport.java | 95 +++++++++++++++ .../booking/mapper/OrderExportMapper.java | 37 ++++++ .../booking/mapper/xml/OrderExportMapper.xml | 90 ++++++++++++++ .../booking/param/OrderExportParam.java | 94 ++++++++++++++ .../booking/service/OrderExportService.java | 42 +++++++ .../service/impl/OrderExportServiceImpl.java | 47 +++++++ .../gxwebsoft/shop/mapper/xml/OrderMapper.xml | 4 +- .../gxwebsoft/generator/BookingGenerator.java | 2 +- 9 files changed, 522 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/gxwebsoft/booking/controller/OrderExportController.java create mode 100644 src/main/java/com/gxwebsoft/booking/entity/OrderExport.java create mode 100644 src/main/java/com/gxwebsoft/booking/mapper/OrderExportMapper.java create mode 100644 src/main/java/com/gxwebsoft/booking/mapper/xml/OrderExportMapper.xml create mode 100644 src/main/java/com/gxwebsoft/booking/param/OrderExportParam.java create mode 100644 src/main/java/com/gxwebsoft/booking/service/OrderExportService.java create mode 100644 src/main/java/com/gxwebsoft/booking/service/impl/OrderExportServiceImpl.java diff --git a/src/main/java/com/gxwebsoft/booking/controller/OrderExportController.java b/src/main/java/com/gxwebsoft/booking/controller/OrderExportController.java new file mode 100644 index 0000000..9a95a72 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/controller/OrderExportController.java @@ -0,0 +1,115 @@ +package com.gxwebsoft.booking.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.booking.service.OrderExportService; +import com.gxwebsoft.booking.entity.OrderExport; +import com.gxwebsoft.booking.param.OrderExportParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 统计报表导出控制器 + * + * @author 科技小王子 + * @since 2024-08-08 02:52:45 + */ +@Api(tags = "统计报表导出管理") +@RestController +@RequestMapping("/api/booking/order-export") +public class OrderExportController extends BaseController { + @Resource + private OrderExportService orderExportService; + + @ApiOperation("分页查询统计报表导出") + @GetMapping("/page") + public ApiResult> page(OrderExportParam param) { + // 使用关联查询 + return success(orderExportService.pageRel(param)); + } + + @ApiOperation("查询全部统计报表导出") + @GetMapping() + public ApiResult> list(OrderExportParam param) { + // 使用关联查询 + return success(orderExportService.listRel(param)); + } + + @PreAuthorize("hasAuthority('booking:orderExport:list')") + @ApiOperation("根据id查询统计报表导出") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(orderExportService.getByIdRel(id)); + } + + @ApiOperation("添加统计报表导出") + @PostMapping() + public ApiResult save(@RequestBody OrderExport orderExport) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + orderExport.setUserId(loginUser.getUserId()); + } + if (orderExportService.save(orderExport)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改统计报表导出") + @PutMapping() + public ApiResult update(@RequestBody OrderExport orderExport) { + if (orderExportService.updateById(orderExport)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除统计报表导出") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (orderExportService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加统计报表导出") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (orderExportService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改统计报表导出") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(orderExportService, "export_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除统计报表导出") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (orderExportService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/booking/entity/OrderExport.java b/src/main/java/com/gxwebsoft/booking/entity/OrderExport.java new file mode 100644 index 0000000..1ee1528 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/entity/OrderExport.java @@ -0,0 +1,95 @@ +package com.gxwebsoft.booking.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 统计报表导出 + * + * @author 科技小王子 + * @since 2024-08-08 02:52:45 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "OrderExport对象", description = "统计报表导出") +@TableName("booking_order_export") +public class OrderExport implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @TableId(value = "export_id", type = IdType.AUTO) + private Integer exportId; + + @ApiModelProperty(value = "机构名称") + private String organizationName; + + @ApiModelProperty(value = "实际消费的金额(不含退款)") + private BigDecimal expendMoney; + + @ApiModelProperty(value = "早餐报餐次数") + private Integer breakfastPost; + + @ApiModelProperty(value = "早餐签到次数") + private Integer breakfastSign; + + @ApiModelProperty(value = "午餐报餐次数") + private Integer lunchPost; + + @ApiModelProperty(value = "午餐签到次数") + private Integer lunchSign; + + @ApiModelProperty(value = "晚餐报餐次数") + private Integer dinnerPost; + + @ApiModelProperty(value = "晚餐签到次数") + private Integer dinnerSign; + + @ApiModelProperty(value = "档口 10 食堂档口 20 物品档口 ") + private String gear; + + @ApiModelProperty(value = "商品价格(单价)") + private BigDecimal goodsPrice; + + @ApiModelProperty(value = "发货时间") + private LocalDateTime deliveryTime; + + @ApiModelProperty(value = "状态, 0待发布, 1已发布") + private Integer status; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "订单号") + private Integer orderId; + + @ApiModelProperty(value = "机构id") + private Integer organizationId; + + @ApiModelProperty(value = "发布人") + private Integer userId; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/booking/mapper/OrderExportMapper.java b/src/main/java/com/gxwebsoft/booking/mapper/OrderExportMapper.java new file mode 100644 index 0000000..3e07247 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/mapper/OrderExportMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.booking.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.booking.entity.OrderExport; +import com.gxwebsoft.booking.param.OrderExportParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 统计报表导出Mapper + * + * @author 科技小王子 + * @since 2024-08-08 02:52:45 + */ +public interface OrderExportMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") OrderExportParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") OrderExportParam param); + +} diff --git a/src/main/java/com/gxwebsoft/booking/mapper/xml/OrderExportMapper.xml b/src/main/java/com/gxwebsoft/booking/mapper/xml/OrderExportMapper.xml new file mode 100644 index 0000000..51f4485 --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/mapper/xml/OrderExportMapper.xml @@ -0,0 +1,90 @@ + + + + + + + SELECT a.* + FROM booking_order_export a + + + AND a.export_id = #{param.exportId} + + + AND a.organization_name LIKE CONCAT('%', #{param.organizationName}, '%') + + + AND a.expend_money = #{param.expendMoney} + + + AND a.breakfast_post = #{param.breakfastPost} + + + AND a.breakfast_sign = #{param.breakfastSign} + + + AND a.lunch_post = #{param.lunchPost} + + + AND a.lunch_sign = #{param.lunchSign} + + + AND a.dinner_post = #{param.dinnerPost} + + + AND a.dinner_sign = #{param.dinnerSign} + + + AND a.gear LIKE CONCAT('%', #{param.gear}, '%') + + + AND a.goods_price = #{param.goodsPrice} + + + AND a.delivery_time LIKE CONCAT('%', #{param.deliveryTime}, '%') + + + AND a.status = #{param.status} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.order_id = #{param.orderId} + + + AND a.organization_id = #{param.organizationId} + + + AND a.user_id = #{param.userId} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/booking/param/OrderExportParam.java b/src/main/java/com/gxwebsoft/booking/param/OrderExportParam.java new file mode 100644 index 0000000..7b5578a --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/param/OrderExportParam.java @@ -0,0 +1,94 @@ +package com.gxwebsoft.booking.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 统计报表导出查询参数 + * + * @author 科技小王子 + * @since 2024-08-08 02:52:45 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "OrderExportParam对象", description = "统计报表导出查询参数") +public class OrderExportParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer exportId; + + @ApiModelProperty(value = "机构名称") + private String organizationName; + + @ApiModelProperty(value = "实际消费的金额(不含退款)") + @QueryField(type = QueryType.EQ) + private BigDecimal expendMoney; + + @ApiModelProperty(value = "早餐报餐次数") + @QueryField(type = QueryType.EQ) + private Integer breakfastPost; + + @ApiModelProperty(value = "早餐签到次数") + @QueryField(type = QueryType.EQ) + private Integer breakfastSign; + + @ApiModelProperty(value = "午餐报餐次数") + @QueryField(type = QueryType.EQ) + private Integer lunchPost; + + @ApiModelProperty(value = "午餐签到次数") + @QueryField(type = QueryType.EQ) + private Integer lunchSign; + + @ApiModelProperty(value = "晚餐报餐次数") + @QueryField(type = QueryType.EQ) + private Integer dinnerPost; + + @ApiModelProperty(value = "晚餐签到次数") + @QueryField(type = QueryType.EQ) + private Integer dinnerSign; + + @ApiModelProperty(value = "档口 10 食堂档口 20 物品档口 ") + private String gear; + + @ApiModelProperty(value = "商品价格(单价)") + @QueryField(type = QueryType.EQ) + private BigDecimal goodsPrice; + + @ApiModelProperty(value = "发货时间") + private String deliveryTime; + + @ApiModelProperty(value = "状态, 0待发布, 1已发布") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "订单号") + @QueryField(type = QueryType.EQ) + private Integer orderId; + + @ApiModelProperty(value = "机构id") + @QueryField(type = QueryType.EQ) + private Integer organizationId; + + @ApiModelProperty(value = "发布人") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/booking/service/OrderExportService.java b/src/main/java/com/gxwebsoft/booking/service/OrderExportService.java new file mode 100644 index 0000000..1a8bdcc --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/service/OrderExportService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.booking.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.booking.entity.OrderExport; +import com.gxwebsoft.booking.param.OrderExportParam; + +import java.util.List; + +/** + * 统计报表导出Service + * + * @author 科技小王子 + * @since 2024-08-08 02:52:45 + */ +public interface OrderExportService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(OrderExportParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(OrderExportParam param); + + /** + * 根据id查询 + * + * @param exportId 自增ID + * @return OrderExport + */ + OrderExport getByIdRel(Integer exportId); + +} diff --git a/src/main/java/com/gxwebsoft/booking/service/impl/OrderExportServiceImpl.java b/src/main/java/com/gxwebsoft/booking/service/impl/OrderExportServiceImpl.java new file mode 100644 index 0000000..67a2b1a --- /dev/null +++ b/src/main/java/com/gxwebsoft/booking/service/impl/OrderExportServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.booking.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.booking.mapper.OrderExportMapper; +import com.gxwebsoft.booking.service.OrderExportService; +import com.gxwebsoft.booking.entity.OrderExport; +import com.gxwebsoft.booking.param.OrderExportParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 统计报表导出Service实现 + * + * @author 科技小王子 + * @since 2024-08-08 02:52:45 + */ +@Service +public class OrderExportServiceImpl extends ServiceImpl implements OrderExportService { + + @Override + public PageResult pageRel(OrderExportParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(OrderExportParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public OrderExport getByIdRel(Integer exportId) { + OrderExportParam param = new OrderExportParam(); + param.setExportId(exportId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml index cdd9b8d..ad6c798 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml @@ -150,12 +150,10 @@ AND a.create_time <= #{param.createTimeEnd} - AND (a.order_no LIKE CONCAT('%', #{param.keywords}, '%') + AND (a.order_no = #{param.keywords} OR a.order_id = #{param.keywords} OR a.phone = #{param.keywords} OR a.user_id = #{param.keywords} - OR a.merchant_id = #{param.keywords} - OR a.merchant_code =#{param.keywords} ) diff --git a/src/test/java/com/gxwebsoft/generator/BookingGenerator.java b/src/test/java/com/gxwebsoft/generator/BookingGenerator.java index e9dda13..3b4b369 100644 --- a/src/test/java/com/gxwebsoft/generator/BookingGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/BookingGenerator.java @@ -72,7 +72,7 @@ public class BookingGenerator { // "booking_match_order", // "booking_coupon", // "booking_user_coupon", - "booking_cart" + "booking_order_export" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{