Browse Source

add:商城再下一单,退货申请排序,购物车

liujunchi 2 years ago
parent
commit
5667bf7553
27 changed files with 467 additions and 44 deletions
  1. 7 7
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/AdminStatisticalController.java
  2. 6 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderDao.java
  3. 3 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderReturnApplyDao.java
  4. 5 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductDao.java
  5. 196 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/HomeStatistical.java
  6. 8 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnApplyService.java
  7. 5 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderService.java
  8. 13 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductService.java
  9. 7 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java
  10. 26 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderServiceImpl.java
  11. 13 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/PmsProductServiceImpl.java
  12. 11 0
      cooleshow-mall/mall-admin/src/main/resources/config/mybatis/OmsOrderDao.xml
  13. 8 0
      cooleshow-mall/mall-admin/src/main/resources/config/mybatis/OmsOrderReturnApplyDao.xml
  14. 23 0
      cooleshow-mall/mall-admin/src/main/resources/config/mybatis/PmsProductDao.xml
  15. 11 0
      cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/OmsOrder.java
  16. 18 3
      cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/OmsOrderMapper.xml
  17. 2 1
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/OmsCartItemController.java
  18. 16 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/OmsPortalOrderController.java
  19. 2 2
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/UmsMemberCouponController.java
  20. 11 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/OmsReturnApplyQueryParam.java
  21. 1 1
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsCartItemService.java
  22. 9 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java
  23. 9 4
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/HomeServiceImpl.java
  24. 11 4
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsCartItemServiceImpl.java
  25. 11 0
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderReturnApplyServiceImpl.java
  26. 13 5
      cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java
  27. 22 17
      cooleshow-mall/mall-portal/src/main/resources/config/mybatis/OmsOrderReturnApplyDao.xml

+ 7 - 7
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/AdminStatisticalController.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.search.UserStatisticalSearch;
 import com.yonge.cooleshow.admin.service.OmsOrderService;
 import com.yonge.cooleshow.mall.common.api.CommonResult;
