Kaynağa Gözat

代码初步处理完成

yq 2 yıl önce
ebeveyn
işleme
6d39658520
25 değiştirilmiş dosya ile 1863 ekleme ve 90 silme
  1. 89 89
      src/main/java/com/usky/dxtop/MysqlGenerator.java
  2. 81 0
      src/main/java/com/usky/dxtop/controller/web/business/DreMenuController.java
  3. 78 0
      src/main/java/com/usky/dxtop/controller/web/business/DreOrderController.java
  4. 38 0
      src/main/java/com/usky/dxtop/controller/web/business/DreOrderDetailController.java
  5. 16 0
      src/main/java/com/usky/dxtop/mapper/DreMenuMapper.java
  6. 16 0
      src/main/java/com/usky/dxtop/mapper/DreOrderDetailMapper.java
  7. 16 0
      src/main/java/com/usky/dxtop/mapper/DreOrderMapper.java
  8. 76 0
      src/main/java/com/usky/dxtop/model/DreMenu.java
  9. 128 0
      src/main/java/com/usky/dxtop/model/DreOrder.java
  10. 57 0
      src/main/java/com/usky/dxtop/model/DreOrderDetail.java
  11. 30 0
      src/main/java/com/usky/dxtop/service/DreMenuService.java
  12. 23 0
      src/main/java/com/usky/dxtop/service/DreOrderDetailService.java
  13. 27 0
      src/main/java/com/usky/dxtop/service/DreOrderService.java
  14. 45 0
      src/main/java/com/usky/dxtop/service/emun/DreOrderStatus.java
  15. 93 0
      src/main/java/com/usky/dxtop/service/impl/DreMenuServiceImpl.java
  16. 43 0
      src/main/java/com/usky/dxtop/service/impl/DreOrderDetailServiceImpl.java
  17. 186 0
      src/main/java/com/usky/dxtop/service/impl/DreOrderServiceImpl.java
  18. 43 0
      src/main/java/com/usky/dxtop/service/vo/DreMenuFileVO.java
  19. 124 0
      src/main/java/com/usky/dxtop/service/vo/DreOrderExport.java
  20. 60 0
      src/main/java/com/usky/dxtop/service/vo/DreOrderRequest.java
  21. 19 0
      src/main/resources/mapper/DreMenuMapper.xml
  22. 19 0
      src/main/resources/mapper/DreOrderDetailMapper.xml
  23. 28 0
      src/main/resources/mapper/DreOrderMapper.xml
  24. 1 1
      src/main/resources/smart-doc.json
  25. 527 0
      src/main/resources/static/doc/AllInOne.md

+ 89 - 89
src/main/java/com/usky/dxtop/MysqlGenerator.java

