From c540d1f16d86a0391f9a51ee505ce6866e20ffbd Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 24 Dec 2020 17:00:44 +0800
Subject: [PATCH] finish order detail and goods detail

---
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java                 |    2 
 zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java         |    2 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml                    |   20 ++++++
 zq-erp/src/main/java/com/matrix/system/app/vo/OrderDetailItemVo.java             |   33 +++++++++++
 zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsListVo.java           |    7 ++
 zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml                  |    9 +++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiOrderAction.java            |    5 +
 zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java               |    4 +
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java             |    3 +
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |   25 ++++++++
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml                |   14 ++++
 11 files changed, 121 insertions(+), 3 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 f712eeb..2d01e4c 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
@@ -138,7 +138,10 @@
     })
     @GetMapping(value = "/findOrderDetail/{orderId}")
     public AjaxResult findOrderDetail(@PathVariable("orderId") Long orderId) {
-        return null;
+        OrderDetailVo orderDetail = sysOrderService.findApiOrderDetailByOrderId(orderId);
+        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+        ajaxResult.putInMap("orderDetail", orderDetail);
+        return ajaxResult;
     }
 
 }
\ No newline at end of file
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
index b9c801a..6fb4768 100644
--- 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
@@ -13,6 +13,9 @@
 @ApiModel(value = "OrderDetailItemVo", description = "订单详情明细表")
 public class OrderDetailItemVo {
 
+    @ApiModelProperty(value = "id")
+    private Long id;
+
     @ApiModelProperty(value = "商品名称")
     private String goodsName;
 
@@ -25,14 +28,28 @@
     @ApiModelProperty(value = "储值卡支付")
     private BigDecimal cardPay;
 
+    @ApiModelProperty(value = "欠款")
+    private BigDecimal arrears;
+
     @ApiModelProperty(value = "原价")
     private BigDecimal price;
 
     @ApiModelProperty(value = "折扣价格")
     private BigDecimal zkPrice;
 
+    @ApiModelProperty(value = "支付状态")
+    private String status;
+
     @ApiModelProperty(value = "订单业绩")
     private List<OrderDetailAchieveItemVo> achieves;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
 
     public List<OrderDetailAchieveItemVo> getAchieves() {
         return achieves;
@@ -89,4 +106,20 @@
     public void setZkPrice(BigDecimal zkPrice) {
         this.zkPrice = zkPrice;
     }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public BigDecimal getArrears() {
+        return arrears;
+    }
+
+    public void setArrears(BigDecimal arrears) {
+        this.arrears = arrears;
+    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsListVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsListVo.java
index 731c77f..ae87478 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsListVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ShoppingGoodsListVo.java
@@ -1,5 +1,6 @@
 package com.matrix.system.app.vo;
 
+import com.matrix.system.hive.bean.ShoppingGoods;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -84,7 +85,11 @@
     }
 
     public void setIsPresent(String isPresent) {
-        this.isPresent = isPresent;
+        if ("是".equals(isPresent)) {
+            this.isPresent = "1";
+        } else {
+            this.isPresent = "0";
+        }
     }
 
     public String getUnit() {
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
index 1d54ac9..ea162f3 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
@@ -5,6 +5,7 @@
 import java.util.Map;
 
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.system.app.vo.OrderDetailAchieveItemVo;
 import com.matrix.system.app.vo.UserAchieveVo;
 import com.matrix.system.hive.bean.AchieveNew;
 import org.apache.ibatis.annotations.Param;
@@ -59,5 +60,6 @@
 	int selectVipConsumeStatisticsTotal(@Param("record") AchieveNew achieveNew);
 
 	UserAchieveVo selectUserAchieveByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("userId") Long userId);
-	
+
+	List<OrderDetailAchieveItemVo> selectApiOrderItemAchieve(@Param("itemId") Long itemId);
 }
\ No newline at end of file
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 1010b93..8320974 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
@@ -41,4 +41,6 @@
 	List<OrderDetailVo> selectApiOrderListInPage(@Param("record") OrderListDto orderListDto, @Param("pageVo") PaginationVO pageVo);
 
 	int selectApiOrderListTotal(@Param("record") OrderListDto orderListDto);
+
+	OrderDetailVo selectApiOrderDetailById(@Param("orderId") Long orderId);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java
index 32dd90e..2ff8371 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderItemDao.java
@@ -1,6 +1,7 @@
 package com.matrix.system.hive.dao;
 
 import com.matrix.core.pojo.PaginationVO;
+import com.matrix.system.app.vo.OrderDetailItemVo;
 import com.matrix.system.hive.bean.SysOrderItem;
 import org.apache.ibatis.annotations.Param;
 
@@ -58,4 +59,6 @@
 
 
 	public int   deleteByOrderId(Long id);
+
+	List<OrderDetailItemVo> selectApiOrderDetailItemsByOrderId(@Param("orderId") Long orderId);
 }