@@ -30,15 +31,14 @@ public class AdminStatisticalController {
     private OmsOrderService orderService;
 
 
-     // 弃用
-    @Deprecated
-    @ApiOperation("商城用户统计")
-    @RequestMapping(value = "/user", method = RequestMethod.POST)
+    @ApiOperation("商城首页统计")
+    @RequestMapping(value = "/home", method = RequestMethod.GET)
     @ResponseBody
-    public CommonResult<List<CmsPrefrenceArea>> userStatistical(@RequestBody UserStatisticalSearch search) {
+    public CommonResult<HomeStatistical> userStatistical() {
 
-        orderService.userStatistical(search);
-        return CommonResult.failed();
+        HomeStatistical statistical = orderService.statistical();
+
+        return CommonResult.success(statistical);
 
     }
 }

+ 6 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderDao.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.dao;
 
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.OmsOrderDeliveryParam;
 import com.yonge.cooleshow.admin.dto.OmsOrderDetail;
 import com.yonge.cooleshow.admin.dto.OmsOrderQueryParam;
@@ -31,4 +32,9 @@ public interface OmsOrderDao {
     OmsOrderDetail getDetail(@Param("id") Long id);
 
     List<Map<String,Object>> getUserOrderInfoList(Map<String, Object> param);
+
+    /**
+     * 统计订单状态数量
+     */
+    HomeStatistical selectOrderStatusNum();
 }

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderReturnApplyDao.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.dao;
 
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.admin.dto.OmsReturnApplyQueryParam;
 import com.yonge.cooleshow.mbg.model.OmsOrderReturnApply;
@@ -21,4 +22,6 @@ public interface OmsOrderReturnApplyDao {
      * 获取申请详情
      */
     OmsOrderReturnApplyResult getDetail(@Param("id")Long id);
+
+    HomeStatistical selectReturnStatusCount();
 }

+ 5 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductDao.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.dao;
 
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.PmsProductResult;
 import org.apache.ibatis.annotations.Param;
 
@@ -13,4 +14,8 @@ public interface PmsProductDao {
      * 获取商品编辑信息
      */
     PmsProductResult getUpdateInfo(@Param("id") Long id);
+
+    HomeStatistical selectLowStockCount();
+
+    HomeStatistical selectProductShowStatusCount();
 }

+ 196 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/HomeStatistical.java

@@ -0,0 +1,196 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-05-24
+ */
+@ApiModel("首页统计")
+public class HomeStatistical {
+
+    @ApiModelProperty("今日订单数")
+    private Integer todayOrderNum;
+
+    @ApiModelProperty("今日销售金额")
+    private BigDecimal todayOrderAmount;
+
+    @ApiModelProperty("昨日订单数")
+    private Integer yesterdayOrderNum;
+
+    @ApiModelProperty("昨日销售金额")
+    private Integer yesterdayOrderAmount;
+
+
+    @ApiModelProperty("待付款订单")
+    private Integer waitPayOrder;
+
+    @ApiModelProperty("待发货订单")
+    private Integer waitOutOrder;
+
+    @ApiModelProperty("已发货订单")
+    private Integer outOrder;
+
+    @ApiModelProperty("已完成订单")
+    private Integer successOrder;
+
+    @ApiModelProperty("待确认收货订单")
+    private Integer waitReceiptOrder;
+
+    @ApiModelProperty("新缺货登记")
+    private Integer outStockProduct;
+
+    @ApiModelProperty("待处理退款申请")
+    private Integer waitDisposeRefund;
+
+    @ApiModelProperty("待处理退货订单")
+    private Integer waitDisposeRefundOrder;
+
+    @ApiModelProperty("已下架")
+    private Integer delisted;
+
+
+    @ApiModelProperty("已上架")
+    private Integer shelves;
+
+
+    @ApiModelProperty("库存紧张")
+    private Integer outStock;
+
+
+    @ApiModelProperty("全部商品")
+    private Integer productNum;
+
+    public Integer getTodayOrderNum() {
+        return todayOrderNum;
+    }
+
+    public void setTodayOrderNum(Integer todayOrderNum) {
+        this.todayOrderNum = todayOrderNum;
+    }
+
+    public BigDecimal getTodayOrderAmount() {
+        return todayOrderAmount;
+    }
+
+    public void setTodayOrderAmount(BigDecimal todayOrderAmount) {
+        this.todayOrderAmount = todayOrderAmount;
+    }
+
+    public Integer getYesterdayOrderNum() {
+        return yesterdayOrderNum;
+    }
+
+    public void setYesterdayOrderNum(Integer yesterdayOrderNum) {
+        this.yesterdayOrderNum = yesterdayOrderNum;
+    }
+
+    public Integer getYesterdayOrderAmount() {
+        return yesterdayOrderAmount;
+    }
+
+    public void setYesterdayOrderAmount(Integer yesterdayOrderAmount) {
+        this.yesterdayOrderAmount = yesterdayOrderAmount;
+    }
+
+    public Integer getWaitPayOrder() {
+        return waitPayOrder;
+    }
+
+    public void setWaitPayOrder(Integer waitPayOrder) {
+        this.waitPayOrder = waitPayOrder;
+    }
+
+    public Integer getWaitOutOrder() {
+        return waitOutOrder;
+    }
+
+    public void setWaitOutOrder(Integer waitOutOrder) {
+        this.waitOutOrder = waitOutOrder;
+    }
+
+    public Integer getOutOrder() {
+        return outOrder;
+    }
+
+    public void setOutOrder(Integer outOrder) {
+        this.outOrder = outOrder;
+    }
+
+    public Integer getSuccessOrder() {
+        return successOrder;
+    }
+
+    public void setSuccessOrder(Integer successOrder) {
+        this.successOrder = successOrder;
+    }
+
+    public Integer getWaitReceiptOrder() {
+        return waitReceiptOrder;
+    }
+
+    public void setWaitReceiptOrder(Integer waitReceiptOrder) {
+        this.waitReceiptOrder = waitReceiptOrder;
+    }
+
+    public Integer getOutStockProduct() {
+        return outStockProduct;
+    }
+
+    public void setOutStockProduct(Integer outStockProduct) {
+        this.outStockProduct = outStockProduct;
+    }
+
+    public Integer getWaitDisposeRefund() {
+        return waitDisposeRefund;
+    }
+
+    public void setWaitDisposeRefund(Integer waitDisposeRefund) {
+        this.waitDisposeRefund = waitDisposeRefund;
+    }
+
+    public Integer getWaitDisposeRefundOrder() {
+        return waitDisposeRefundOrder;
+    }
+
+    public void setWaitDisposeRefundOrder(Integer waitDisposeRefundOrder) {
+        this.waitDisposeRefundOrder = waitDisposeRefundOrder;
+    }
+
+    public Integer getDelisted() {
+        return delisted;
+    }
+
+    public void setDelisted(Integer delisted) {
+        this.delisted = delisted;
+    }
+
+    public Integer getShelves() {
+        return shelves;
+    }
+
+    public void setShelves(Integer shelves) {
+        this.shelves = shelves;
+    }
+
+    public Integer getOutStock() {
+        return outStock;
+    }
+
+    public void setOutStock(Integer outStock) {
+        this.outStock = outStock;
+    }
+
+    public Integer getProductNum() {
+        return productNum;
+    }
+
+    public void setProductNum(Integer productNum) {
+        this.productNum = productNum;
+    }
+}

+ 8 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderReturnApplyService.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.service;
 
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.admin.dto.OmsReturnApplyQueryParam;
 import com.yonge.cooleshow.admin.dto.OmsUpdateStatusParam;
@@ -38,4 +39,11 @@ public interface OmsOrderReturnApplyService {
      * @param data
      */
     void orderCallback(String data);
+
+    /**
+     * 统计 待处理退款申请 待处理退货订单
+     *
+     * @return
+     */
+    HomeStatistical countReturnStatus();
 }

+ 5 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderService.java

@@ -76,4 +76,9 @@ public interface OmsOrderService {
      * @return
      */
     List<Map<String,Object>> userOrderInfoList(Map<String, Object> param);
+
+    /**
+     * 首页统计
+     */
+    HomeStatistical statistical();
 }

+ 13 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/PmsProductService.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.admin.service;
 
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.PmsProductParam;
 import com.yonge.cooleshow.admin.dto.PmsProductQueryParam;
 import com.yonge.cooleshow.admin.dto.PmsProductResult;
@@ -70,4 +71,16 @@ public interface PmsProductService {
      * 根据商品名称或者货号模糊查询
      */
     List<PmsProduct> list(String keyword);
+
+    /**
+     * 获取缺货数量
+     */
+    HomeStatistical countLowStockCount();
+
+    /**
+     * 统计 已下架 已上架 全部商品
+     *
+     * @return
+     */
+    HomeStatistical countProductShowStatus();
 }

+ 7 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.admin.service.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.yonge.cooleshow.admin.dao.OmsOrderReturnApplyDao;
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.admin.dto.OmsReturnApplyQueryParam;
 import com.yonge.cooleshow.admin.dto.OmsUpdateStatusParam;
@@ -156,6 +157,12 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
         }
     }
 