@@ -1,89 +1,89 @@
-package com.usky.dxtop;
-
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import com.baomidou.mybatisplus.generator.AutoGenerator;
-import com.baomidou.mybatisplus.generator.InjectionConfig;
-import com.baomidou.mybatisplus.generator.config.*;
-import com.baomidou.mybatisplus.generator.config.po.TableInfo;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class MysqlGenerator {
-
-
-    public static void main(String[] args) {
-        AutoGenerator mpg = new AutoGenerator();
-        //1、全局配置
-        GlobalConfig gc = new GlobalConfig();
-        String projectPath = System.getProperty("user.dir");
-        gc.setOutputDir(projectPath + "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
-        gc.setAuthor("yq"); //设置作者
-        gc.setOpen(false);
-        gc.setFileOverride(true); //第二次生成会把第一次生成的覆盖掉
-        gc.setServiceName("%sService"); //生成的service接口名字首字母是否为I,这样设置就没有
-        gc.setBaseResultMap(true); //生成resultMap
-        mpg.setGlobalConfig(gc);
-
-        //2、数据源配置
-        DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://101.133.214.75:3306/dxtop?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
-        dsc.setDriverName("com.mysql.jdbc.Driver");
-        dsc.setUsername("usky");
-        dsc.setPassword("Yt#75Usky");
-        mpg.setDataSource(dsc);
-
-        // 3、包配置
-        PackageConfig pc = new PackageConfig();
-        pc.setParent("com.usky.dxtop");
-        pc.setController("controller.web");
-        pc.setEntity("model");
-        pc.setMapper("mapper");
-        pc.setService("service");
-        pc.setServiceImpl("service.impl");
-        mpg.setPackageInfo(pc);
-
-        // 4、策略配置
-        StrategyConfig strategy = new StrategyConfig();
-        strategy.setNaming(NamingStrategy.underline_to_camel);
-        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
-        // strategy.setTablePrefix("t_"); // 表名前缀
-        strategy.setEntityLombokModel(true); //使用lombok
-        strategy.setInclude("product_period");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
-
-        mpg.setStrategy(strategy);
-        // 关闭默认 xml 生成,调整生成 至 根目录
-        //修改对应的模块名称
-        TemplateConfig tc = new TemplateConfig();
-        // 自定义配置
-        InjectionConfig cfg = new InjectionConfig() {
-            @Override
-            public void initMap() {
-                // to do nothing
-            }
-        };
-        //如果模板引擎是 velocity
-        String templatePath = "/templates/mapper.xml.vm";
-        // 自定义输出配置
-        List<FileOutConfig> focList = new ArrayList<>();
-        // 自定义配置会被优先输出
-        String finalProjectPath = projectPath;
-        focList.add(new FileOutConfig(templatePath) {
-            @Override
-            public String outputFile(TableInfo tableInfo) {
-                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
-                return finalProjectPath + "/src/main/resources/mapper" + "/"
-                        + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
-            }
-        });
-        cfg.setFileOutConfigList(focList);
-        mpg.setCfg(cfg);
-        tc.setXml(null);
-        mpg.setTemplate(tc);
-
-        //5、执行
-        mpg.execute();
-    }
-
-}
+//package com.usky.dxtop;
+//
+//import com.baomidou.mybatisplus.core.toolkit.StringPool;
+//import com.baomidou.mybatisplus.generator.AutoGenerator;
+//import com.baomidou.mybatisplus.generator.InjectionConfig;
+//import com.baomidou.mybatisplus.generator.config.*;
+//import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+//
+//import java.util.ArrayList;
+//import java.util.List;
+//
+//public class MysqlGenerator {
+//
+//
+//    public static void main(String[] args) {
+//        AutoGenerator mpg = new AutoGenerator();
+//        //1、全局配置
+//        GlobalConfig gc = new GlobalConfig();
+//        String projectPath = System.getProperty("user.dir");
+//        gc.setOutputDir(projectPath + "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
+//        gc.setAuthor("yq"); //设置作者
+//        gc.setOpen(false);
+//        gc.setFileOverride(true); //第二次生成会把第一次生成的覆盖掉
+//        gc.setServiceName("%sService"); //生成的service接口名字首字母是否为I,这样设置就没有
+//        gc.setBaseResultMap(true); //生成resultMap
+//        mpg.setGlobalConfig(gc);
+//
+//        //2、数据源配置
+//        DataSourceConfig dsc = new DataSourceConfig();
+//        dsc.setUrl("jdbc:mysql://101.133.214.75:3306/dxtop?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
+//        dsc.setDriverName("com.mysql.jdbc.Driver");
+//        dsc.setUsername("usky");
+//        dsc.setPassword("Yt#75Usky");
+//        mpg.setDataSource(dsc);
+//
+//        // 3、包配置
+//        PackageConfig pc = new PackageConfig();
+//        pc.setParent("com.usky.dxtop");
+//        pc.setController("controller.web");
+//        pc.setEntity("model");
+//        pc.setMapper("mapper");
+//        pc.setService("service");
+//        pc.setServiceImpl("service.impl");
+//        mpg.setPackageInfo(pc);
+//
+//        // 4、策略配置
+//        StrategyConfig strategy = new StrategyConfig();
+//        strategy.setNaming(NamingStrategy.underline_to_camel);
+//        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
+//        // strategy.setTablePrefix("t_"); // 表名前缀
+//        strategy.setEntityLombokModel(true); //使用lombok
+//        strategy.setInclude("dre_menu","dre_order","dre_order_detail");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+//
+//        mpg.setStrategy(strategy);
+//        // 关闭默认 xml 生成,调整生成 至 根目录
+//        //修改对应的模块名称
+//        TemplateConfig tc = new TemplateConfig();
+//        // 自定义配置
+//        InjectionConfig cfg = new InjectionConfig() {
+//            @Override
+//            public void initMap() {
+//                // to do nothing
+//            }
+//        };
+//        //如果模板引擎是 velocity
+//        String templatePath = "/templates/mapper.xml.vm";
+//        // 自定义输出配置
+//        List<FileOutConfig> focList = new ArrayList<>();
+//        // 自定义配置会被优先输出
+//        String finalProjectPath = projectPath;
+//        focList.add(new FileOutConfig(templatePath) {
+//            @Override
+//            public String outputFile(TableInfo tableInfo) {
+//                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
+//                return finalProjectPath + "/src/main/resources/mapper" + "/"
+//                        + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+//            }
+//        });
+//        cfg.setFileOutConfigList(focList);
+//        mpg.setCfg(cfg);
+//        tc.setXml(null);
+//        mpg.setTemplate(tc);
+//
+//        //5、执行
+//        mpg.execute();
+//    }
+//
+//}

+ 81 - 0
src/main/java/com/usky/dxtop/controller/web/business/DreMenuController.java

@@ -0,0 +1,81 @@
+package com.usky.dxtop.controller.web.business;
+
+
+import com.usky.dxtop.common.annotation.RepeatSubmit;
+import com.usky.dxtop.common.core.domain.ApiResult;
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.model.Company;
+import com.usky.dxtop.model.DreMenu;
+import com.usky.dxtop.service.DreMenuService;
+import com.usky.dxtop.service.vo.OrderFileVO;
+import io.swagger.annotations.ApiResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * 餐品信息
+ * @author yq
+ * @since 2022-08-14
+ */
+@RestController
+@RequestMapping("/dreMenu")
+public class DreMenuController {
+
+
+    @Autowired
+    private DreMenuService dreMenuService;
+
+
+    /**
+     * 上传餐品
+     * @param file
+     * @return
+     */
+    @RepeatSubmit
+    @PostMapping("/batchByFile")
+    public ApiResult<Void> batchByFile(@RequestParam("file") MultipartFile file){
+        dreMenuService.addBatchByFile(file);
+        return ApiResult.success();
+    }
+
+    /**
+     * 修改记录
+     */
+    @PutMapping
+    public ApiResult<Void> edit(@RequestBody DreMenu dreMenu) {
+        dreMenuService.updateById(dreMenu);
+        return ApiResult.success();
+    }
+
+
+    /**
+     * 记录查询
+     * @param current 页数
+     * @param size 条数
+     * @param type 餐别
+     * @param name 名称
+     * @param isRecommend 0不推荐1推荐
+     * @param status 0上架1下架
+     * @return
+     */
+    @GetMapping("/list")
+    public ApiResult<CommonPage<DreMenu>> list(@RequestParam Integer current,
+                                               @RequestParam Integer size,
+                                               @RequestParam(required = false) String type,
+                                               @RequestParam(required = false) String name,
+                                               @RequestParam(required = false) Integer isRecommend,
+                                               @RequestParam(required = false) Integer status)
+    {
+
+        return ApiResult.success(dreMenuService.page(current,size,type,name,isRecommend,status));
+    }
+
+
+
+}
+

+ 78 - 0
src/main/java/com/usky/dxtop/controller/web/business/DreOrderController.java

@@ -0,0 +1,78 @@
+package com.usky.dxtop.controller.web.business;
+
+
+import com.usky.dxtop.common.annotation.RepeatSubmit;
+import com.usky.dxtop.common.constant.UserConstants;
+import com.usky.dxtop.common.core.domain.ApiResult;
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.model.Company;
+import com.usky.dxtop.model.DreOrder;
+import com.usky.dxtop.service.CompanyService;
+import com.usky.dxtop.service.DreOrderService;
+import com.usky.dxtop.service.vo.DreOrderRequest;
+import io.swagger.annotations.ApiResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * 餐品订单
+ * @author yq
+ * @since 2022-08-14
+ */
+@RestController
+@RequestMapping("/dreOrder")
+public class DreOrderController {
+
+
+    @Autowired
+    private DreOrderService dreOrderService;
+
+    /**
+     * 新增记录
+     * @param dreOrder
+     * @return
+     */
+    @RepeatSubmit
+    @PostMapping
+    public ApiResult<Void> add(@RequestBody DreOrder dreOrder){
+        dreOrderService.add(dreOrder);
+        return ApiResult.success();
+    }
+
+    /**
+     * 修改记录
+     */
+    @PutMapping
+    public ApiResult<Void> edit(@RequestBody DreOrder dreOrder) {
+        dreOrderService.update(dreOrder);
+        return ApiResult.success();
+    }
+
+    /**
+     * 分页记录查询
+     * @return
+     */
+    @PostMapping("/page")
+    public ApiResult<CommonPage<DreOrder>> page(@RequestBody DreOrderRequest dreOrderRequest)
+    {
+        return ApiResult.success(dreOrderService.page(dreOrderRequest));
+    }
+
+
+    /**
+     * 订单详情导出
+     * @param dreOrderRequest
+     * @return
+     */
+    @PostMapping("/exportDetail")
+    public ApiResult<String> exportDetail(@RequestBody DreOrderRequest dreOrderRequest){
+        return ApiResult.success(dreOrderService.exportDetail(dreOrderRequest));
+    }
+
+
+
+}
+

+ 38 - 0
src/main/java/com/usky/dxtop/controller/web/business/DreOrderDetailController.java

@@ -0,0 +1,38 @@
+package com.usky.dxtop.controller.web.business;
+
+
+import com.usky.dxtop.common.core.domain.ApiResult;
+import com.usky.dxtop.model.DreOrderDetail;
+import com.usky.dxtop.service.DreOrderDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import org.springframework.stereotype.Controller;
+
+import java.util.List;
+
+/**
+ * 餐品订单详情
+ * @author yq
+ * @since 2022-08-14
+ */
+@RestController
+@RequestMapping("/dreOrderDetail")
+public class DreOrderDetailController {
+
+
+    @Autowired
+    private DreOrderDetailService dreOrderDetailService;
+
+
+    /**
+     * 订单餐品集合
+     * @param orderId
+     * @return
+     */
+    @GetMapping("/listByOrder")
+    public ApiResult<List<DreOrderDetail>> listByOrder(@RequestParam Long orderId){
+        return ApiResult.success(dreOrderDetailService.list(orderId));
+    }
+}
+

+ 16 - 0
src/main/java/com/usky/dxtop/mapper/DreMenuMapper.java

@@ -0,0 +1,16 @@
+package com.usky.dxtop.mapper;
+
+import com.usky.dxtop.model.DreMenu;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+public interface DreMenuMapper extends BaseMapper<DreMenu> {
+
+}

+ 16 - 0
src/main/java/com/usky/dxtop/mapper/DreOrderDetailMapper.java

@@ -0,0 +1,16 @@
+package com.usky.dxtop.mapper;
+
+import com.usky.dxtop.model.DreOrderDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+public interface DreOrderDetailMapper extends BaseMapper<DreOrderDetail> {
+
+}

+ 16 - 0
src/main/java/com/usky/dxtop/mapper/DreOrderMapper.java

@@ -0,0 +1,16 @@
+package com.usky.dxtop.mapper;
+
+import com.usky.dxtop.model.DreOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+public interface DreOrderMapper extends BaseMapper<DreOrder> {
+
+}

+ 76 - 0
src/main/java/com/usky/dxtop/model/DreMenu.java

@@ -0,0 +1,76 @@
+package com.usky.dxtop.model;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DreMenu implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 餐别
+     */
+    private String type;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 单价
+     */
+    private BigDecimal price;
+
+    /**
+     * 是否推荐0否1是
+     */
+    private Integer isRecommend;
+
+    /**
+     * 0上架1下架
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+
+}

+ 128 - 0
src/main/java/com/usky/dxtop/model/DreOrder.java

@@ -0,0 +1,128 @@
+package com.usky.dxtop.model;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DreOrder implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 订单编号
+     */
+    private String orderNumber;
+
+    /**
+     * 下单人
+     */
+    private String orderUserName;
+
+    /**
+     * 下单时间
+     */
+    private Date orderTime;
+
+    /**
+     * 点餐人联系电话
+     */
+    private String phone;
+
+    /**
+     * 订单地址
+     */
+    private String address;
+
+    /**
+     * 总金额
+     */
+    private BigDecimal totalMoney;
+
+    /**
+     * 订单状态
+     */
+    private Integer orderStatus;
+
+    /**
+     * 餐别
+     */
+    private String mType;
+
+    /**
+     * 接单人
+     */
+    private String receiveUserName;
+
+    /**
+     * 接单时间
+     */
+    private Date receiveTime;
+
+    /**
+     * 送单人
+     */
+    private String sendUserName;
+
+    /**
+     * 送单时间
+     */
+    private Date sendTime;
+
+    /**
+     * 完成时间
+     */
+    private Date sendEndTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    private String updateBy;
+
+
+    @TableField(exist = false)
+    private List<DreOrderDetail> dreOrderDetails;
+
+}