\ 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 3fc886b..a3af416 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
@@ -134,4 +134,6 @@
 	List<OrderDetailVo> findApiOrderListInPage(OrderListDto orderListDto, PaginationVO pageVo);
 
 	int findApiOrderListTotal(OrderListDto orderListDto);
+
+	OrderDetailVo findApiOrderDetailByOrderId(Long orderId);
 }
\ 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 d03e648..250b154 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
@@ -7,6 +7,8 @@
 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.OrderDetailAchieveItemVo;
+import com.matrix.system.app.vo.OrderDetailItemVo;
 import com.matrix.system.app.vo.OrderDetailVo;
 import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
@@ -80,6 +82,9 @@
 
     @Autowired
     private AchieveNewService achieveNewService;
+
+    @Autowired
+    private AchieveNewDao achieveNewDao;
 
     @Autowired
     private WarehouseDao warehouseDao;
@@ -1225,4 +1230,24 @@
     public int findApiOrderListTotal(OrderListDto orderListDto) {
         return sysOrderDao.selectApiOrderListTotal(orderListDto);
     }
+
+    @Override
+    public OrderDetailVo findApiOrderDetailByOrderId(Long orderId) {
+        OrderDetailVo orderDetail = sysOrderDao.selectApiOrderDetailById(orderId);
+
+        if (orderDetail == null) {
+            throw new GlobleException("该订单不存在");
+        }
+
+        List<OrderDetailItemVo> items = orderItemDao.selectApiOrderDetailItemsByOrderId(orderId);
+        if (CollectionUtils.isNotEmpty(items)) {
+            for (OrderDetailItemVo item : items) {
+                List<OrderDetailAchieveItemVo> achieveItems = achieveNewDao.selectApiOrderItemAchieve(item.getId());
+                item.setAchieves(achieveItems);
+            }
+        }
+
+        orderDetail.setItems(items);
+        return orderDetail;
+    }
 }
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
index ebe9c0b..b837123 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -939,4 +939,13 @@
 		where sale_id=#{userId}
 		and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
 	</select>
+
+	<select id="selectApiOrderItemAchieve" resultType="com.matrix.system.app.vo.OrderDetailAchieveItemVo">
+		select
+			b.su_name name,
+			IFNULL(a.card_cash, 0) + IFNULL(a.proj_cash, 0) + IFNULL(a.goods_cash, 0) achieve
+		from achieve_new a
+		inner join sys_users b on a.beault_id=b.su_id
+		where a.order_item_id=#{itemId}
+	</select>
 </mapper>
\ No newline at end of file
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 1e7f288..043b37b 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -529,4 +529,24 @@
             </if>
         </where>
     </select>
+
+    <select id="selectApiOrderDetailById" resultType="com.matrix.system.app.vo.OrderDetailVo">
+        select
+               a.id orderId,
+               b.VIP_NAME vipName,
+               b.PHONE phone,
+               a.ORDER_NO orderNo,
+               c.su_name staffName,
+               a.cash_Pay cashPay,
+               a.card_Pay cardPay,
+               a.ZK_TOTAL needPay,
+               a.card_Pay + a.card_Pay realPay,
+               a.arrears arrears,
+               a.TOTAL - a.ZK_TOTAL discount,
+               a.STATU orderStatus
+        from sys_order a
+        inner join sys_vip_info b on a.VIP_ID=b.ID
+        left join sys_users c on a.STAFF_ID=c.su_id
+        where a.id=#{orderId}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
index 208e3ec..656ad77 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml
@@ -519,5 +519,19 @@
         group by c.id ,f.id) t
     </select>
 
+    <select id="selectApiOrderDetailItemsByOrderId" resultType="com.matrix.system.app.vo.OrderDetailItemVo">
+        select
+               a.id id,
+               b.name goodsName,
+               a.COUNT count,
+               a.cash_Pay cashPay,
+               a.card_Pay cardPay,
+               a.PRICE price,
+               a.ZK_PRICE zkPrice,
+               a.status status
+        from sys_order_item a
+        inner join shopping_goods b on a.goods_id=b.id
+        where a.ORDER_ID=#{orderId};
+    </select>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1