Browse Source

no message

lixueqiang 2 years ago
parent
commit
ff795da214

File diff suppressed because it is too large
+ 2 - 3
db/kxs_config.sql


File diff suppressed because it is too large
+ 4452 - 4151
db/kxs_sys.sql


+ 35 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/shop/ShopOrderCountVO.java

@@ -0,0 +1,35 @@
+package com.kxs.product.api.vo.kxsapp.shop;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 订单数量
+ *
+ * @author Lxq
+ * @date 2023-12-22
+ */
+@Data
+@Builder
+@Schema(description = "订单数量返回实体")
+public class ShopOrderCountVO implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 待支付数
+     */
+    @Schema(description = "待支付数量")
+    private Long needPayCount;
+
+    /**
+     * 待发货数
+     */
+    @Schema(description = "待发货数")
+    private Long needSendCount;
+}

+ 9 - 1
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/shop/ShopOrderDetailVO.java

@@ -1,6 +1,8 @@
 package com.kxs.product.api.vo.kxsapp.shop;
 
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -37,6 +39,12 @@ public class ShopOrderDetailVO implements Serializable {
     @Schema(description = "订单号")
     private String orderSn;
 
+    /**
+     * 新增时间
+     */
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
 
     /**
      * 提货方式 0自提 1邮寄
@@ -147,7 +155,7 @@ public class ShopOrderDetailVO implements Serializable {
      * 商城订单详情表
      */
     @Schema(description = "商城订单详情表")
-    private List<OrderInfoListVO> goodsList;
+    private List<ShopOrderInfoListVO> goodsList;
 
 
 

+ 1 - 5
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/shop/OrderInfoListVO.java → kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/shop/ShopOrderInfoListVO.java

@@ -16,7 +16,7 @@ import java.math.BigDecimal;
  */
 @Data
 @Schema(description = "订单详情表返回实体")
-public class OrderInfoListVO implements Serializable {
+public class ShopOrderInfoListVO implements Serializable {
 
 	@Serial
 	private static final long serialVersionUID = 1L;
@@ -58,8 +58,4 @@ public class OrderInfoListVO implements Serializable {
 
 
 
-
-
-	
-
 }

+ 74 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/shop/ShopOrderListVO.java

@@ -0,0 +1,74 @@
+package com.kxs.product.api.vo.kxsapp.shop;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 订单列表vo
+ *
+ * @author 系统
+ * @date 2023-12-20 10:09:36
+ */
+@Data
+@Schema(description = "订单列表返回实体")
+public class ShopOrderListVO implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    private Integer id;
+
+    /**
+     * 订单号
+     */
+    @Schema(description = "订单号")
+    private String orderSn;
+
+    /**
+     * 状态 0未支付 1已支付 2已发货 3已完成 4已取消
+     */
+    @Schema(description = "状态 0未支付 1已支付 2已发货 3已完成 4已取消")
+    private Integer status;
+
+    /**
+     * 退款状态 0未申请 1已申请 2申请通过 3申请驳回
+     */
+    @Schema(description = "退款状态 0未申请 1已申请 2申请通过 3申请驳回")
+    private Integer returnStatus;
+
+    /**
+     * 订单金额
+     */
+    @Schema(description = "订单金额")
+    private BigDecimal totalPrice;
+
+    /**
+     * 支付金额
+     */
+    @Schema(description = "支付金额")
+    private BigDecimal payPrice;
+
+    /**
+     * 商城订单详情表
+     */
+    @Schema(description = "商城订单详情表")
+    private List<ShopOrderInfoListVO> goodsList;
+
+    /**
+     * 新增时间
+     */
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+}

+ 23 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/ShopController.java

@@ -5,6 +5,7 @@ import com.kxs.common.core.util.R;
 import com.kxs.product.api.model.KxsShopOrder;
 import com.kxs.product.api.dto.kxsapp.shop.GoodsSubmitDTO;
 import com.kxs.product.api.vo.kxsapp.shop.ShopGoodsListVO;
+import com.kxs.product.api.vo.kxsapp.shop.ShopOrderListVO;
 import com.kxs.product.biz.service.KxsShopCateService;
 import com.kxs.product.biz.service.KxsShopGoodsService;
 import com.kxs.product.biz.service.KxsShopOrderService;
@@ -80,6 +81,28 @@ public class ShopController {
     }
 
 
+    /**
+     * 待付款待发货数量
+     *
+     * @return 订单详情
+     */
+    @GetMapping("/orderUnCount")
+    public R orderUnCount() {
+        return R.ok(kxsShopOrderService.orderUnCount());
+    }
+
+    /**
+     * 订单列表
+     *
+     * @param param 状态
+     * @param page   分页对象
+     * @return 订单详情
+     */
+    @GetMapping("/orderList")
+    public R orderList(@ParameterObject Page<ShopOrderListVO> page, @ParameterObject KxsShopOrder param) {
+        return R.ok(kxsShopOrderService.getByPage(page, param));
+    }
+
     /**
      * 订单详情
      *

+ 15 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mapper/KxsShopOrderMapper.java

@@ -1,8 +1,14 @@
 package com.kxs.product.biz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.product.api.model.KxsShopOrder;
+import com.kxs.product.api.vo.kxsapp.shop.ShopOrderListVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 商城订单表(KxsShopOrder)表数据库访问层
@@ -13,5 +19,14 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface KxsShopOrderMapper extends BaseMapper<KxsShopOrder> {
 
+    /**
+     * kxs app 订单列表 一对多分页
+     *
+     * @param start   起始数量
+     * @param size    数量
+     * @param param   参数
+     * @return {@link List}<{@link ShopOrderListVO}>
+     */
+    List<ShopOrderListVO> getByPage(@Param("start") long start, @Param("size") long size, @Param("query") KxsShopOrder param);
 }
 

+ 21 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsShopOrderService.java

@@ -1,10 +1,14 @@
 package com.kxs.product.biz.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
 import com.kxs.product.api.model.KxsShopOrder;
 import com.kxs.product.api.dto.kxsapp.shop.GoodsSubmitDTO;
+import com.kxs.product.api.vo.kxsapp.shop.ShopOrderCountVO;
 import com.kxs.product.api.vo.kxsapp.shop.ShopOrderDetailVO;
+import com.kxs.product.api.vo.kxsapp.shop.ShopOrderListVO;
 
 /**
  * 商城订单表(KxsShopOrder)表服务接口
@@ -53,5 +57,22 @@ public interface KxsShopOrderService extends IService<KxsShopOrder> {
      * @return {@link R}
      */
     R confirmOrder(KxsShopOrder param);
+
+    /**
+     * kxs app 订单列表
+     *
+     * @param page  页面
+     * @param param 参数
+     * @return {@link IPage}<{@link ShopOrderListVO}>
+     */
+    IPage<ShopOrderListVO> getByPage(Page<ShopOrderListVO> page, KxsShopOrder param);
+
+    /**
+     * kxs app 待付款待发货数量
+     *
+     * @return {@link Object}
+     */
+    ShopOrderCountVO orderUnCount();
+
 }
 

