From a5c5fc7c86c37519dbe42b148b47ebfc00f89ca9 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期三, 09 七月 2025 10:56:42 +0800
Subject: [PATCH] bug修改

---
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java                                 |    9 ++
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml                                                     |   32 ++++++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderGoodsMapper.java                                    |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOneClinkSyncPageVO.java                                |    5 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java                                       |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/UserLotteryEventQuestionsAnswersServiceImpl.java |    3 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/OneClinkSyncingMapper.xml                                         |    9 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java                         |   28 +++++-
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java                                         |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java                                       |    7 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java                              |    6 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderGoodsService.java                                  |    4 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/OneClinkSyncing.java                         |   11 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtLotteryEventDetailVO.java                                |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderGoodsServiceImpl.java                         |    6 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventPrizeServiceImpl.java                |    1 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java                         |    6 +
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderGoodsMapper.xml                                                |   17 ++++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtOneClinkSyncingPageDTO.java                           |    7 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLotteryEventController.java                  |    1 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/OneClinkSyncingServiceImpl.java                 |    9 +-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java                               |   12 +++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/StaticsShopMgtGoodsVO.java                            |   21 +++++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java                              |   31 +++++++
 24 files changed, 209 insertions(+), 25 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/OneClinkSyncing.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/OneClinkSyncing.java
index efe74ef..fe4ee39 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/OneClinkSyncing.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/OneClinkSyncing.java
@@ -5,11 +5,13 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
@@ -84,13 +86,13 @@
     private Integer shopNum = 0;
 
     @TableField("create_time")
-    private Date createTime;
+    private LocalDateTime createTime;
 
     @TableField("create_user_id")
     private Long createUserId;
 
     @TableField("update_time")
-    private Date updateTime;
+    private LocalDateTime updateTime;
 
     @TableField("update_user_id")
     private Long updateUserId;
@@ -99,7 +101,8 @@
      * 最近一次同步时间
      */
     @TableField("syncing_time")
-    private Date syncingTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime syncingTime;
 
     /**
      * 最近一次同步操作人
@@ -113,7 +116,9 @@
     @TableField("shop_ids")
     private String shopIds;
 
+    @TableField(exist = false)
     private List<Long> shopIdList;
+    @TableField(exist = false)
     private Long userId;
 
     @Override
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/StaticsShopMgtGoodsVO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/StaticsShopMgtGoodsVO.java
new file mode 100644
index 0000000..d4548f0
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/StaticsShopMgtGoodsVO.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.api.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class StaticsShopMgtGoodsVO {
+
+
+    @ApiModelProperty(value = "商品总数")
+    private Integer goodsNum;
+
+    @ApiModelProperty(value = "总销量")
+    private Integer goodsSellNum;
+
+    @ApiModelProperty(value = "总销售额")
+    private BigDecimal goodsSellCount;
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java
index 8806427..d5554cc 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java
@@ -88,6 +88,12 @@
             }
 
             @Override
+            public R<StaticsShopMgtGoodsVO> getGoodsSellStatic(List<String> orderIdList) {
+
+                return R.fail("获取商品售卖统计失败:" + throwable.getMessage());
+            }
+
+            @Override
             public R<MgtBulletinBoardVo> boardOrderTotal(BoardMemberTotalDto boardMemberTotalDto) {
                 return R.fail(throwable.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java
index bfa7ee7..f62f3ab 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java
@@ -118,4 +118,13 @@
      */
     @PostMapping("/order/getActivityOrderGoods")
     R<List<String>> getActivityOrderGoods(@RequestBody String activityId);
+
+    /**
+     * 获取商品售卖统计
+     * @param orderIdList
+     * @return
+     */
+    @PostMapping("/order/getGoodsSellStatic")
+    R<StaticsShopMgtGoodsVO> getGoodsSellStatic(@RequestBody List<String> orderIdList);
+
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
index eabdc44..888b2a4 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
@@ -7,13 +7,11 @@
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.goods.domain.dto.*;
-import com.ruoyi.goods.domain.vo.MgtGoodsEditInfoVo;
-import com.ruoyi.goods.domain.vo.MgtGoodsPageVo;
-import com.ruoyi.goods.domain.vo.MgtGoodsTotalVo;
-import com.ruoyi.goods.domain.vo.PageShopMgtGoodsVO;
+import com.ruoyi.goods.domain.vo.*;
 import com.ruoyi.goods.service.goods.GoodsService;
 import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
 import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo;