+    @Override
+    public HomeStatistical countReturnStatus() {
+
+        return returnApplyDao.selectReturnStatusCount();
+    }
+
     /**
      * 退款失败
      *

+ 26 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderServiceImpl.java

@@ -5,6 +5,8 @@ import com.yonge.cooleshow.admin.dao.OmsOrderDao;
 import com.yonge.cooleshow.admin.dao.OmsOrderOperateHistoryDao;
 import com.yonge.cooleshow.admin.dto.*;
 import com.yonge.cooleshow.admin.dto.search.UserStatisticalSearch;
+import com.yonge.cooleshow.admin.service.OmsOrderReturnApplyService;
+import com.yonge.cooleshow.admin.service.PmsProductService;
 import com.yonge.cooleshow.mbg.mapper.OmsOrderMapper;
 import com.yonge.cooleshow.mbg.mapper.OmsOrderOperateHistoryMapper;
 import com.yonge.cooleshow.mbg.model.OmsOrder;
@@ -35,6 +37,12 @@ public class OmsOrderServiceImpl implements OmsOrderService {
     @Autowired
     private OmsOrderOperateHistoryMapper orderOperateHistoryMapper;
 
+    @Autowired
+    private OmsOrderReturnApplyService orderReturnApplyService;
+
+    @Autowired
+    private PmsProductService productService;
+
     @Override
     public List<OmsOrder> list(OmsOrderQueryParam queryParam, Integer pageSize, Integer pageNum) {
         PageHelper.startPage(pageNum, pageSize);
@@ -163,4 +171,22 @@ public class OmsOrderServiceImpl implements OmsOrderService {
     public List<Map<String,Object>> userOrderInfoList(Map<String, Object> param) {
         return orderDao.getUserOrderInfoList(param);
     }
+
+    @Override
+    public HomeStatistical statistical() {
+        HomeStatistical  homeStatistical = new HomeStatistical();
+        // 订单状态
+        homeStatistical = orderDao.selectOrderStatusNum();
+
+        // 缺货登记   库存紧张
+        homeStatistical = productService.countLowStockCount();
+
+        // 待处理退款申请  待处理退货订单
+        homeStatistical = orderReturnApplyService.countReturnStatus();
+
+        // 已下架 已上架 全部商品
+        homeStatistical = productService.countProductShowStatus();
+
+        return homeStatistical;
+    }
 }

+ 13 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/PmsProductServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import com.github.pagehelper.PageHelper;
 import com.yonge.cooleshow.admin.dao.*;
 import com.yonge.cooleshow.admin.dao.*;
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
 import com.yonge.cooleshow.admin.dto.PmsProductParam;
 import com.yonge.cooleshow.admin.dto.PmsProductQueryParam;
 import com.yonge.cooleshow.admin.dto.PmsProductResult;
@@ -302,6 +303,18 @@ public class PmsProductServiceImpl implements PmsProductService {
         return productMapper.selectByExample(productExample);
     }
 
+    @Override
+    public HomeStatistical countLowStockCount() {
+
+        return productDao.selectLowStockCount();
+
+    }
+
+    @Override
+    public HomeStatistical countProductShowStatus() {
+        return productDao.selectProductShowStatusCount();
+    }
+
     /**
      * 建立和插入关系表操作
      *

+ 11 - 0
cooleshow-mall/mall-admin/src/main/resources/config/mybatis/OmsOrderDao.xml

@@ -109,4 +109,15 @@
         </where>
         group by member_id
     </select>
+
+    <select id="selectOrderStatusNum" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
+
+        select
+            sum(if(status = 0 or status = 6,1,0)) as waitPayOrder,
+            sum(if(status = 1,1,0)) as waitOutOrder,
+            sum(if(status = 2,1,0)) as outOrder,
+            sum(if(status = 3,1,0)) as successOrder,
+            sum(if(status = 2 and confirm_status = 0,1,0)) as waitReceiptOrder
+        from oms_order
+    </select>
 </mapper>

+ 8 - 0
cooleshow-mall/mall-admin/src/main/resources/config/mybatis/OmsOrderReturnApplyDao.xml

@@ -56,4 +56,12 @@
             LEFT JOIN oms_company_address ca ON ra.company_address_id = ca.id
         WHERE ra.id=#{id};
     </select>
+
+    <select id="selectReturnStatusCount" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
+        select
+            sum(if(`status` = 0,1,0)) as waitDisposeRefund,
+            sum(if(`status` = 1,1,0)) as waitDisposeRefundOrder
+        from oms_order_return_apply
+
+    </select>
 </mapper>

+ 23 - 0
cooleshow-mall/mall-admin/src/main/resources/config/mybatis/PmsProductDao.xml

@@ -42,4 +42,27 @@
         select * from cms_prefrence_area_product_relation where product_id=#{productId}
     </select>
 
+    <select id="selectLowStockCount" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
+        select DISTINCT count(pp.id) as outStockProduct,
+            count(pp.id) as outStock
+        from
+            pms_product  pp
+                left join
+            (select DISTINCT pss.product_id
+             from  pms_sku_stock pss
+             where pss.stock &lt;= pss.low_stock) b
+        on b.product_id = pp.id
+        where  (pp.stock &lt;= pp.low_stock or b.product_id is not null)
+    </select>
+
+    <select id="selectProductShowStatusCount" resultType="com.yonge.cooleshow.admin.dto.HomeStatistical">
+        select
+
+            sum(if(publish_status = 1,1,0)) as shelves,
+            sum(if(publish_status = 1,0,1)) as delisted,
+            count(0)  as productNum
+
+        from pms_product where delete_status = 0
+
+    </select>
 </mapper>

+ 11 - 0
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/model/OmsOrder.java

@@ -16,6 +16,9 @@ public class OmsOrder implements Serializable {
     @ApiModelProperty(value = "订单编号")
     private String orderSn;
 
+    @ApiModelProperty("购物车id(逗号隔开)")
+    private String cartIds;
+
     @ApiModelProperty(value = "提交时间")
     private Date createTime;
 
@@ -544,4 +547,12 @@ public class OmsOrder implements Serializable {
         sb.append("]");
         return sb.toString();
     }
+
+    public String getCartIds() {
+        return cartIds;
+    }
+
+    public void setCartIds(String cartIds) {
+        this.cartIds = cartIds;
+    }
 }

+ 18 - 3
cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/OmsOrderMapper.xml

@@ -6,6 +6,7 @@
     <result column="member_id" jdbcType="BIGINT" property="memberId" />
     <result column="coupon_id" jdbcType="BIGINT" property="couponId" />
     <result column="order_sn" jdbcType="VARCHAR" property="orderSn" />
+    <result column="cart_ids" jdbcType="VARCHAR" property="cartIds" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="member_username" jdbcType="VARCHAR" property="memberUsername" />
     <result column="total_amount" jdbcType="DECIMAL" property="totalAmount" />
@@ -112,7 +113,7 @@
     integration, growth, promotion_info, bill_type, bill_header, bill_content, bill_receiver_phone, 
     bill_receiver_email, receiver_name, receiver_phone, receiver_post_code, receiver_province, 
     receiver_city, receiver_region, receiver_detail_address, note, confirm_status, delete_status, 
-    use_integration, payment_time, delivery_time, receive_time, comment_time, modify_time
+    use_integration, payment_time, delivery_time, receive_time, comment_time, modify_time,cart_ids
   </sql>
   <select id="selectByExample" parameterType="com.yonge.cooleshow.mbg.model.OmsOrderExample" resultMap="BaseResultMap">
     select
@@ -162,7 +163,7 @@
       receiver_detail_address, note, confirm_status, 
       delete_status, use_integration, payment_time, 
       delivery_time, receive_time, comment_time, 
-      modify_time)
+      modify_time,cart_ids)
     values (#{memberId,jdbcType=BIGINT}, #{couponId,jdbcType=BIGINT}, #{orderSn,jdbcType=VARCHAR}, 
       #{createTime,jdbcType=TIMESTAMP}, #{memberUsername,jdbcType=VARCHAR}, #{totalAmount,jdbcType=DECIMAL}, 
       #{payAmount,jdbcType=DECIMAL}, #{freightAmount,jdbcType=DECIMAL}, #{promotionAmount,jdbcType=DECIMAL}, 
@@ -177,7 +178,7 @@
       #{receiverDetailAddress,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, #{confirmStatus,jdbcType=INTEGER}, 
       #{deleteStatus,jdbcType=INTEGER}, #{useIntegration,jdbcType=INTEGER}, #{paymentTime,jdbcType=TIMESTAMP}, 
       #{deliveryTime,jdbcType=TIMESTAMP}, #{receiveTime,jdbcType=TIMESTAMP}, #{commentTime,jdbcType=TIMESTAMP}, 
-      #{modifyTime,jdbcType=TIMESTAMP})
+      #{modifyTime,jdbcType=TIMESTAMP},#{cartIds})
   </insert>
   <insert id="insertSelective" parameterType="com.yonge.cooleshow.mbg.model.OmsOrder">
     <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
@@ -314,6 +315,9 @@
       <if test="modifyTime != null">
         modify_time,
       </if>
+      <if test="cartIds != null">
+        cart_ids,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="memberId != null">
@@ -445,6 +449,9 @@
       <if test="modifyTime != null">
         #{modifyTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="cartIds != null">
+        #{cartIds},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.yonge.cooleshow.mbg.model.OmsOrderExample" resultType="java.lang.Long">
@@ -588,6 +595,9 @@
       <if test="record.modifyTime != null">
         modify_time = #{record.modifyTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="record.cartIds != null">
+        cart_ids = #{record.cartIds},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -638,6 +648,7 @@
       delivery_time = #{record.deliveryTime,jdbcType=TIMESTAMP},
       receive_time = #{record.receiveTime,jdbcType=TIMESTAMP},
       comment_time = #{record.commentTime,jdbcType=TIMESTAMP},
+      cart_ids = #{record.cartIds},
       modify_time = #{record.modifyTime,jdbcType=TIMESTAMP}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -775,6 +786,9 @@
       <if test="modifyTime != null">
         modify_time = #{modifyTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="cartIds != null">
+        cart_ids = #{cartIds,jdbcType=TIMESTAMP},
+      </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
@@ -822,6 +836,7 @@
       delivery_time = #{deliveryTime,jdbcType=TIMESTAMP},
       receive_time = #{receiveTime,jdbcType=TIMESTAMP},
       comment_time = #{commentTime,jdbcType=TIMESTAMP},
+      cart_ids = #{cartIds},
       modify_time = #{modifyTime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>

+ 2 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/OmsCartItemController.java

@@ -52,7 +52,8 @@ public class OmsCartItemController {
     @ResponseBody
     public CommonResult<List<CartPromotionItem>> listPromotion(@RequestParam(required = false) String cartIds) {
         List<Long> list = StringUtil.toLongList(cartIds);
-        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(memberService.getCurrentMember().getId(), list);
+        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(memberService.getCurrentMember().getId(), list,
+                                                                                      false);
         return CommonResult.success(cartPromotionItemList);
     }
 

+ 16 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/OmsPortalOrderController.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.portal.controller;
 
 import com.yonge.cooleshow.mall.common.api.CommonPage;
 import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.OmsOrder;
 import com.yonge.cooleshow.portal.domain.ConfirmOrderResult;
 import com.yonge.cooleshow.portal.domain.OmsOrderDetail;
 import com.yonge.cooleshow.portal.domain.OrderParam;
@@ -12,6 +13,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -37,6 +39,20 @@ public class OmsPortalOrderController {
         return CommonResult.success(confirmOrderResult);
     }
 
+
+    @ApiOperation("再来一单")
+    @RequestMapping(value = "/oneOrder", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult<ConfirmOrderResult> anotherList(@RequestParam Long orderId) {
+        OmsOrder order = portalOrderService.getOrderById(orderId);
+        List<Long> list = StringUtil.toLongList(order.getCartIds());
+        if (CollectionUtils.isEmpty(list)) {
+            return CommonResult.failed("库存不足");
+        }
+        ConfirmOrderResult confirmOrderResult = portalOrderService.generateConfirmOrder(list);
+        return CommonResult.success(confirmOrderResult);
+    }
+
     @ApiOperation("根据购物车信息生成订单")
     @RequestMapping(value = "/generateOrder", method = RequestMethod.POST)
     @ResponseBody

+ 2 - 2
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/UmsMemberCouponController.java

@@ -12,7 +12,6 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -66,7 +65,8 @@ public class UmsMemberCouponController {
     @RequestMapping(value = "/list/cart/{type}", method = RequestMethod.GET)
     @ResponseBody
     public CommonResult<List<SmsCouponHistoryDetail>> listCart(@PathVariable Integer type) {
-        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(memberService.getCurrentMember().getId(), null);
+        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(memberService.getCurrentMember().getId(), null,
+                                                                                      false);
         List<SmsCouponHistoryDetail> couponHistoryList = memberCouponService.listCart(cartPromotionItemList, type);
         return CommonResult.success(couponHistoryList);
     }

+ 11 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/dto/OmsReturnApplyQueryParam.java

@@ -22,6 +22,9 @@ public class OmsReturnApplyQueryParam {
     @ApiModelProperty(value = "处理时间")
     private String handleTime;
 
+    @ApiModelProperty(hidden = true)
+    private Long memberId;
+
 
     private Integer pageSize;
     private Integer pageNum;
@@ -89,4 +92,12 @@ public class OmsReturnApplyQueryParam {
     public void setHandleTime(String handleTime) {
         this.handleTime = handleTime;
     }
+
+    public Long getMemberId() {
+        return memberId;
+    }
+
+    public void setMemberId(Long memberId) {
+        this.memberId = memberId;
+    }
 }

+ 1 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsCartItemService.java

@@ -26,7 +26,7 @@ public interface OmsCartItemService {
     /**
      * 获取包含促销活动信息的购物车列表
      */
