From 93830dea1f05770281c1e4206d50ad549f2fdbe4 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 23 Dec 2020 18:57:32 +0800
Subject: [PATCH] add order some interfaces

---
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java                 |    6 
 zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java         |    6 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml                    |   54 ++++++
 zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailItemVo.java             |   92 ++++++++++
 zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailAchieveItemVo.java      |   36 ++++
 zq-erp/src/main/java/com/matrix/system/app/dto/BasePageDto.java                  |   38 ++++
 zq-erp/src/main/java/com/matrix/system/app/dto/OrderListDto.java                 |   46 +++++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java            |   19 +
 zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailVo.java                 |  174 +++++++++++++++++++
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |   12 +
 10 files changed, 481 insertions(+), 2 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java
index a2027f2..9f8749b 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java
@@ -2,10 +2,13 @@
 
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.pojo.PaginationVO;
 import com.matrix.core.tools.WebUtil;
 import com.matrix.system.app.dto.CreateOderItemDto;
 import com.matrix.system.app.dto.CreateOrderDto;
+import com.matrix.system.app.dto.OrderListDto;
 import com.matrix.system.app.dto.ShoppingGoodsListDto;
+import com.matrix.system.app.vo.OrderDetailVo;
 import com.matrix.system.app.vo.ShoppingGoodsListVo;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.hive.bean.ShoppingGoodsCategory;
@@ -97,9 +100,21 @@
         return AjaxResult.buildFailInstance("下单失败");
     }
 
+    @ApiOperation(value = "获取订单列表", notes = "获取订单列表")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = OrderDetailVo.class)
+    })
     @PostMapping(value = "/findOrderList")