+ 35 - 2
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsShopOrderServiceImpl.java

@@ -2,15 +2,19 @@ package com.kxs.product.biz.service.impl;
 
 import cn.hutool.core.lang.Snowflake;
 import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.model.KxsShopGoods;
 import com.kxs.product.api.model.KxsShopOrderInfo;
 import com.kxs.product.api.dto.kxsapp.shop.GoodsSubmitDTO;
-import com.kxs.product.api.vo.kxsapp.shop.OrderInfoListVO;
+import com.kxs.product.api.vo.kxsapp.shop.ShopOrderCountVO;
+import com.kxs.product.api.vo.kxsapp.shop.ShopOrderInfoListVO;
 import com.kxs.product.api.vo.kxsapp.shop.ShopOrderDetailVO;
+import com.kxs.product.api.vo.kxsapp.shop.ShopOrderListVO;
 import com.kxs.product.biz.constant.enums.KxsShopEnum;
 import com.kxs.product.biz.constant.enums.ProductErrorTypeEnum;
 import com.kxs.product.biz.mapper.KxsShopGoodsMapper;
@@ -93,7 +97,7 @@ public class KxsShopOrderServiceImpl extends ServiceImpl<KxsShopOrderMapper, Kxs
                 .eq(KxsShopOrderInfo::getOrderId, orderId));
 
         orderInfos.forEach(item -> {
-            OrderInfoListVO infoListVO = new OrderInfoListVO();
+            ShopOrderInfoListVO infoListVO = new ShopOrderInfoListVO();
             BeanUtils.copyProperties(item, infoListVO);
             shopOrderDetailVO.getGoodsList().add(infoListVO);
         });
@@ -154,6 +158,35 @@ public class KxsShopOrderServiceImpl extends ServiceImpl<KxsShopOrderMapper, Kxs
         return R.ok();
     }
 