-    List<CartPromotionItem> listPromotion(Long memberId, List<Long> cartIds);
+    List<CartPromotionItem> listPromotion(Long memberId, List<Long> cartIds, boolean del);
 
     /**
      * 修改某个购物车商品的数量

+ 9 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.portal.service;
 
 import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mbg.model.OmsOrder;
 import com.yonge.cooleshow.portal.domain.ConfirmOrderResult;
 import com.yonge.cooleshow.portal.domain.OmsOrderDetail;
 import com.yonge.cooleshow.portal.domain.OrderParam;
@@ -89,4 +90,12 @@ public interface OmsPortalOrderService {
      */
     @Transactional
     OrderPayRes orderPay(OrderPayReq payReq);
+
+    /**
+     * 获取订单信息
+     *
+     * @param orderId 订单号
+     * @return
+     */
+    OmsOrder getOrderById(Long orderId);
 }

+ 9 - 4
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/HomeServiceImpl.java

@@ -9,7 +9,9 @@ import com.yonge.cooleshow.portal.domain.HomeContentResult;
 import com.yonge.cooleshow.portal.domain.HomeFlashPromotion;
 import com.yonge.cooleshow.portal.dto.ProductCategorySmallVo;
 import com.yonge.cooleshow.portal.service.HomeService;