-    public AjaxResult findOrderList() {
-        return null;
+    public AjaxResult findOrderList(@RequestBody @Validated OrderListDto orderListDto) {
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        int offset = (orderListDto.getPageNum() - 1) * orderListDto.getPageSize();
+        int limit = orderListDto.getPageSize();
+        PaginationVO pageVo = new PaginationVO();
+        pageVo.setOffset(offset);
+        pageVo.setLimit(limit);
+
+        orderListDto.setShopId(user.getShopId());
+        return AjaxResult.buildSuccessInstance(sysOrderService.findApiOrderListInPage(orderListDto, pageVo), sysOrderService.findApiOrderListTotal(orderListDto));
     }
 
     @GetMapping(value = "/findOrderDetail/{orderId}")
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/BasePageDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/BasePageDto.java
new file mode 100644
index 0000000..bab4e93
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/BasePageDto.java
@@ -0,0 +1,38 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wzy
+ * @date 2020-12-23
+ **/
+@ApiModel(value = "BasePageDto", description = "基础分页参数接收类")
+public class BasePageDto {
+
+    @NotNull(message = "参数不能为空")
+    @ApiModelProperty(value = "第几页")
+    private Integer pageNum;
+
+    @NotNull(message = "参数不能为空")
+    @ApiModelProperty(value ="数量")
+    private Integer pageSize;
+
+    public Integer getPageNum() {
+        return pageNum;
+    }
+
+    public void setPageNum(Integer pageNum) {
+        this.pageNum = pageNum;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/OrderListDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/OrderListDto.java
new file mode 100644
index 0000000..ede78d4
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/OrderListDto.java
@@ -0,0 +1,46 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @author wzy
+ * @date 2020-12-23
+ **/
+@ApiModel(value = "OrderListDto", description = "订单列表接收参数类")
+public class OrderListDto extends BasePageDto {
+
+    @ApiModelProperty(value = "订单状态", example = "已付款 全部默认传空字符串")
+    private String status;
+
+    @ApiModelProperty(value = "查询字段")
+    private String queryKey;
+
+    @ApiModelProperty(hidden = true)
+    private Long shopId;
+
+    public Long getShopId() {
+        return shopId;
+    }
+
+    public void setShopId(Long shopId) {
+        this.shopId = shopId;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getQueryKey() {
+        return queryKey;
+    }
+
+    public void setQueryKey(String queryKey) {
+        this.queryKey = queryKey;
+    }
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailAchieveItemVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailAchieveItemVo.java
new file mode 100644
index 0000000..25e67d1
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailAchieveItemVo.java
@@ -0,0 +1,36 @@
+package com.matrix.system.app.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wzy
+ * @date 2020-12-23
+ **/
+@ApiModel(value = "OrderDetailAchieveItemVo", description = "订单明细业绩返回参数类")
+public class OrderDetailAchieveItemVo {
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "业绩")
+    private BigDecimal achieve;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public BigDecimal getAchieve() {
+        return achieve;
+    }
+
+    public void setAchieve(BigDecimal achieve) {
+        this.achieve = achieve;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailItemVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailItemVo.java
new file mode 100644
index 0000000..b9c801a
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailItemVo.java
@@ -0,0 +1,92 @@
+package com.matrix.system.app.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-12-23
+ **/
+@ApiModel(value = "OrderDetailItemVo", description = "订单详情明细表")
+public class OrderDetailItemVo {
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "数量")
+    private String count;
+
+    @ApiModelProperty(value = "现金支付")
+    private BigDecimal cashPay;
+
+    @ApiModelProperty(value = "储值卡支付")
+    private BigDecimal cardPay;
+
+    @ApiModelProperty(value = "原价")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "折扣价格")
+    private BigDecimal zkPrice;
+
+    @ApiModelProperty(value = "订单业绩")
+    private List<OrderDetailAchieveItemVo> achieves;
+
+    public List<OrderDetailAchieveItemVo> getAchieves() {
+        return achieves;
+    }
+
+    public void setAchieves(List<OrderDetailAchieveItemVo> achieves) {
+        this.achieves = achieves;
+    }
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public String getCount() {
+        return count;
+    }
+
+    public void setCount(String count) {
+        this.count = count;
+    }
+
+    public BigDecimal getCashPay() {
+        return cashPay;
+    }
+
+    public void setCashPay(BigDecimal cashPay) {
+        this.cashPay = cashPay;
+    }
+
+    public BigDecimal getCardPay() {
+        return cardPay;
+    }
+
+    public void setCardPay(BigDecimal cardPay) {
+        this.cardPay = cardPay;
+    }
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    public void setPrice(BigDecimal price) {
+        this.price = price;
+    }
+
+    public BigDecimal getZkPrice() {
+        return zkPrice;
+    }
+
+    public void setZkPrice(BigDecimal zkPrice) {
+        this.zkPrice = zkPrice;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailVo.java
new file mode 100644
index 0000000..172951c
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailVo.java
@@ -0,0 +1,174 @@
+package com.matrix.system.app.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.matrix.core.tools.DateUtil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-12-23
+ **/
+@ApiModel(value = "OrderDetailVo", description = "订单详情返回参数类")
+public class OrderDetailVo {
+
+    @ApiModelProperty(value = "订单ID")
+    private String orderId;
+
+    @ApiModelProperty(value = "会员姓名")
+    private String vipName;
+
+    @ApiModelProperty(value = "会员手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "顾问姓名")
+    private String staffName;
+
+    @ApiModelProperty(value = "现金支付金额")
+    private BigDecimal cashPay;
+
+    @ApiModelProperty(value = "储值卡支付金额")
+    private BigDecimal cardPay;
+
+    @ApiModelProperty(value = "应付金额")
+    private BigDecimal needPay;
+
+    @ApiModelProperty(value = "实付金额")
+    private BigDecimal realPay;
+
+    @ApiModelProperty(value = "优惠金额")
+    private BigDecimal discount;
+
+    @ApiModelProperty(value = "订单明细")
+    private List<OrderDetailItemVo> items;
+
+    @ApiModelProperty(value = "订单状态")
+    private String orderStatus;
+
+    @ApiModelProperty(value = "欠款")
+    private BigDecimal arrears;
+
+    @JsonFormat(pattern = DateUtil.DATE_FORMAT_SS)
+    @ApiModelProperty(value = "下单时间")
+    private Date orderTime;
+
+
+    public Date getOrderTime() {
+        return orderTime;
+    }
+
+    public void setOrderTime(Date orderTime) {
+        this.orderTime = orderTime;
+    }
+
+    public String getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(String orderId) {
+        this.orderId = orderId;
+    }
+
+    public BigDecimal getArrears() {
+        return arrears;
+    }
+
+    public void setArrears(BigDecimal arrears) {
+        this.arrears = arrears;
+    }
+
+    public String getOrderStatus() {
+        return orderStatus;
+    }
+
+    public void setOrderStatus(String orderStatus) {
+        this.orderStatus = orderStatus;
+    }
+
+    public List<OrderDetailItemVo> getItems() {
+        return items;
+    }
+
+    public void setItems(List<OrderDetailItemVo> items) {
+        this.items = items;
+    }
+
+    public String getVipName() {
+        return vipName;
+    }
+
+    public void setVipName(String vipName) {
+        this.vipName = vipName;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public String getStaffName() {
+        return staffName;
+    }
+
+    public void setStaffName(String staffName) {
+        this.staffName = staffName;
+    }
+
+    public BigDecimal getCashPay() {
+        return cashPay;
+    }
+
+    public void setCashPay(BigDecimal cashPay) {
+        this.cashPay = cashPay;
+    }
+
+    public BigDecimal getCardPay() {
+        return cardPay;
+    }
+
+    public void setCardPay(BigDecimal cardPay) {
+        this.cardPay = cardPay;
+    }
+
+    public BigDecimal getNeedPay() {
+        return needPay;
+    }
+
+    public void setNeedPay(BigDecimal needPay) {
+        this.needPay = needPay;
+    }
+
+    public BigDecimal getRealPay() {
+        return realPay;
+    }
+
+    public void setRealPay(BigDecimal realPay) {
+        this.realPay = realPay;
+    }
+
+    public BigDecimal getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(BigDecimal discount) {
+        this.discount = discount;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
index 42475ae..1010b93 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
@@ -1,6 +1,8 @@
 package com.matrix.system.hive.dao;
 
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.system.app.dto.OrderListDto;
+import com.matrix.system.app.vo.OrderDetailVo;
 import com.matrix.system.hive.bean.SysOrder;
 import org.apache.ibatis.annotations.Param;
 
@@ -35,4 +37,8 @@
 	public void updateOrderTime(@Param("orderTime") Date orderTime, @Param("id") Long id);
 
 	SysOrder selectVipOrderInfoTotal(@Param("vipId") Long vipId);
+
+	List<OrderDetailVo> selectApiOrderListInPage(@Param("record") OrderListDto orderListDto, @Param("pageVo") PaginationVO pageVo);
+
+	int selectApiOrderListTotal(@Param("record") OrderListDto orderListDto);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
index a283ccf..3fc886b 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
@@ -2,6 +2,8 @@
 
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.system.app.dto.OrderListDto;
+import com.matrix.system.app.vo.OrderDetailVo;
 import com.matrix.system.hive.bean.SysOrder;
 import com.matrix.system.hive.plugin.util.BaseServices;
 import com.matrix.system.hive.pojo.CzXkVo;
@@ -128,4 +130,8 @@
 	SysOrder checkAndSaveOrder(SysOrder sysOrder);
 
 	SysOrder findSysOrderTjByVipId(Long vipId);
+
+	List<OrderDetailVo> findApiOrderListInPage(OrderListDto orderListDto, PaginationVO pageVo);
+
+	int findApiOrderListTotal(OrderListDto orderListDto);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 5237787..d03e648 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -6,6 +6,8 @@
 import com.matrix.core.tools.LogUtil;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.core.tools.WebUtil;
+import com.matrix.system.app.dto.OrderListDto;
+import com.matrix.system.app.vo.OrderDetailVo;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.common.dao.SysUsersDao;
@@ -1213,4 +1215,14 @@
     public SysOrder findSysOrderTjByVipId(Long vipId) {
         return sysOrderDao.selectVipOrderInfoTotal(vipId);
     }
+
+    @Override
+    public List<OrderDetailVo> findApiOrderListInPage(OrderListDto orderListDto, PaginationVO pageVo) {
+        return sysOrderDao.selectApiOrderListInPage(orderListDto, pageVo);
+    }
+
+    @Override
+    public int findApiOrderListTotal(OrderListDto orderListDto) {
+        return sysOrderDao.selectApiOrderListTotal(orderListDto);
+    }
 }
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
index 237c65c..1e7f288 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -475,4 +475,58 @@
         left join sys_shop_info t2 on t1.SHOP_ID=t2.ID
         where VIP_ID=#{vipId} and STATU='已付款';
     </select>
+
+    <select id="selectApiOrderListInPage" resultType="com.matrix.system.app.vo.OrderDetailVo">
+        select
+           a.id orderId,
+           a.ORDER_NO orderNo,
+           a.ORDER_TIME orderTime,
+           a.STATU orderStatus,
+           a.ZK_TOTAL needPay,
+           (a.card_Pay + a.cash_Pay) realPay,
+           a.arrears arrears,
+           b.su_name staffName,
+           c.VIP_NAME vipName,
+           c.PHONE phone
+        from sys_order a
+        left join sys_users b on a.STAFF_ID = b.su_id
+        left join sys_vip_info c on c.id = a.VIP_ID
+        <where>
+            <if test="record.queryKey != null and record.queryKey != ''">
+                and (instr(c.vip_name, #{record.queryKey}) or instr(c.phone, #{record.queryKey}) or instr(a.order_no, #{record.queryKey}))
+            </if>
+            <if test="record.status != null and record.status != ''">
+                and a.statu = #{record.status}
+            </if>
+            <if test="record.shopId != null">
+                and a.shop_id=#{record.shopId}
+            </if>
+        </where>
+        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
+            order by a.order_time desc
+            <if test="pageVo.offset >=0  and pageVo.limit >0">
+                limit
+                #{pageVo.offset},#{pageVo.limit}
+            </if>
+        </if>
+    </select>
+
+    <select id="selectApiOrderListTotal" resultType="java.lang.Integer">
+        select
+            count(1)
+        from sys_order a
+        left join sys_users b on a.STAFF_ID = b.su_id
+        left join sys_vip_info c on c.id = a.VIP_ID
+        <where>
+            <if test="record.queryKey != null and record.queryKey != ''">
+                and (instr(c.vip_name, #{record.queryKey}) or instr(c.phone, #{record.queryKey}) or instr(a.order_no, #{record.queryKey}))
+            </if>
+            <if test="record.status != null and record.status != ''">
+                and a.statu = #{record.status}
+            </if>
+            <if test="record.shopId != null">
+                and a.shop_id=#{record.shopId}
+            </if>
+        </where>
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1