+    @Override
+    public IPage<ShopOrderListVO> getByPage(Page<ShopOrderListVO> page, KxsShopOrder param) {
+        //自定义分页
+        long start = (page.getCurrent() - 1) * page.getSize();
+        start = start < 0 ? 0L : start;
+
+        Long count = baseMapper.selectCount(Wrappers.query(param));
+        List<ShopOrderListVO> orderListVos = baseMapper.getByPage(start, page.getSize(), param);
+        page.setRecords(orderListVos);
+        page.setTotal(count);
+
+        return page;
+    }
+
+    @Override
+    public ShopOrderCountVO orderUnCount() {
+
+        Long userId = SecurityUtils.getUser().getId();
+
+        Long noPayCount = baseMapper.selectCount(Wrappers.<KxsShopOrder>lambdaQuery()
+                .eq(KxsShopOrder::getUserId, userId)
+                .eq(KxsShopOrder::getStatus, KxsShopEnum.ORDER_NO_PAY.getType()));
+        Long noSendCount = baseMapper.selectCount(Wrappers.<KxsShopOrder>lambdaQuery()
+                .eq(KxsShopOrder::getUserId, userId)
+                .eq(KxsShopOrder::getStatus, KxsShopEnum.ORDER_NO_SEND.getType()));
+
+        return ShopOrderCountVO.builder().needPayCount(noPayCount).needSendCount(noSendCount).build();
+    }
+
     /**
      * 余额支付
      *

+ 61 - 25
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsShopOrderMapper.xml

@@ -3,32 +3,68 @@
 <mapper namespace="com.kxs.product.biz.mapper.KxsShopOrderMapper">
 
     <resultMap type="com.kxs.product.api.model.KxsShopOrder" id="KxsShopOrderMap">
-        <result column="id" property="id" />
-        <result column="create_time" property="createTime" />
-        <result column="update_time" property="updateTime" />
-        <result column="del_flag" property="delFlag" />
-        <result column="version" property="version" />
-        <result column="order_sn" property="orderSn" />
-        <result column="user_id" property="userId" />
-        <result column="get_mode" property="getMode" />
-        <result column="pay_type" property="payType" />
-        <result column="pay_time" property="payTime" />
-        <result column="send_time" property="sendTime" />
-        <result column="remark" property="remark" />
-        <result column="consignee" property="consignee" />
-        <result column="phone" property="phone" />
-        <result column="address" property="address" />
-        <result column="expressage_sn" property="expressageSn" />
-        <result column="expressage_name" property="expressageName" />
-        <result column="status" property="status" />
-        <result column="return_status" property="returnStatus" />
-        <result column="return_time" property="returnTime" />
-        <result column="total_price" property="totalPrice" />
-        <result column="pay_price" property="payPrice" />
-        <result column="trade_no" property="tradeNo" />
-        <result column="warehouse_id" property="warehouseId" />
-        <result column="order_type" property="orderType" />
+        <result column="id" property="id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="del_flag" property="delFlag"/>
+        <result column="version" property="version"/>
+        <result column="order_sn" property="orderSn"/>
+        <result column="user_id" property="userId"/>
+        <result column="get_mode" property="getMode"/>
+        <result column="pay_type" property="payType"/>
+        <result column="pay_time" property="payTime"/>
+        <result column="send_time" property="sendTime"/>
+        <result column="remark" property="remark"/>
+        <result column="consignee" property="consignee"/>
+        <result column="phone" property="phone"/>
+        <result column="address" property="address"/>
+        <result column="expressage_sn" property="expressageSn"/>
+        <result column="expressage_name" property="expressageName"/>
+        <result column="status" property="status"/>
+        <result column="return_status" property="returnStatus"/>
+        <result column="return_time" property="returnTime"/>
+        <result column="total_price" property="totalPrice"/>
+        <result column="pay_price" property="payPrice"/>
+        <result column="trade_no" property="tradeNo"/>
+        <result column="warehouse_id" property="warehouseId"/>
+        <result column="order_type" property="orderType"/>
 
     </resultMap>
+    <!-- kxs app 订单列表分页 map -->
+    <resultMap type="com.kxs.product.api.vo.kxsapp.shop.ShopOrderListVO" id="KxsShopOrderPageMap">
+        <result column="id" property="id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="status" property="status"/>
+        <result column="return_status" property="returnStatus"/>
+        <result column="total_price" property="totalPrice"/>
+        <result column="pay_price" property="payPrice"/>
+        <result column="order_sn" property="orderSn"/>
+        <collection property="goodsList" ofType="com.kxs.product.api.vo.kxsapp.shop.ShopOrderInfoListVO">
+            <result column="number" property="number"/>
+            <result column="goods_price" property="goodsPrice"/>
+            <result column="pic_url" property="picUrl"/>
+            <result column="goods_name" property="goodsName"/>
+            <result column="specifications" property="specifications"/>
+        </collection>
+    </resultMap>
+
+    <select id="getByPage" resultMap="KxsShopOrderPageMap">
+        SELECT a.id, a.create_time, a.order_sn, a.status, a.return_status, a.total_price, a.pay_price, a.warehouse_id, a.order_type,
+               t.number, t.goods_price, t.pic_url, t.goods_name, t.specifications
+        FROM (
+                SELECT * FROM kxs_shop_order
+                <where>
+                    del_flag = 0
+                    <if test="query.status != null">
+                        and status = #{query.status}
+                    </if>
+                </where>
+                LIMIT #{start}, #{size}
+             ) a
+        LEFT JOIN kxs_shop_order_info t  ON a.id = t.order_id
+        <where>
+
+        </where>
+    </select>
 
 </mapper>

Some files were not shown because too many files changed in this diff