+ 57 - 0
src/main/java/com/usky/dxtop/model/DreOrderDetail.java

@@ -0,0 +1,57 @@
+package com.usky.dxtop.model;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DreOrderDetail implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 订单编号
+     */
+    private Long orderId;
+
+    /**
+     * 名称
+     */
+    private String mName;
+
+    /**
+     * 单价
+     */
+    private BigDecimal mPrice;
+
+    /**
+     * 总金额
+     */
+    private BigDecimal totalPrice;
+
+    /**
+     * 数量
+     */
+    private Integer mCount;
+
+
+
+}

+ 30 - 0
src/main/java/com/usky/dxtop/service/DreMenuService.java

@@ -0,0 +1,30 @@
+package com.usky.dxtop.service;
+
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.model.Company;
+import com.usky.dxtop.model.DreMenu;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+public interface DreMenuService extends IService<DreMenu> {
+
+
+
+
+    void addBatchByFile(MultipartFile file);
+
+    CommonPage<DreMenu> page(Integer current, Integer size,
+                             String type,
+                             String name,
+                             Integer isRecommend,
+                             Integer status);
+}

+ 23 - 0
src/main/java/com/usky/dxtop/service/DreOrderDetailService.java

@@ -0,0 +1,23 @@
+package com.usky.dxtop.service;
+
+import com.usky.dxtop.model.DreOrder;
+import com.usky.dxtop.model.DreOrderDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+public interface DreOrderDetailService extends IService<DreOrderDetail> {
+
+    void insertList(DreOrder dreOrder);
+
+    List<DreOrderDetail> list(Long orderId);
+
+}

+ 27 - 0
src/main/java/com/usky/dxtop/service/DreOrderService.java

@@ -0,0 +1,27 @@
+package com.usky.dxtop.service;
+
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.model.Company;
+import com.usky.dxtop.model.DreOrder;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.usky.dxtop.service.vo.DreOrderRequest;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+public interface DreOrderService extends IService<DreOrder> {
+
+
+    boolean add(DreOrder dreOrder);
+
+    boolean update(DreOrder dreOrder);
+
+    CommonPage<DreOrder> page(DreOrderRequest dreOrderRequest);
+
+    String exportDetail(DreOrderRequest dreOrderRequest);
+}

+ 45 - 0
src/main/java/com/usky/dxtop/service/emun/DreOrderStatus.java

@@ -0,0 +1,45 @@
+package com.usky.dxtop.service.emun;
+
+/**
+ * @author yq
+ * @date 2022/8/14 14:06
+ */
+public enum DreOrderStatus {
+
+    HAVE(0,"已接单"),
+
+    FOOD(1,"配菜中"),
+
+    SEND(2,"送餐中"),
+
+    COMPLETE(3,"已完成");
+
+    private Integer code;
+
+    private String name;
+
+    DreOrderStatus(Integer code,String name){
+        this.code = code;
+        this.name = name;
+    }
+
+    public static DreOrderStatus parse(Integer code){
+        DreOrderStatus dreOrderStatus = null;
+        for (DreOrderStatus o:DreOrderStatus.values()) {
+            if (o.getCode().equals(code)){
+                dreOrderStatus = o;
+                break;
+            }
+        }
+        return dreOrderStatus;
+    }
+
+
+    public Integer getCode(){
+        return code;
+    }
+
+    public String getName(){
+        return name;
+    }
+}