+import com.ruoyi.system.api.domain.vo.StaticsShopMgtGoodsVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.validation.annotation.Validated;
@@ -144,8 +142,28 @@
         return R.ok(page.setRecords(pageShopMgtGoods));
     }
 
-
+    @RequestMapping(value = "/exportShopMgtGoods", method = RequestMethod.POST)
+    @ApiOperation(value = "商品信息-分页获取门店内商品信息-导出【2.0】",tags = "管理台商户相关接口")
+    public void exportShopMgtGoods(@RequestBody PageShopMgtGoodsDTO pageShopMgtGoodsDTO, HttpServletResponse response) {
+        Page<PageShopMgtGoodsVO> page = new Page<>();
+        if(pageShopMgtGoodsDTO.getPageSize() > 5000){
+            page.setSize(5000);
+            page.setCurrent(1);
+        }else{
+            page.setSize(pageShopMgtGoodsDTO.getPageSize());
+            page.setCurrent(pageShopMgtGoodsDTO.getPageNum());
+        }
+        List<PageShopMgtGoodsVO> pageShopMgtGoods = goodsService.pageShopMgtGoods(page,pageShopMgtGoodsDTO);
+        ExcelUtil<PageShopMgtGoodsVO> util = new ExcelUtil<PageShopMgtGoodsVO>(PageShopMgtGoodsVO.class);
+        util.exportExcel(response, pageShopMgtGoods, "商品信息");
+    }
+    @RequestMapping(value = "/staticsShopMgtGoods", method = RequestMethod.POST)
+    @ApiOperation(value = "商品信息-获取门店内商品信息统计汇总【2.0】",tags = "管理台商户相关接口")
+    public R<StaticsShopMgtGoodsVO> staticsShopMgtGoods(@RequestBody PageShopMgtGoodsDTO pageShopMgtGoodsDTO) {
+        return R.ok(goodsService.staticsShopMgtGoods(pageShopMgtGoodsDTO));
+    }
     @RequestMapping(value = "/updateGoodsPrice", method = RequestMethod.POST)
+    @Log(title = "商品管理", businessType = BusinessType.UPDATE,operContent = "修改门店内商品价格")
     @ApiOperation(value = "商品信息-修改价格【2.0】",tags = "管理台商户相关接口")
     public R<Void> updateGoodsPrice(@RequestBody UpdateGoodsPriceDTO updateGoodsPriceDTO) {
         return goodsService.updateGoodsPrice(updateGoodsPriceDTO);
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLotteryEventController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLotteryEventController.java
index faf9cfb..76928b7 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLotteryEventController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtLotteryEventController.java
@@ -16,7 +16,6 @@
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.util.Collections;
 import java.util.List;
 
 /**
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtLotteryEventDetailVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtLotteryEventDetailVO.java
index 2726c42..44b1332 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtLotteryEventDetailVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtLotteryEventDetailVO.java
@@ -2,8 +2,6 @@
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.goods.api.domain.TLotteryEventPrize;
-import com.ruoyi.goods.domain.dto.MgtLotteryEventPrizeDTO;
-import com.ruoyi.goods.domain.dto.MgtLotteryEventQuestionDTO;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java
index 07e41e7..5cb60ff 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/goods/GoodsMapper.java
@@ -161,4 +161,6 @@
     List<String> listGoodsNameByGoodsClass(@Param("classId") Long classId);
 
     List<PageShopMgtGoodsVO> pageShopMgtGoods(Page<PageShopMgtGoodsVO> page,@Param("dto") PageShopMgtGoodsDTO dto);
+
+    List<String>  staticsShopMgtGoods(@Param("dto") PageShopMgtGoodsDTO pageShopMgtGoodsDTO);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
index 61d54e2..f9df2e7 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
@@ -11,6 +11,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo;
 import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo;
+import com.ruoyi.system.api.domain.vo.StaticsShopMgtGoodsVO;
 
 import java.util.List;
 
@@ -230,4 +231,6 @@
      * @return
      */
     R<Void> updateGoodsPrice(UpdateGoodsPriceDTO updateGoodsPriceDTO);
+
+    StaticsShopMgtGoodsVO staticsShopMgtGoods(PageShopMgtGoodsDTO pageShopMgtGoodsDTO);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
index 32aacf3..d5496ed 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -36,15 +36,15 @@
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo;
 import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo;
-import com.ruoyi.system.api.domain.vo.ShopRelUserVo;
+import com.ruoyi.system.api.domain.vo.StaticsShopMgtGoodsVO;
 import com.ruoyi.system.api.service.RemoteConfigService;
+import com.ruoyi.system.api.service.RemoteOrderService;
 import com.ruoyi.system.api.service.RemoteShopService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
-import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -768,7 +768,34 @@
 
         return list;
     }