+import com.yonge.cooleshow.portal.service.UmsMemberService;
 import com.yonge.cooleshow.portal.util.DateUtil;
+import com.yonge.toolset.base.exception.BizException;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -43,7 +45,8 @@ public class HomeServiceImpl implements HomeService {
 
     @Autowired
     private OmsCartItemMapper cartItemMapper;
-
+    @Autowired
+    private UmsMemberService memberService;
     @Autowired
     private PmsProductAttributeCategoryMapper productAttributeCategoryMapper;
 
@@ -89,9 +92,11 @@ public class HomeServiceImpl implements HomeService {
 
     private long getHomeCartItemCount() {
         OmsCartItemExample example = new OmsCartItemExample();
-        // todo 用户id
-        // example.createCriteria().andDeleteStatusEqualTo(0).andMemberIdEqualTo(memberId);
-        example.createCriteria().andDeleteStatusEqualTo(0);
+        UmsMember currentMember = memberService.getCurrentMember();
+        if (currentMember == null) {
+            throw new BizException("请重新登录");
+        }
+        example.createCriteria().andDeleteStatusEqualTo(0).andMemberIdEqualTo(currentMember.getId());
         return cartItemMapper.countByExample(example);
     }
 

+ 11 - 4
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsCartItemServiceImpl.java

@@ -80,10 +80,17 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
     }
 
     @Override
-    public List<CartPromotionItem> listPromotion(Long memberId, List<Long> cartIds) {
-        List<OmsCartItem> cartItemList = list(memberId);
-        if(CollUtil.isNotEmpty(cartIds)){
-            cartItemList = cartItemList.stream().filter(item->cartIds.contains(item.getId())).collect(Collectors.toList());
+    public List<CartPromotionItem> listPromotion(Long memberId, List<Long> cartIds, boolean del) {
+        List<OmsCartItem> cartItemList = new ArrayList<>();
+        if (!del) {
+            cartItemList = list(memberId);
+            if (CollUtil.isNotEmpty(cartIds)) {
+                cartItemList = cartItemList.stream().filter(item -> cartIds.contains(item.getId())).collect(Collectors.toList());
+            }
+        } else {
+            OmsCartItemExample example = new OmsCartItemExample();
+            example.createCriteria().andMemberIdEqualTo(memberId).andIdIn(cartIds);
+            cartItemList  = cartItemMapper.selectByExample(example);
         }
         List<CartPromotionItem> cartPromotionItemList = new ArrayList<>();
         if(!CollectionUtils.isEmpty(cartItemList)){

+ 11 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderReturnApplyServiceImpl.java

@@ -4,12 +4,15 @@ import com.github.pagehelper.PageHelper;
 import com.yonge.cooleshow.mbg.mapper.OmsOrderReturnApplyMapper;
 import com.yonge.cooleshow.mbg.model.OmsOrderReturnApply;
 import com.yonge.cooleshow.mbg.model.OmsOrderReturnApplyExample;
+import com.yonge.cooleshow.mbg.model.UmsMember;
 import com.yonge.cooleshow.portal.dao.OmsOrderReturnApplyDao;
 import com.yonge.cooleshow.portal.domain.OmsOrderReturnApplyParam;
 import com.yonge.cooleshow.portal.dto.OmsOrderReturnApplyResult;
 import com.yonge.cooleshow.portal.dto.OmsReturnApplyDto;
 import com.yonge.cooleshow.portal.dto.OmsReturnApplyQueryParam;
 import com.yonge.cooleshow.portal.service.OmsPortalOrderReturnApplyService;
+import com.yonge.cooleshow.portal.service.UmsMemberService;
+import com.yonge.toolset.base.exception.BizException;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -30,6 +33,9 @@ public class OmsPortalOrderReturnApplyServiceImpl implements OmsPortalOrderRetur
     @Autowired
     private OmsOrderReturnApplyDao returnApplyDao;
 
+    @Autowired
+    private UmsMemberService memberService;
+
     @Override
     public int create(OmsOrderReturnApplyParam returnApply) {
         OmsOrderReturnApply realApply = new OmsOrderReturnApply();
@@ -58,6 +64,11 @@ public class OmsPortalOrderReturnApplyServiceImpl implements OmsPortalOrderRetur
     @Override
     public List<OmsOrderReturnApply> list(OmsReturnApplyQueryParam queryParam, Integer pageSize, Integer pageNum) {
         PageHelper.startPage(pageNum, pageSize);
+        UmsMember currentMember = memberService.getCurrentMember();
+        if (currentMember == null) {
+            throw  new BizException("请重新登录");
+        }
+        queryParam.setMemberId(currentMember.getId());
         return returnApplyDao.getList(queryParam);
     }
 

+ 13 - 5
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -5,7 +5,6 @@ import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.yonge.toolset.base.exception.BizException;
-import com.yonge.cooleshow.enums.OrderStatusEnum;
 import com.yonge.cooleshow.enums.PayStatusEnum;
 import com.yonge.cooleshow.mall.common.api.CommonPage;
 import com.yonge.cooleshow.mall.common.exception.Asserts;
@@ -19,9 +18,7 @@ import com.yonge.cooleshow.portal.dao.SmsCouponHistoryDao;
 import com.yonge.cooleshow.portal.domain.*;
 import com.yonge.cooleshow.portal.service.*;
 import com.yonge.cooleshow.sdk.adapay.PaymentSdk;
-import com.yonge.cooleshow.sdk.req.OrderCloseReq;
 import com.yonge.cooleshow.sdk.req.OrderPayReq;
-import com.yonge.cooleshow.sdk.res.OrderCloseRes;
 import com.yonge.cooleshow.sdk.res.OrderPayRes;
 import com.yonge.cooleshow.service.PaymentService;
 import com.yonge.toolset.utils.string.StringUtil;
@@ -93,7 +90,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         ConfirmOrderResult result = new ConfirmOrderResult();
         //获取购物车信息
         UmsMember currentMember = memberService.getCurrentMember();
-        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(), cartIds);
+        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(), cartIds,true);
         result.setCartPromotionItemList(cartPromotionItemList);
         //获取用户收货地址列表
         List<UmsMemberReceiveAddress> memberReceiveAddressList = memberReceiveAddressService.list();
@@ -117,7 +114,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         List<OmsOrderItem> orderItemList = new ArrayList<>();
         //获取购物车及优惠信息
         UmsMember currentMember = memberService.getCurrentMember();
-        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(), orderParam.getCartIds());
+        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(), orderParam.getCartIds(),
+                                                                                      true);
         for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {
             //生成下单商品信息
             OmsOrderItem orderItem = new OmsOrderItem();
@@ -183,6 +181,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         lockStock(cartPromotionItemList);
         //根据商品合计、运费、活动优惠、优惠券、积分计算应付金额
         OmsOrder order = new OmsOrder();
+        StringBuilder cartIds = new StringBuilder();
+        for (Long cartId : orderParam.getCartIds()) {
+            cartIds.append(cartId.toString());
+        }
+        order.setCartIds(cartIds.toString());
         order.setDiscountAmount(new BigDecimal(0));
         order.setTotalAmount(calcTotalAmount(orderItemList));
         order.setFreightAmount(new BigDecimal(0));
@@ -518,6 +521,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     }
 
     @Override
+    public OmsOrder getOrderById(Long orderId) {
+        return orderMapper.selectByPrimaryKey(orderId);
+    }
+
+    @Override
     public void orderCallback(String data, String type) {
         JSONObject hfRes = JSONObject.parseObject(data);
 

+ 22 - 17
cooleshow-mall/mall-portal/src/main/resources/config/mybatis/OmsOrderReturnApplyDao.xml

@@ -6,40 +6,45 @@
     </resultMap>
     <select id="getList" resultMap="com.yonge.cooleshow.mbg.mapper.OmsOrderReturnApplyMapper.BaseResultMap">
         SELECT
-        id,
-        create_time,
-        member_username,
-        product_real_price,
-        product_count,
-        return_name,
-        status,
-        handle_time
+        oora.id,
+        oora.create_time,
+        oora.member_username,
+        oora.product_real_price,
+        oora.product_count,
+        oora.return_name,
+        oora.status,
+        oora.handle_time
         FROM
-        oms_order_return_apply
+        oms_order_return_apply oora
+        left join oms_order oo on oo.id = order_id
         WHERE
         1 = 1
         <if test="queryParam.id!=null">
-            AND id = #{queryParam.id}
+            AND oora.id = #{queryParam.id}
         </if>
         <if test="queryParam.status!=null">
-            AND status = #{queryParam.status}
+            AND oora.status = #{queryParam.status}
         </if>
         <if test="queryParam.status!=null">
-            AND status = #{queryParam.status}
+            AND oora.status = #{queryParam.status}
         </if>
         <if test="queryParam.handleMan!=null and queryParam.handleMan!=''">
-            AND handle_man = #{queryParam.handleMan}
+            AND oora.handle_man = #{queryParam.handleMan}
         </if>
         <if test="queryParam.createTime!=null and queryParam.createTime!=''">
-            AND create_time LIKE CONCAT(#{queryParam.createTime}, '%')
+            AND oora.create_time LIKE CONCAT(#{queryParam.createTime}, '%')
         </if>
         <if test="queryParam.handleTime!=null and queryParam.handleTime!=''">
-            AND handle_time LIKE CONCAT(#{queryParam.handleTime}, '%')
+            AND oora.handle_time LIKE CONCAT(#{queryParam.handleTime}, '%')
         </if>
         <if test="queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''">
-            AND (return_name LIKE concat("%",#{queryParam.receiverKeyword},"%")
-            OR return_phone LIKE concat("%",#{queryParam.receiverKeyword},"%"))
+            AND (oora.return_name LIKE concat("%",#{queryParam.receiverKeyword},"%")
+            OR oora.return_phone LIKE concat("%",#{queryParam.receiverKeyword},"%"))
         </if>
+        <if test="queryParam.memberId != null">
+            and oo.member_id = #{queryParam.memberId}
+        </if>
+        order by oora.create_time desc
     </select>
     <select id="getDetail" resultMap="returnApplyDetailResultMap">
         SELECT