+ 93 - 0
src/main/java/com/usky/dxtop/service/impl/DreMenuServiceImpl.java

@@ -0,0 +1,93 @@
+package com.usky.dxtop.service.impl;
+
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.common.utils.BeanMapperUtils;
+import com.usky.dxtop.common.utils.StringUtils;
+import com.usky.dxtop.model.Company;
+import com.usky.dxtop.model.DreMenu;
+import com.usky.dxtop.mapper.DreMenuMapper;
+import com.usky.dxtop.model.Order;
+import com.usky.dxtop.service.DreMenuService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.usky.dxtop.service.vo.DreMenuFileVO;
+import com.usky.dxtop.service.vo.OrderFileVO;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+@Service
+public class DreMenuServiceImpl extends ServiceImpl<DreMenuMapper, DreMenu> implements DreMenuService {
+
+    @Override
+    public void addBatchByFile(MultipartFile file) {
+        this.saveBatch(getListByFile(file));
+    }
+
+    @Override
+    public CommonPage<DreMenu> page(Integer current, Integer size, String type, String name, Integer isRecommend, Integer status) {
+        IPage<DreMenu> page = new Page<>(current, size);
+        LambdaQueryWrapper<DreMenu> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper
+                .eq(StringUtils.isNotBlank(type),DreMenu::getType,type)
+                .like(StringUtils.isNotBlank(name),DreMenu::getName,name)
+                .eq(null != isRecommend,DreMenu::getIsRecommend,isRecommend)
+                .eq(null != status,DreMenu::getStatus,status)
+                .orderByDesc(DreMenu::getId);
+        page = this.page(page,queryWrapper);
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
+
+
+    public List<DreMenu> getListByFile(MultipartFile multipartFile){
+        ImportParams importParams = new ImportParams();
+        importParams.setHeadRows(1);
+        try {
+            List<DreMenuFileVO> dreMenuFileVOS = ExcelImportUtil.importExcel(
+                    multipartFile.getInputStream(),
+                    DreMenuFileVO.class,
+                    importParams
+            );
+            if (CollectionUtils.isEmpty(dreMenuFileVOS)){
+                throw new CustomException("表格数据为空");
+            }
+            List<DreMenu> dreMenus = BeanMapperUtils.mapList(dreMenuFileVOS, DreMenuFileVO.class, DreMenu.class);
+            long count = dreMenuFileVOS.stream().filter(order -> null == order.getPrice() && order.getPrice().compareTo(BigDecimal.ZERO) == 0).count();
+            if (count > 0){
+                throw new CustomException("菜品单价不能为空");
+            }
+            long count1 = dreMenuFileVOS.stream().filter(order -> StringUtils.isBlank(order.getType())).count();
+            if (count1 > 0){
+                throw new CustomException("菜品类型不能为空");
+            }
+            long count2 = dreMenuFileVOS.stream().filter(order -> StringUtils.isBlank(order.getName())).count();
+            if (count2 > 0){
+                throw new CustomException("菜品名称不能为空");
+            }
+            long count3 = dreMenuFileVOS.stream().filter(order -> null != order.getIsRecommend()).count();
+            if (count3 > 0){
+                throw new CustomException("是否上下架不能为空");
+            }
+            return dreMenus;
+        }catch (Exception e){
+            throw new CustomException("解析菜品文件异常,检查表格格式"+e.getMessage());
+        }
+    }
+}

+ 43 - 0
src/main/java/com/usky/dxtop/service/impl/DreOrderDetailServiceImpl.java

@@ -0,0 +1,43 @@
+package com.usky.dxtop.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.model.DreOrder;
+import com.usky.dxtop.model.DreOrderDetail;
+import com.usky.dxtop.mapper.DreOrderDetailMapper;
+import com.usky.dxtop.service.DreOrderDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+@Service
+public class DreOrderDetailServiceImpl extends ServiceImpl<DreOrderDetailMapper, DreOrderDetail> implements DreOrderDetailService {
+
+    @Override
+    public void insertList(DreOrder dreOrder) {
+        List<DreOrderDetail> dreOrderDetails = dreOrder.getDreOrderDetails();
+        if (CollectionUtils.isEmpty(dreOrderDetails)){
+            throw new CustomException("菜品信息不能为空");
+        }
+        dreOrderDetails.forEach(dreOrderDetail -> dreOrderDetail.setOrderId(dreOrder.getId()));
+        this.saveBatch(dreOrderDetails);
+    }
+
+    @Override
+    public List<DreOrderDetail> list(Long orderId) {
+        LambdaQueryWrapper<DreOrderDetail> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(DreOrderDetail::getOrderId,orderId);
+        return this.list(queryWrapper);
+    }
+}

+ 186 - 0
src/main/java/com/usky/dxtop/service/impl/DreOrderServiceImpl.java

@@ -0,0 +1,186 @@
+package com.usky.dxtop.service.impl;
+
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.dxtop.common.core.domain.model.LoginUser;
+import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.common.utils.DateUtils;
+import com.usky.dxtop.common.utils.ExcelUtils;
+import com.usky.dxtop.common.utils.SecurityUtils;
+import com.usky.dxtop.common.utils.StringUtils;
+import com.usky.dxtop.common.utils.uuid.UUID;
+import com.usky.dxtop.model.*;
+import com.usky.dxtop.mapper.DreOrderMapper;
+import com.usky.dxtop.service.DreOrderDetailService;
+import com.usky.dxtop.service.DreOrderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.usky.dxtop.service.ISysAsyncTaskService;
+import com.usky.dxtop.service.SysFileService;
+import com.usky.dxtop.service.emun.AsyncResultType;
+import com.usky.dxtop.service.emun.OrderPayType;
+import com.usky.dxtop.service.emun.OrderSceneCode;
+import com.usky.dxtop.service.emun.OrderStatus;
+import com.usky.dxtop.service.vo.DreOrderExport;
+import com.usky.dxtop.service.vo.DreOrderRequest;
+import com.usky.dxtop.service.vo.OrderExport;
+import com.usky.dxtop.service.vo.OrderRequest;
+import ma.glasnost.orika.MapperFacade;
+import ma.glasnost.orika.MapperFactory;
+import ma.glasnost.orika.impl.DefaultMapperFactory;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.aop.framework.AopContext;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author yq
+ * @since 2022-08-14
+ */
+@Service
+public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> implements DreOrderService {
+
+
+    @Autowired
+    private ISysAsyncTaskService sysAsyncTaskService;
+
+    @Autowired
+    private DreOrderDetailService dreOrderDetailService;
+
+    @Autowired
+    private SysFileService sysFileService;
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean add(DreOrder dreOrder) {
+        String orderNumber = UUID.randomUUID().toString(true);
+        dreOrder.setOrderNumber(orderNumber);
+        this.save(dreOrder);
+        dreOrderDetailService.insertList(dreOrder);
+        return true;
+    }
+
+    @Override
+    public boolean update(DreOrder dreOrder) {
+        return this.updateById(dreOrder);
+    }
+
+    @Override
+    public CommonPage<DreOrder> page(DreOrderRequest dreOrderRequest) {
+        IPage<DreOrder> page = new Page<>(dreOrderRequest.getCurrent(), dreOrderRequest.getSize());
+        LambdaQueryWrapper<DreOrder> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper
+                .eq(StringUtils.isNotBlank(dreOrderRequest.getMType()),DreOrder::getMType,dreOrderRequest.getMType())
+                .eq(null != dreOrderRequest.getOrderStatus(),DreOrder::getOrderStatus,dreOrderRequest.getOrderStatus())
+                .eq(StringUtils.isNotBlank(dreOrderRequest.getOrderUserName()),DreOrder::getOrderUserName,dreOrderRequest.getOrderUserName())
+                .eq(StringUtils.isNotBlank(dreOrderRequest.getPhone()),DreOrder::getPhone,dreOrderRequest.getPhone())
+                .eq(StringUtils.isNotBlank(dreOrderRequest.getReceiveUserName()),DreOrder::getReceiveUserName,dreOrderRequest.getReceiveUserName())
+                .eq(StringUtils.isNotBlank(dreOrderRequest.getSendUserName()),DreOrder::getSendUserName,dreOrderRequest.getSendUserName())
+                .orderByDesc(DreOrder::getId);
+        page = this.page(page,queryWrapper);
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
+
+    @Override
+    public String exportDetail(DreOrderRequest dreOrderRequest) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        SysUser user = loginUser.getUser();
+        Long taskId = sysAsyncTaskService.getId(user.getUserName(), "订单详情");
+        if (null == taskId) {
+            throw new CustomException("获取次数太多了请稍后获取");
+        }
+        ((DreOrderServiceImpl) AopContext.currentProxy()).syncOrder(taskId,dreOrderRequest);
+        return String.valueOf(taskId);
+    }
+
+
+    @Async
+    public void syncOrder(Long taskId, DreOrderRequest dreOrderRequest){
+        Workbook workbook = null;
+        try {
+            ExportParams params = new ExportParams(null, "订单详情");
+            workbook = ExcelExportUtil.exportBigExcel(params, OrderExport.class,
+                    (o, i) -> {
+                        dreOrderRequest.setCurrent(i);
+                        dreOrderRequest.setSize(30);
+                        CommonPage<DreOrder> page = this.page(dreOrderRequest);
+                        return page.getRecords().stream().map(this::orderChangeOrderExport).collect(Collectors.toList());
+                    },null);
+            if (null != workbook) {
+                String fileName = String.format("%s.xls", "订单详情");
+                MultipartFile multipartFile = ExcelUtils.downLoadExcel(workbook, fileName);
+                uploadOrderFile(multipartFile,taskId);
+            } else {
+                sysAsyncTaskService.sendResult(taskId, false, "订单表格数据为空", AsyncResultType.TEXT);
+            }
+        } catch (Exception e) {
+            log.error("导出文件失败", e);
+            sysAsyncTaskService.sendResult(taskId, false, "导出订单文件失败", AsyncResultType.TEXT);
+        } finally {
+            if (workbook != null) {
+                try {
+                    workbook.close();
+                } catch (IOException e) {
+                    log.error("===export spec=== 关闭workbook失败", e);
+                }
+            }
+        }
+    }
+
+
+    public void uploadOrderFile(MultipartFile multipartFile, Long taskId){
+        List<MultipartFile> list = new ArrayList<>();
+        list.add(multipartFile);
+        String batchNo = sysFileService.generateBatchNo();
+        SysFile sysFile = new SysFile();
+        sysFile.setBatchNo(batchNo);
+        sysFile.setFiles(list);
+        sysFile.setUploadType(SysFileServiceImpl.FILE);
+        sysFile.setBusinessType("订单详情");
+        sysFile.setExpriceAt(DateUtils.addDays(new Date(), 3));
+        List<SysFile> sysFileList = sysFileService.addFile(sysFile);
+        long count = sysFileList.stream().filter(sysFileDTO -> !sysFileDTO.getSuccess()).count();
+        if (count > 0) {
+            sysAsyncTaskService.sendResult(taskId, false, "上传文件失败", AsyncResultType.TEXT);
+            return;
+        }
+        List<String> idList = sysFileList.stream().map(sf -> sf.getId().toString()).collect(Collectors.toList());
+        boolean active = sysFileService.active(batchNo,idList);
+        if (active) {
+            sysAsyncTaskService.sendResult(taskId, true, batchNo, AsyncResultType.FILE);
+        } else {
+            sysAsyncTaskService.sendResult(taskId, false, "上传文件失败", AsyncResultType.TEXT);
+        }
+    }
+
+
+    public DreOrderExport orderChangeOrderExport(DreOrder dreOrder){
+        MapperFactory factory = new DefaultMapperFactory.Builder().build();
+        factory.classMap(Order.class, OrderExport.class)
+                .exclude("orderStatus")
+                .byDefault().register();
+        MapperFacade mapper = factory.getMapperFacade();
+        DreOrderExport orderExport = mapper.map(dreOrder, DreOrderExport.class);
+        orderExport.setOrderStatus(OrderStatus.parse(dreOrder.getOrderStatus()).getName());
+        return orderExport;
+    }
+
+
+}

+ 43 - 0
src/main/java/com/usky/dxtop/service/vo/DreMenuFileVO.java

@@ -0,0 +1,43 @@
+package com.usky.dxtop.service.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.math.BigDecimal;
+
+/**
+ * @author yq
+ * @date 2022/8/14 13:16
+ */
+@Data
+public class DreMenuFileVO {
+
+    /**
+     * 餐别
+     */
+    @Excel(name = "餐别",width = 14)
+    @NotBlank(message = "[餐别]不能为空")
+    private String type;
+
+    /**
+     * 名称
+     */
+    @Excel(name = "名称",width = 14)
+    @NotBlank(message = "[名称]不能为空")
+    private String name;
+
+    /**
+     * 单价
+     */
+    @Excel(name = "单价",width = 14)
+    @NotBlank(message = "[单价]不能为空")
+    private BigDecimal price;
+
+    /**
+     * 是否推荐0否1是
+     */
+    @Excel(name = "是否推荐(0否1是)",width = 14)
+    @NotBlank(message = "[是否推荐]不能为空")
+    private Integer isRecommend;
+}

+ 124 - 0
src/main/java/com/usky/dxtop/service/vo/DreOrderExport.java

@@ -0,0 +1,124 @@
+package com.usky.dxtop.service.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author yq
+ * @date 2022/8/14 13:59
+ */
+@Data
+public class DreOrderExport {
+
+
+    /**
+     * 订单编号
+     */
+    @Excel(name = "订单编号", height = 6, width = 20)
+    private String orderNumber;
+
+    /**
+     * 下单人
+     */
+    @Excel(name = "下单人", height = 6, width = 20)
+    private String orderUserName;
+
+    /**
+     * 下单时间
+     */
+    @Excel(name = "下单时间", height = 6, width = 20)
+    private Date orderTime;
+
+    /**
+     * 点餐人联系电话
+     */
+    @Excel(name = "点餐人联系电话", height = 6, width = 20)
+    private String phone;
+
+    /**
+     * 订单地址
+     */
+    @Excel(name = "订单地址", height = 6, width = 20)
+    private String address;
+
+    /**
+     * 总金额
+     */
+    @Excel(name = "总金额", height = 6, width = 20)
+    private BigDecimal totalMoney;
+
+    /**
+     * 订单状态
+     */
+    @Excel(name = "订单状态", height = 6, width = 20)
+    private String orderStatus;
+
+    /**
+     * 餐别
+     */
+    @Excel(name = "餐别", height = 6, width = 20)
+    private String mType;
+
+    /**
+     * 接单人
+     */
+    @Excel(name = "接单人", height = 6, width = 20)
+    private String receiveUserName;
+
+    /**
+     * 接单时间
+     */
+    @Excel(name = "接单时间", height = 6, width = 20)
+    private Date receiveTime;
+
+    /**
+     * 送单人
+     */
+    @Excel(name = "送单人", height = 6, width = 20)
+    private String sendUserName;
+
+    /**
+     * 送单时间
+     */
+    @Excel(name = "送单时间", height = 6, width = 20)
+    private Date sendTime;
+
+    /**
+     * 完成时间
+     */
+    @Excel(name = "完成时间", height = 6, width = 20)
+    private Date sendEndTime;
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注", height = 6, width = 20)
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @Excel(name = "创建时间", height = 6, width = 20)
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @Excel(name = "创建人", height = 6, width = 20)
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    @Excel(name = "修改时间", height = 6, width = 20)
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    @Excel(name = "修改人", height = 6, width = 20)
+    private String updateBy;
+}

+ 60 - 0
src/main/java/com/usky/dxtop/service/vo/DreOrderRequest.java

@@ -0,0 +1,60 @@
+package com.usky.dxtop.service.vo;
+
+import lombok.Data;
+import oshi.driver.windows.wmi.Win32Processor;
+
+import java.util.Date;
+
+/**
+ * @author yq
+ * @date 2022/8/14 13:28
+ */
+@Data
+public class DreOrderRequest {
+
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+    /**
+     * 餐别
+     */
+    private String mType;
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+    /**
+     * 订单状态
+     */
+    private Integer orderStatus;
+
+    /**
+     * 下单人
+     */
+    private String orderUserName;
+    /**
+     * 点餐人联系电话
+     */
+    private String phone;
+
+    /**
+     * 接单人
+     */
+    private String receiveUserName;
+
+    /**
+     * 送单人
+     */
+    private String sendUserName;
+
+}

+ 19 - 0
src/main/resources/mapper/DreMenuMapper.xml

@@ -0,0 +1,19 @@
+<?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.usky.dxtop.mapper.DreMenuMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.dxtop.model.DreMenu">
+        <id column="id" property="id" />
+        <result column="type" property="type" />
+        <result column="name" property="name" />
+        <result column="price" property="price" />
+        <result column="is_recommend" property="isRecommend" />
+        <result column="status" property="status" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+    </resultMap>
+
+</mapper>

+ 19 - 0
src/main/resources/mapper/DreOrderDetailMapper.xml

@@ -0,0 +1,19 @@
+<?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.usky.dxtop.mapper.DreOrderDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.dxtop.model.DreOrderDetail">
+        <id column="id" property="id" />
+        <result column="order_id" property="orderId" />
+        <result column="m_name" property="mName" />
+        <result column="m_price" property="mPrice" />
+        <result column="total_price" property="totalPrice" />
+        <result column="m_count" property="mCount" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_by" property="updateBy" />
+    </resultMap>
+
+</mapper>

+ 28 - 0
src/main/resources/mapper/DreOrderMapper.xml

@@ -0,0 +1,28 @@
+<?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.usky.dxtop.mapper.DreOrderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.dxtop.model.DreOrder">
+        <id column="id" property="id" />
+        <result column="order_number" property="orderNumber" />
+        <result column="order_user_name" property="orderUserName" />
+        <result column="order_time" property="orderTime" />
+        <result column="phone" property="phone" />
+        <result column="address" property="address" />
+        <result column="total_money" property="totalMoney" />
+        <result column="order_status" property="orderStatus" />
+        <result column="m_type" property="mType" />
+        <result column="receive_user_name" property="receiveUserName" />
+        <result column="receive_time" property="receiveTime" />
+        <result column="send_user_name" property="sendUserName" />
+        <result column="send_time" property="sendTime" />
+        <result column="send_end_time" property="sendEndTime" />
+        <result column="remark" property="remark" />
+        <result column="create_time" property="createTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_by" property="updateBy" />
+    </resultMap>
+
+</mapper>

+ 1 - 1
src/main/resources/smart-doc.json

@@ -4,7 +4,7 @@
   "isStrict": false,
   "coverOld": true,
   "allInOne": true,
-  "packageFilters": "com.usky.dxtop.controller.web",
+  "packageFilters": "com.usky.dxtop.controller.web.business.DreMenuController,com.usky.dxtop.controller.web.business.DreOrderController,com.usky.dxtop.controller.web.business.DreOrderDetailController",
   "requestExample":"false",
   "responseExample":"true",
   "projectName": "充值系统API接口说明文件",

+ 527 - 0
src/main/resources/static/doc/AllInOne.md

@@ -0,0 +1,527 @@
+# 充值系统API接口说明文件
+Version |  Update Time  | Status | Author |  Description
+---|---|---|---|---
+v2022-08-14 14:28:23|2022-08-14 14:28:23|auto|@pc|Created by smart-doc
+
+
+
+## 餐品信息
+### 上传餐品
+**URL:** https://smartpark.caih.com/dxapi/dreMenu/batchByFile
+
+**Type:** POST
+
+**Author:** yq
+
+**Content-Type:** multipart/form-data
+
+**Description:** 上传餐品
+
+**Query-parameters:**
+
+Parameter | Type|Description|Required|Since
+---|---|---|---|---
+file|file|No comments found.|true|-
+
+**Response-fields:**
+
+Field | Type|Description|Since
+---|---|---|---
+status|object|状态|-
+code|string|状态码|-
+msg|string|异常消息|-
+data|object|数据|-
+exception|string|异常|-
+
+**Response-example:**
+```
+{
+	"status": {
+		
+	},
+	"code": "53312",
+	"msg": "1tjoh1",
+	"data": null,
+	"exception": "ptgub9"
+}
+```
+
+### 修改记录
+**URL:** https://smartpark.caih.com/dxapi/dreMenu/
+
+**Type:** PUT
+
+**Author:** yq
+
+**Content-Type:** application/json; charset=utf-8
+
+**Description:** 修改记录
+
+**Body-parameters:**
+
+Parameter | Type|Description|Required|Since
+---|---|---|---|---
+id|int64|主键|false|-
+type|string|餐别|false|-
+name|string|名称|false|-
+price|number|单价|false|-
+isRecommend|int32|是否推荐0否1是|false|-
+status|int32|0上架1下架|false|-
+createTime|string|创建时间|false|-
+createBy|string|创建人|false|-
+updateTime|string|修改时间|false|-
+updateBy|string|修改人|false|-
+
+**Response-fields:**
+
+Field | Type|Description|Since
+---|---|---|---
+status|object|状态|-
+code|string|状态码|-
+msg|string|异常消息|-
+data|object|数据|-
+exception|string|异常|-
+
+**Response-example:**
+```
+{
+	"status": {
+		
+	},
+	"code": "53312",
+	"msg": "rvxdne",
+	"data": null,
+	"exception": "srbxn0"
+}
+```
+
+### 记录查询
+**URL:** https://smartpark.caih.com/dxapi/dreMenu/list
+
+**Type:** GET
+
+**Author:** yq
+
+**Content-Type:** application/x-www-form-urlencoded;charset=utf-8
+
+**Description:** 记录查询
+
+**Query-parameters:**
+
+Parameter | Type|Description|Required|Since
+---|---|---|---|---
+current|int32|页数|true|-
+size|int32|条数|true|-
+type|string|餐别|false|-
+name|string|名称|false|-
+isRecommend|int32|0不推荐1推荐|false|-
+status|int32|0上架1下架|false|-
+
+**Response-fields:**
+
+Field | Type|Description|Since
+---|---|---|---
+status|object|状态|-
+code|string|状态码|-
+msg|string|异常消息|-
+data|object|数据|-
+└─records|array|数据|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─id|int64|主键|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─type|string|餐别|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─name|string|名称|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─price|number|单价|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─isRecommend|int32|是否推荐0否1是|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─status|int32|0上架1下架|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─createTime|string|创建时间|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─createBy|string|创建人|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─updateTime|string|修改时间|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─updateBy|string|修改人|-
+└─total|int64|总条数|-
+└─size|int64|页数|-
+└─current|int64|条数|-
+exception|string|异常|-
+
+**Response-example:**
+```
+{
+	"status": {
+		
+	},
+	"code": "53312",
+	"msg": "ermk7k",
+	"data": {
+		"records": [
+			{
+				"id": 806,
+				"type": "cnshr0",
+				"name": "展鹏.钟",
+				"price": 900,
+				"isRecommend": 175,
+				"status": 364,
+				"createTime": "2022-08-14 14:28:25",
+				"createBy": "q68z0k",
+				"updateTime": "2022-08-14 14:28:25",
+				"updateBy": "pejiek"
+			}
+		],
+		"total": 534,
+		"size": 351,
+		"current": 617
+	},
+	"exception": "aqjm0m"
+}
+```
+
+## 餐品订单
+### 新增记录
+**URL:** https://smartpark.caih.com/dxapi/dreOrder/
+
+**Type:** POST
+
+**Author:** yq
+
+**Content-Type:** application/json; charset=utf-8
+
+**Description:** 新增记录
+
+**Body-parameters:**
+
+Parameter | Type|Description|Required|Since
+---|---|---|---|---
+id|int64|主键|false|-
+orderNumber|string|订单编号|false|-
+orderUserName|string|下单人|false|-
+orderTime|string|下单时间|false|-
+phone|string|点餐人联系电话|false|-
+address|string|订单地址|false|-
+totalMoney|number|总金额|false|-
+orderStatus|int32|订单状态|false|-
+mType|string|餐别|false|-
+receiveUserName|string|接单人|false|-
+receiveTime|string|接单时间|false|-
+sendUserName|string|送单人|false|-
+sendTime|string|送单时间|false|-
+sendEndTime|string|完成时间|false|-
+remark|string|备注|false|-
+createTime|string|创建时间|false|-
+createBy|string|创建人|false|-
+updateTime|string|修改时间|false|-
+updateBy|string|修改人|false|-
+dreOrderDetails|array|No comments found.|false|-
+└─id|int64|主键|false|-
+└─orderId|int64|订单编号|false|-
+└─mName|string|名称|false|-
+└─mPrice|number|单价|false|-
+└─totalPrice|number|总金额|false|-
+└─mCount|int32|数量|false|-
+
+**Response-fields:**
+
+Field | Type|Description|Since
+---|---|---|---
+status|object|状态|-
+code|string|状态码|-
+msg|string|异常消息|-
+data|object|数据|-
+exception|string|异常|-
+
+**Response-example:**
+```
+{
+	"status": {
+		
+	},
+	"code": "53312",
+	"msg": "olmfib",
+	"data": null,
+	"exception": "3yz8eh"
+}
+```
+
+### 修改记录
+**URL:** https://smartpark.caih.com/dxapi/dreOrder/
+
+**Type:** PUT
+
+**Author:** yq
+
+**Content-Type:** application/json; charset=utf-8
+
+**Description:** 修改记录
+
+**Body-parameters:**
+
+Parameter | Type|Description|Required|Since
+---|---|---|---|---
+id|int64|主键|false|-
+orderNumber|string|订单编号|false|-
+orderUserName|string|下单人|false|-
+orderTime|string|下单时间|false|-
+phone|string|点餐人联系电话|false|-
+address|string|订单地址|false|-
+totalMoney|number|总金额|false|-
+orderStatus|int32|订单状态|false|-
+mType|string|餐别|false|-
+receiveUserName|string|接单人|false|-
+receiveTime|string|接单时间|false|-
+sendUserName|string|送单人|false|-
+sendTime|string|送单时间|false|-
+sendEndTime|string|完成时间|false|-
+remark|string|备注|false|-
+createTime|string|创建时间|false|-
+createBy|string|创建人|false|-
+updateTime|string|修改时间|false|-
+updateBy|string|修改人|false|-
+dreOrderDetails|array|No comments found.|false|-
+└─id|int64|主键|false|-
+└─orderId|int64|订单编号|false|-
+└─mName|string|名称|false|-
+└─mPrice|number|单价|false|-
+└─totalPrice|number|总金额|false|-
+└─mCount|int32|数量|false|-
+
+**Response-fields:**
+
+Field | Type|Description|Since
+---|---|---|---
+status|object|状态|-
+code|string|状态码|-
+msg|string|异常消息|-
+data|object|数据|-
+exception|string|异常|-
+
+**Response-example:**
+```
+{
+	"status": {
+		
+	},
+	"code": "53312",
+	"msg": "6htb8l",
+	"data": null,
+	"exception": "k0y1qg"
+}
+```
+
+### 分页记录查询
+**URL:** https://smartpark.caih.com/dxapi/dreOrder/page
+
+**Type:** POST
+
+**Author:** yq
+
+**Content-Type:** application/json; charset=utf-8
+
+**Description:** 分页记录查询
+
+**Body-parameters:**
+
+Parameter | Type|Description|Required|Since
+---|---|---|---|---
+current|int32|页数|false|-
+size|int32|条数|false|-
+mType|string|餐别|false|-
+startTime|string|开始时间|false|-
+endTime|string|结束时间|false|-
+orderStatus|int32|订单状态|false|-
+orderUserName|string|下单人|false|-
+phone|string|点餐人联系电话|false|-
+receiveUserName|string|接单人|false|-
+sendUserName|string|送单人|false|-
+
+**Response-fields:**
+
+Field | Type|Description|Since
+---|---|---|---
+status|object|状态|-
+code|string|状态码|-
+msg|string|异常消息|-
+data|object|数据|-
+└─records|array|数据|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─id|int64|主键|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─orderNumber|string|订单编号|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─orderUserName|string|下单人|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─orderTime|string|下单时间|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─phone|string|点餐人联系电话|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─address|string|订单地址|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─totalMoney|number|总金额|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─orderStatus|int32|订单状态|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─mType|string|餐别|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─receiveUserName|string|接单人|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─receiveTime|string|接单时间|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─sendUserName|string|送单人|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─sendTime|string|送单时间|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─sendEndTime|string|完成时间|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─remark|string|备注|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─createTime|string|创建时间|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─createBy|string|创建人|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─updateTime|string|修改时间|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─updateBy|string|修改人|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─dreOrderDetails|array|No comments found.|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─id|int64|主键|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─orderId|int64|订单编号|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─mName|string|名称|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─mPrice|number|单价|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─totalPrice|number|总金额|-
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;└─mCount|int32|数量|-
+└─total|int64|总条数|-
+└─size|int64|页数|-
+└─current|int64|条数|-
+exception|string|异常|-
+
+**Response-example:**
+```
+{
+	"status": {
+		
+	},
+	"code": "53312",
+	"msg": "klb6f4",
+	"data": {
+		"records": [
+			{
+				"id": 20,
+				"orderNumber": "6smb30",
+				"orderUserName": "展鹏.钟",
+				"orderTime": "2022-08-14",
+				"phone": "13753484582",
+				"address": "Apt. 708 钱街0489号, 乳山, 辽 875472",
+				"totalMoney": 968,
+				"orderStatus": 843,
+				"mType": "36ejtn",
+				"receiveUserName": "展鹏.钟",
+				"receiveTime": "2022-08-14",
+				"sendUserName": "展鹏.钟",
+				"sendTime": "2022-08-14",
+				"sendEndTime": "2022-08-14",
+				"remark": "z4g703",
+				"createTime": "2022-08-14",
+				"createBy": "fha3md",
+				"updateTime": "2022-08-14",
+				"updateBy": "uce3bp",
+				"dreOrderDetails": [
+					{
+						"id": 374,
+						"orderId": 423,
+						"mName": "展鹏.钟",
+						"mPrice": 644,
+						"totalPrice": 591,
+						"mCount": 798
+					}
+				]
+			}
+		],
+		"total": 176,
+		"size": 394,
+		"current": 858
+	},
+	"exception": "iqj302"
+}
+```
+
+### 订单详情导出
+**URL:** https://smartpark.caih.com/dxapi/dreOrder/exportDetail
+
+**Type:** POST
+
+**Author:** yq
+
+**Content-Type:** application/json; charset=utf-8
+
+**Description:** 订单详情导出
+
+**Body-parameters:**
+
+Parameter | Type|Description|Required|Since
+---|---|---|---|---
+current|int32|页数|false|-
+size|int32|条数|false|-
+mType|string|餐别|false|-
+startTime|string|开始时间|false|-
+endTime|string|结束时间|false|-
+orderStatus|int32|订单状态|false|-
+orderUserName|string|下单人|false|-
+phone|string|点餐人联系电话|false|-
+receiveUserName|string|接单人|false|-
+sendUserName|string|送单人|false|-
+
+**Response-fields:**
+
+Field | Type|Description|Since
+---|---|---|---
+status|object|状态|-
+code|string|状态码|-
+msg|string|异常消息|-
+data|object|数据|-
+exception|string|异常|-
+
+**Response-example:**
+```
+{
+	"status": {
+		
+	},
+	"code": "53312",
+	"msg": "xg209a",
+	"data": "eyz74c",
+	"exception": "9u5uav"
+}
+```
+
+## 餐品订单详情
+### 订单餐品集合
+**URL:** https://smartpark.caih.com/dxapi/dreOrderDetail/listByOrder
+
+**Type:** GET
+
+**Author:** yq
+
+**Content-Type:** application/x-www-form-urlencoded;charset=utf-8
+
+**Description:** 订单餐品集合
+
+**Query-parameters:**
+
+Parameter | Type|Description|Required|Since
+---|---|---|---|---
+orderId|int64|No comments found.|true|-
+
+**Response-fields:**
+
+Field | Type|Description|Since
+---|---|---|---
+status|object|状态|-
+code|string|状态码|-
+msg|string|异常消息|-
+data|object|数据|-
+└─id|int64|主键|-
+└─orderId|int64|订单编号|-
+└─mName|string|名称|-
+└─mPrice|number|单价|-
+└─totalPrice|number|总金额|-
+└─mCount|int32|数量|-
+exception|string|异常|-
+
+**Response-example:**
+```
+{
+	"status": {
+		
+	},
+	"code": "53312",
+	"msg": "oc2vd2",
+	"data": [
+		{
+			"id": 11,
+			"orderId": 880,
+			"mName": "展鹏.钟",
+			"mPrice": 985,
+			"totalPrice": 486,
+			"mCount": 22
+		}
+	],
+	"exception": "w5nxqb"
+}
+```
+
+