+    @Resource
+    private  RemoteOrderService remoteOrderService;
+    @Override
+    public StaticsShopMgtGoodsVO staticsShopMgtGoods(PageShopMgtGoodsDTO pageShopMgtGoodsDTO) {
+        StaticsShopMgtGoodsVO vo = new StaticsShopMgtGoodsVO();
 
+        //1.查找门店
+        Shop shop = remoteShopService.getShop(pageShopMgtGoodsDTO.getShopId()).getData();
+        if (null == shop || shop.getDelFlag() != 0 || shop.getShopStatus() == -1) {
+            return vo;
+        }
+        List<Shop> shops = new ArrayList<>();
+        //2.判断门店是否经销商
+        if (shop.getShopType()==1){
+            //经销商 获取下级-加盟商ids
+            shops = remoteShopService.getFranchiseeIdsBYDealerId(shop.getShopId());
+        }
+        //将该门店加入
+        shops.add(shop);
+        List<Long> shopIds = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
+        //查询信息
+        pageShopMgtGoodsDTO.setShopIds(shopIds);
+        //3.根据shopId查询商品ids
+        List<String> goodsId= goodsMapper.staticsShopMgtGoods(pageShopMgtGoodsDTO);
+
+        //查询商品销量 销售额
+        return remoteOrderService.getGoodsSellStatic(goodsId).getData();
+    }
     @Override
     public R<Void> updateGoodsPrice(UpdateGoodsPriceDTO updateGoodsPriceDTO) {
         //判断当前登录人员类型
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventPrizeServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventPrizeServiceImpl.java
index dfb8d5e..f3104f1 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventPrizeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventPrizeServiceImpl.java
@@ -6,7 +6,6 @@
 import com.ruoyi.goods.service.lottery.ILotteryEventPrizeService;
 import org.springframework.stereotype.Service;
 
-import java.util.Collections;
 import java.util.List;
 
 /**
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/UserLotteryEventQuestionsAnswersServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/UserLotteryEventQuestionsAnswersServiceImpl.java
index 4ef8b98..fb662f1 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/UserLotteryEventQuestionsAnswersServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/UserLotteryEventQuestionsAnswersServiceImpl.java
@@ -3,19 +3,16 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.goods.api.domain.TLotteryEvent;
 import com.ruoyi.goods.api.domain.TLotteryEventQuestionsAnswers;
 import com.ruoyi.goods.api.domain.TUserLotteryEventQuestionsAnswers;
 import com.ruoyi.goods.domain.vo.MgtUserAnswersPageVO;
 import com.ruoyi.goods.mapper.lottery.UserLotteryEventQuestionsAnswersMapper;
 import com.ruoyi.goods.service.lottery.ILotteryEventQuestionsAnswersService;
-import com.ruoyi.goods.service.lottery.ILotteryEventService;
 import com.ruoyi.goods.service.lottery.IUserLotteryEventQuestionsAnswersService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.util.Collections;
 import java.util.List;
 
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
index e2cb612..d759f41 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -579,4 +579,36 @@
 
         ORDER BY tg.create_time DESC
     </select>
+    <select id="staticsShopMgtGoods" resultType="java.lang.String">
+        select
+        tg.goods_id
+        from t_goods tg
+        LEFT JOIN t_shop_goods tsg on tg.goods_id = tsg.goods_id and tsg.del_flag = 0
+        WHERE tg.del_flag = 0
+        <if test="dto.goodsType != null and dto.goodsType != ''">
+            AND tg.goods_type = #{dto.goodsType}
+        </if>
+        <if test="dto.goodsClassId != null and dto.goodsClassId != ''">
+            AND tg.goods_class_id = #{dto.goodsClassId}
+        </if>
+        <if test="dto.createStartTime!=null and dto.createStartTime != ''">
+            AND Date(tg.create_time) &gt;= #{dto.createStartTime}
+        </if>
+        <if test="dto.createEndTime!=null and dto.createEndTime != ''">
+            AND Date(tg.create_time) &lt;= #{dto.createEndTime}
+        </if>
+        <if test="dto.goodsName != null and dto.goodsName != ''">
+            AND tg.goods_name LIKE CONCAT('%',#{dto.goodsName},'%')
+        </if>
+        <if test="dto.goodsStatus != null and dto.goodsStatus != ''">
+            AND tg.goods_status = #{dto.goodsStatus}
+        </if>
+        <if test="dto.shopIds != null and dto.shopIds.size() > 0">
+            AND tsg.shop_id IN
+            <foreach collection="param.shopIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
 </mapper>
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
index a91a5b4..25826b4 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
@@ -187,4 +187,16 @@
         List<String> activityOrderGoods = orderService.getActivityOrderGoods(activityId);
         return R.ok(activityOrderGoods);
     }
+
+    /**
+     * 获取商品售卖统计
+     * @param goodsIdList
+     * @return
+     */
+    @PostMapping("/order/getGoodsSellStatic")
+    R<StaticsShopMgtGoodsVO> getGoodsSellStatic(@RequestBody List<String> goodsIdList){
+        StaticsShopMgtGoodsVO vo = orderService.getGoodsSellStatic(goodsIdList);
+        vo.setGoodsNum(goodsIdList.size());
+        return R.ok(vo);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderGoodsMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderGoodsMapper.java
index 011c397..016d469 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderGoodsMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderGoodsMapper.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo;
 import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo;
+import com.ruoyi.system.api.domain.vo.StaticsShopMgtGoodsVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -34,4 +35,5 @@
      */
     List<MgtOrderGoodsDetailVo> listMgtVoByOrderId(@Param("orderId")String orderId);
 
+    StaticsShopMgtGoodsVO getGoodsSellStatic(@Param("goodsIdList")List<String> goodsIdList);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderGoodsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderGoodsServiceImpl.java
index 05b018d..02260ae 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderGoodsServiceImpl.java
@@ -8,6 +8,7 @@
 import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo;
 import com.ruoyi.order.mapper.order.OrderGoodsMapper;
 import com.ruoyi.order.service.order.OrderGoodsService;
+import com.ruoyi.system.api.domain.vo.StaticsShopMgtGoodsVO;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -66,4 +67,9 @@
         queryWrapper.eq(OrderGoods::getOrderId,orderId);
         return this.list(queryWrapper);
     }
+
+    @Override
+    public StaticsShopMgtGoodsVO getGoodsSellStatic(List<String> goodsIdList) {
+        return orderGoodsMapper.getGoodsSellStatic(goodsIdList);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index bc08919..ee04d7b 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -72,7 +72,6 @@
 import com.ruoyi.system.api.model.QwH5LoginVo;
 import com.ruoyi.system.api.model.QwUserDetailDto;
 import com.ruoyi.system.api.service.*;
-import io.seata.spring.annotation.GlobalTransactional;
 import lombok.extern.log4j.Log4j2;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
@@ -6881,4 +6880,9 @@
          vo = orderMapper.getPlTotalThirdOrderStatics(mgtBasePlatformDto);
         return vo;
     }
+
+    @Override
+    public StaticsShopMgtGoodsVO getGoodsSellStatic(List<String> goodsIdList) {
+        return orderGoodsService.getGoodsSellStatic(goodsIdList);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderGoodsService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderGoodsService.java
index 8fb0ee2..826e609 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderGoodsService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderGoodsService.java
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo;
 import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo;
+import com.ruoyi.system.api.domain.vo.StaticsShopMgtGoodsVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -43,4 +45,6 @@
      * @return  List<OrderGoods>
      */
     List<OrderGoods> listByOrderId(String orderId);
+
+    StaticsShopMgtGoodsVO getGoodsSellStatic(@Param("goodsIdList") List<String> goodsIdList);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
index 72813cc..6077b6b 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -645,4 +645,11 @@
      * @return
      */
     MgtPlTotalThirdOrderStaticsVO getPlTotalThirdOrderStatics(MgtBasePlatformDto mgtBasePlatformDto);
+
+    /**
+     * 获取商品售卖统计
+     * @param goodsIdList
+     * @return
+     */
+    StaticsShopMgtGoodsVO getGoodsSellStatic(List<String> goodsIdList);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderGoodsMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderGoodsMapper.xml
index 87791e3..33614da 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderGoodsMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderGoodsMapper.xml
@@ -136,4 +136,21 @@
         INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
         WHERE toc.del_flag = 0 AND toc.order_id = #{orderId}
     </select>
+    <select id="getGoodsSellStatic" resultType="com.ruoyi.system.api.domain.vo.StaticsShopMgtGoodsVO">
+        SELECT
+        SUM(og.buy_num) AS total_sales_volume,
+        SUM(og.buy_num * og.goods_price) AS total_sales_amount
+        FROM
+        t_order_goods og
+        JOIN
+        t_order o ON og.order_id = o.order_id
+        WHERE
+        og.goods_id IN
+        <foreach collection="goodsIds" item="goodsId" open="(" separator="," close=")">
+            #{goodsId}
+        </foreach>
+        AND o.del_flag = 0
+        AND o.order_status IN (2, 3)  <!-- 只统计已支付和已完成订单 -->
+        AND og.del_flag = 0
+    </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtOneClinkSyncingPageDTO.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtOneClinkSyncingPageDTO.java
index 1c6de66..1c002bd 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtOneClinkSyncingPageDTO.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtOneClinkSyncingPageDTO.java
@@ -3,6 +3,9 @@
 import com.ruoyi.system.api.domain.dto.MgtPageDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.cglib.core.Local;
+
+import java.time.LocalDateTime;
 
 @Data
 public class MgtOneClinkSyncingPageDTO  {
@@ -15,8 +18,8 @@
     private String syncingName;
 
     @ApiModelProperty(value = "操作同步时间范围-开始时间")
-    private String syncingStartTime;
+    private LocalDateTime syncingStartTime;
 
     @ApiModelProperty(value = "操作同步时间范围-结束时间")
-    private String syncingEndTime;
+    private LocalDateTime syncingEndTime;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOneClinkSyncPageVO.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOneClinkSyncPageVO.java
index 10f4f3f..26adc19 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOneClinkSyncPageVO.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOneClinkSyncPageVO.java
@@ -1,8 +1,10 @@
 package com.ruoyi.system.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.time.LocalDateTime;
 import java.util.Date;
 
 @Data
@@ -22,5 +24,6 @@
     @ApiModelProperty(value = "同步门店数")
     private Integer shopNum;
     @ApiModelProperty(value = "最近一次同步时间")
-    private Date syncingTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime syncingTime;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/OneClinkSyncingServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/OneClinkSyncingServiceImpl.java
index c419c1c..00aa8b5 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/OneClinkSyncingServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/OneClinkSyncingServiceImpl.java
@@ -18,6 +18,7 @@
 import com.ruoyi.system.service.config.OneClinkSyncingService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -55,11 +56,11 @@
             if(oneClinkSyncing.getDelFlag() != 0 ){
                 return R.fail("该一键同步不存在");
             }
-            oneClinkSyncing.setUpdateTime(new Date());
+            oneClinkSyncing.setUpdateTime(LocalDateTime.now());
             oneClinkSyncing.setUpdateUserId(dto.getUserId());
         }else {
             oneClinkSyncing.setCreateUserId(dto.getUserId());
-            oneClinkSyncing.setCreateTime(new Date());
+            oneClinkSyncing.setCreateTime(LocalDateTime.now());
         }
         oneClinkSyncing.setSyncingName(dto.getSyncingName());
         oneClinkSyncing.setCoverUrl(dto.getCoverUrl());
@@ -107,7 +108,7 @@
             return R.ok();
         }
         oneClinkSyncing.setDelFlag(1);
-        oneClinkSyncing.setUpdateTime(new Date());
+        oneClinkSyncing.setUpdateTime(LocalDateTime.now());
         oneClinkSyncing.setUpdateUserId(SecurityUtils.getUserId());
         this.updateById(oneClinkSyncing);
         return R.ok();
@@ -126,7 +127,7 @@
 
         R r = remoteShopService.updateShopByOneClinkSyncing(oneClinkSyncing);
 
-        oneClinkSyncing.setSyncingTime(new Date());
+        oneClinkSyncing.setSyncingTime(LocalDateTime.now());
         oneClinkSyncing.setSyncingUserId(SecurityUtils.getUserId());
         this.updateById(oneClinkSyncing);
         return R.ok();
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/OneClinkSyncingMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/OneClinkSyncingMapper.xml
index c781269..87452bc 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/OneClinkSyncingMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/OneClinkSyncingMapper.xml
@@ -17,5 +17,14 @@
             t_one_clink_syncing
         where
             del_flag=0
+        <if test="null != dto.syncingName and ''!= dto.syncingName">
+            and syncing_name like concat('%',#{dto.syncingName},'%')
+        </if>
+        <if test="dto.syncingStartTime!=null and dto.syncingStartTime != ''">
+            AND  syncing_time &gt;= #{dto.syncingStartTime}
+        </if>
+        <if test="dto.createEndTime!=null and dto.createEndTime != ''">
+            AND syncing_time &lt;= #{dto.syncingEndTime}
+        </if>
     </select>
 </mapper>

--
Gitblit v1.7.1