From aefe81a52fcbda2175b40575982d18e648e7013c Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期二, 08 七月 2025 11:36:22 +0800
Subject: [PATCH] bug修改

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtThirdOrderPageDto.java              |   48 ++++++
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                 |   88 ++++++++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java     |   30 +++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java     |    1 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtThirdOrderPageVo.java                |   49 ++++++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java      |    4 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java                   |   15 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java               |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java          |  104 +++++++++++++
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml                              |   19 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java     |   13 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalThirdOrderStaticsVO.java      |   38 ++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java                     |   15 +
 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/UserLotteryEventMapper.xml                    |    5 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java  |    9 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java                 |    2 
 17 files changed, 420 insertions(+), 24 deletions(-)

diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
index 808ef27..d8c41c3 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
@@ -404,7 +404,7 @@
 		List<MgtLotteryEventPageVo> voList = this.baseMapper.pageMgtLotteryEvent(dto);
 		//填充创建对象
 		voList.forEach(x->{
-			if (x.getActivityType()!=6){
+			if (null == x.getShopId()){
 				x.setCreateObject("平台创建");
 			}else {
 				//线下抽奖,获取门店名称
diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/UserLotteryEventMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/UserLotteryEventMapper.xml
index 753574d..fda2ed7 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/UserLotteryEventMapper.xml
+++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/UserLotteryEventMapper.xml
@@ -5,7 +5,10 @@
 	<select id="getShopWinningRecord" resultType="map">
 		select aa.user_id,
 		       DATE_FORMAT(any_value(aa.create_time), '%Y-%m-%d %H:%i')                                    as create_time,
-		       GROUP_CONCAT(CONCAT(aa.prize_type, '_', aa.object_id, '_', aa.object_name, '_', aa.number)) as content
+		       GROUP_CONCAT( COALESCE(aa.prize_type, ''), '_',
+							 COALESCE(aa.object_id, ''), '_',
+							 COALESCE(aa.object_name, ''), '_',
+							 COALESCE(aa.number, '')) as content
 		from (select *
 		      from t_user_lottery_event
 		      where prize_type != 5 and lottery_event_id = #{id}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java
index a7d9fff..32d355b 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java
@@ -12,10 +12,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -127,8 +124,8 @@
     //获取抽奖类型优惠券列表
     @RequestMapping(value = "/getLotteryEventCouponList", method = RequestMethod.POST)
     @ApiOperation(value = "平台获取抽奖类型优惠券列表【2.0】")
-    public R<List<LotteryEventCouponListVO>> getLotteryEventCouponList() {
-        return R.ok( couponService.getLotteryEventCouponList());
+    public R<List<LotteryEventCouponListVO>> getLotteryEventCouponList(@RequestParam(value = "shopId",required = false) Long shopId) {
+        return R.ok( couponService.getLotteryEventCouponList(shopId));
     }
 
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
index 6797ca9..d6f98da 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
@@ -118,7 +118,7 @@
      *
      * @return
      */
-    List<LotteryEventCouponListVO> getLotteryEventCouponList();
+    List<LotteryEventCouponListVO> getLotteryEventCouponList(@Param("shopId") Long shopId);
 
     List<LotteryEventCouponListVO> getLotteryEventCouponListByShopId(@Param("shopId") String shopId);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
index d8eec1c..566496c 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -212,7 +212,7 @@
      * 平台获取抽奖类型优惠券列表
      * @return
      */
-    List<LotteryEventCouponListVO> getLotteryEventCouponList();
+    List<LotteryEventCouponListVO> getLotteryEventCouponList(Long shopId);
 
     List<LotteryEventCouponListVO> getLotteryEventCouponListByShopId(String shopId);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
index 1cfad89..9c414aa 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -1535,8 +1535,8 @@
     }
 
     @Override
-    public List<LotteryEventCouponListVO> getLotteryEventCouponList() {
-        return this.getBaseMapper().getLotteryEventCouponList();
+    public List<LotteryEventCouponListVO> getLotteryEventCouponList(Long shopId) {
+        return this.getBaseMapper().getLotteryEventCouponList(shopId);
     }
 
     @Override
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
index bf49e83..0171047 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -403,13 +403,28 @@
         from
             t_coupon
         where
-            del_flag = 0
+            (del_flag = 0
         and
             coupon_status = 1
         and
             send_type = 3
         and
-            coupon_from = 1
+        coupon_from = 1 )
+        <if test="shopId != null">
+            or (
+            del_flag = 0
+            and
+            coupon_status = 1
+            and
+            send_type = 3
+            and
+            coupon_from = 2
+            and
+            audit_status = 2
+            and
+            shop_id = #{shopId}
+            )
+        </if>
 
     </select>
     <select id="getLotteryEventCouponListByShopId"
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
index aa4c921..d325cf9 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -206,6 +206,32 @@
     public R refundOrderBySys(@RequestBody CancelOrderDTO dto) {
         return orderService.refundOrderBySys(dto);
     }
-    //todo 分页获取三方订单
-    //todo 导出三方订单
+
+
+    //分页获取三方订单
+    @RequestMapping(value = "/pageMgtThirdOrder", method = RequestMethod.POST)
+    @ApiOperation(value = "分页获取三方订单")
+    public R<Page<MgtThirdOrderPageVo>> pageMgtThirdOrder(@RequestBody MgtThirdOrderPageDto dto) {
+        Long userId = SecurityUtils.getUserId();
+        dto.setUserId(userId);
+        Page<MgtThirdOrderPageVo> page = new Page<>();
+        page.setSize(dto.getPageSize());
+        page.setCurrent(dto.getPageNum());
+        List<MgtThirdOrderPageVo> thirdOrderPageVoList = orderService.pageMgtThirdOrder(page,dto);
+        return R.ok(page.setRecords(thirdOrderPageVoList));
+    }
+    // 导出三方订单
+    @RequestMapping(value = "/exportPageMgtThirdOrder", method = RequestMethod.POST)
+    @ApiOperation(value = "导出三方订单列表")
+    public void exportPageMgtThirdOrder( MgtThirdOrderPageDto mgtShopOrderPageDto, HttpServletResponse response) {
+        Long userId = SecurityUtils.getUserId();
+        mgtShopOrderPageDto.setUserId(userId);
+        Page<MgtThirdOrderPageVo> page = new Page<>();
+        page.setSize(Integer.MAX_VALUE);
+        page.setCurrent(1);
+        List<MgtThirdOrderPageVo> mgtActivityOrderPageVos = orderService.pageMgtThirdOrder(page,mgtShopOrderPageDto);
+        ExcelUtil<MgtThirdOrderPageVo> util = new ExcelUtil<MgtThirdOrderPageVo>(MgtThirdOrderPageVo.class);
+        util.exportExcel(response, mgtActivityOrderPageVos, "秒杀订单列表", "秒杀订单列表");
+    }
+
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
index cd178ca..fa908ea 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
@@ -3,10 +3,7 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.order.domain.vo.MgtPlTotalActivityTotalVo;
-import com.ruoyi.order.domain.vo.MgtTotalActivityTotalVo;
-import com.ruoyi.order.domain.vo.MgtTotalDataTotalVo;
-import com.ruoyi.order.domain.vo.MgtTotalOrderTotalVo;
+import com.ruoyi.order.domain.vo.*;
 import com.ruoyi.order.service.order.OrderService;
 import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto;
 import com.ruoyi.system.api.domain.dto.MgtBaseShopDto;
@@ -130,4 +127,12 @@
     }
 
 
+    @RequestMapping(value = "/getPlTotalThirdOrderStatics", method = RequestMethod.POST)
+    @ApiOperation(value = "获取三方订单统计【2.0】")
+    public R<MgtPlTotalThirdOrderStaticsVO> getPlTotalThirdOrderStatics(@RequestBody MgtBasePlatformDto mgtBasePlatformDto) {
+        Long userId = SecurityUtils.getUserId();
+        MgtPlTotalThirdOrderStaticsVO totalActivityTotal = orderService.getPlTotalThirdOrderStatics(mgtBasePlatformDto);
+        return R.ok(totalActivityTotal);
+    }
+
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtThirdOrderPageDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtThirdOrderPageDto.java
new file mode 100644
index 0000000..e58fe34
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtThirdOrderPageDto.java
@@ -0,0 +1,48 @@
+package com.ruoyi.order.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtPageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class MgtThirdOrderPageDto extends MgtPageDto {
+    @ApiModelProperty(value = "关键词")
+    private String keyword;
+
+
+    @ApiModelProperty(value = "商户id")
+    private Long shopId;
+
+    @ApiModelProperty(value = "下单时间-范围开始")
+    private LocalDateTime createTimeBegin;
+    @ApiModelProperty(value = "下单时间-范围结束")
+    private LocalDateTime createTimeEnd;
+
+    @ApiModelProperty(value = "订单来源1.店铺商品2.平台秒杀活动3.线下创建")
+    private Integer orderFrom;
+
+    @ApiModelProperty(value = "核销时间-范围开始")
+    private LocalDateTime useTimeBegin;
+    @ApiModelProperty(value = "核销时间-范围结束")
+    private LocalDateTime useTimeEnd;
+
+
+    @ApiModelProperty(value = "keyword转换用户ids",hidden = true)
+    private String userIds;
+
+    @ApiModelProperty(value = "code转换商户ids",hidden = true)
+    private String shopIds;
+
+    @ApiModelProperty(value="店铺地址省code")
+    private String shopProvinceCode;
+
+    @ApiModelProperty(value="店铺地址市code")
+    private String shopCityCode;
+
+    @ApiModelProperty(value="店铺地址区code")
+    private String shopAreaCode;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalThirdOrderStaticsVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalThirdOrderStaticsVO.java
new file mode 100644
index 0000000..fe276f0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalThirdOrderStaticsVO.java
@@ -0,0 +1,38 @@
+package com.ruoyi.order.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class MgtPlTotalThirdOrderStaticsVO {
+    @ApiModelProperty(value = "总订单数")
+    private Integer orderTotal;
+    @ApiModelProperty(value = "美团订单")
+    private Integer meituan;
+
+    @ApiModelProperty(value = "抖音")
+    private Integer douyin;
+
+    @ApiModelProperty(value = "快手")
+    private Integer kuaishou;
+
+    @ApiModelProperty(value = "小鹅云")
+    private Integer xiaoeyun;
+
+    @ApiModelProperty(value = "总订单数")
+    private BigDecimal orderTotalMoney;
+    @ApiModelProperty(value = "美团订单")
+    private BigDecimal meituanMoney;
+
+    @ApiModelProperty(value = "抖音")
+    private BigDecimal douyinMoney;
+
+    @ApiModelProperty(value = "快手")
+    private BigDecimal kuaishouMoney;
+
+    @ApiModelProperty(value = "小鹅云")
+    private BigDecimal xiaoeyunMoney;
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtThirdOrderPageVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtThirdOrderPageVo.java
new file mode 100644
index 0000000..f5ca6a3
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtThirdOrderPageVo.java
@@ -0,0 +1,49 @@
+package com.ruoyi.order.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.ruoyi.common.core.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class MgtThirdOrderPageVo {
+    @Excel(name = "订单号", width = 30, sort = 1)
+    @ApiModelProperty(value="订单编号")
+    private String orderNo;
+
+    @Excel(name = "订单来源", width = 30, sort = 1)
+    @ApiModelProperty(value="订单来源")
+    private String orderFrom;
+
+    @Excel(name = "商品/套餐名称", width = 30, sort = 1)
+    @ApiModelProperty(value="商品/套餐名称")
+    private String goodsName;
+
+    @Excel(name = "订单金额", width = 30, sort = 11)
+    @ApiModelProperty(value="订单金额")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private BigDecimal orderMoney;
+
+
+    @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 14)
+    @ApiModelProperty(value="有效期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date validityTime;
+
+    @Excel(name = "核销门店", width = 30, sort = 13)
+    @ApiModelProperty(value="核销门店")
+    private String shopName;
+
+    @Excel(name = "核销时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 14)
+    @ApiModelProperty(value="核销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date verifyTime;
+    @ApiModelProperty(value="核销店铺id")
+    private Long shopId;
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
index 74a124c..6118b52 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -712,4 +712,19 @@
      * @return  MerMemberSimpleTotalVo
      */
     MerMemberSimpleTotalVo getMerMemberSimpleTotalVo(@Param("param") MerBaseDto merBaseDto);
+
+    /**
+     * 查询第三方订单
+     * @param page
+     * @param dto
+     * @return
+     */
+    List<MgtThirdOrderPageVo> pageMgtThirdOrder(Page<MgtThirdOrderPageVo> page,@Param("param")  MgtThirdOrderPageDto dto);
+
+    /**
+     * 统计三方订单
+     * @param mgtBasePlatformDto
+     * @return
+     */
+    MgtPlTotalThirdOrderStaticsVO getPlTotalThirdOrderStatics(@Param("param")MgtBasePlatformDto mgtBasePlatformDto);
 }
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 2344a3e..bc08919 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
@@ -6777,4 +6777,108 @@
         return R.ok();
 
     }
+
+    @Override
+    public List<MgtThirdOrderPageVo> pageMgtThirdOrder(Page<MgtThirdOrderPageVo> page, MgtThirdOrderPageDto dto) {
+        //如果区域代码不为null获取对应的商户id
+        if (StringUtils.isNotBlank(dto.getKeyword()) || StringUtils.isNotBlank(dto.getShopProvinceCode()) || StringUtils.isNotBlank(dto.getShopCityCode()) || StringUtils.isNotBlank(dto.getShopAreaCode())) {
+            MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto();
+            mgtShopIdByCodeDto.setShopProvinceCode(dto.getShopProvinceCode());
+            mgtShopIdByCodeDto.setShopCityCode(dto.getShopCityCode());
+            mgtShopIdByCodeDto.setShopAreaCode(dto.getShopAreaCode());
+            MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData();
+            if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) {
+                dto.setShopIds(mgtShopIdByCodeVo.getShopIds());
+            }
+        }
+        //如果关键词不为null获取对应的用户id
+        if (StringUtils.isNotBlank(dto.getKeyword())) {
+            MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto();
+            mgtUserIdByKeywordDto.setKeyword(dto.getKeyword());
+            MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData();
+            if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) {
+                dto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
+            }
+        }
+        //数据权限
+        List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
+        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+        boardMemberTotalDto.setUserIds(userId);
+        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
+        if (!shops.isEmpty()) {
+            List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
+            String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
+            String shopIds = dto.getShopIds();
+            if(StringUtils.isNotEmpty(shopIds)){
+                shopIds = shopIds + "," + join;
+            }else{
+                shopIds = join;
+            }
+            dto.setShopIds(shopIds);
+        }
+
+        // 从数据库中获取第三方订单列表
+        List<MgtThirdOrderPageVo> thirdOrderPageVoList = orderMapper.pageMgtThirdOrder(page, dto);
+        // 如果列表不为空
+        if (!thirdOrderPageVoList.isEmpty()) {
+            // 定义变量
+            HashSet<Long> shopIdSet = new HashSet<>();
+            BigDecimal zeroBig = new BigDecimal("0.00");
+            // 遍历列表,获取店铺 ID 和用户 ID
+            for (MgtThirdOrderPageVo mgtActivityOrderPageVo : thirdOrderPageVoList) {
+                if(mgtActivityOrderPageVo.getShopId()!=null){
+                    shopIdSet.add(mgtActivityOrderPageVo.getShopId());
+                }
+            }
+            // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串
+            String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList()));
+            // 从远程服务获取店铺和用户信息
+            MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
+            mgtBaseBathDto.setIds(shopJoinedString);
+            List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData();
+            Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
+                    .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
+            mgtBaseBathDto = new MgtBaseBathDto();
+            // 遍历列表,设置店铺名称
+            for (MgtThirdOrderPageVo mgtActivityOrderPageVo : thirdOrderPageVoList) {
+                if(mgtActivityOrderPageVo.getShopId()!=null){
+                    MgtSimpleShopVo mgtSimpleShopVo = shopMap.get(mgtActivityOrderPageVo.getShopId());
+                    mgtActivityOrderPageVo.setShopName(null == mgtSimpleShopVo ? "" : mgtSimpleShopVo.getShopName());
+                }
+            }
+        }
+
+        return thirdOrderPageVoList;
+
+    }
+
+    @Override
+    public MgtPlTotalThirdOrderStaticsVO getPlTotalThirdOrderStatics(MgtBasePlatformDto mgtBasePlatformDto) {
+        MgtPlTotalThirdOrderStaticsVO vo = new MgtPlTotalThirdOrderStaticsVO();
+        //数据权限
+        List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
+        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
+        if(null != userIds){
+            if(null != userIdList){
+                userIdList.addAll(userIds);
+            }else{
+                userIdList = userIds;
+            }
+            mgtBasePlatformDto.setUserIdList(userIdList);
+        }
+        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
+        if (mgtBasePlatformDto.getUserId() != null || StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
+            if(shopIdList==null||shopIdList.isEmpty()){
+                return vo;
+            }
+        }
+        if(mgtBasePlatformDto.getShopId()!=null){
+            shopIdList = new ArrayList<>();
+            shopIdList.add(mgtBasePlatformDto.getShopId());
+        }
+        mgtBasePlatformDto.setShopIdList(shopIdList);
+        // 从数据库中获取第三方订单统计
+         vo = orderMapper.getPlTotalThirdOrderStatics(mgtBasePlatformDto);
+        return vo;
+    }
 }
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 b60da44..72813cc 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
@@ -630,4 +630,19 @@
      * @return
      */
     R refundOrderBySys(CancelOrderDTO dto);
+
+    /**
+     * 三方订单
+     * @param page
+     * @param dto
+     * @return
+     */
+    List<MgtThirdOrderPageVo> pageMgtThirdOrder(Page<MgtThirdOrderPageVo> page, MgtThirdOrderPageDto dto);
+
+    /**
+     * 三方订单统计
+     * @param mgtBasePlatformDto
+     * @return
+     */
+    MgtPlTotalThirdOrderStaticsVO getPlTotalThirdOrderStatics(MgtBasePlatformDto mgtBasePlatformDto);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 4370b43..06b0f0c 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -728,10 +728,18 @@
         toc.pay_money payMoney,
         CASE WHEN toc.unbinding_flag = 0 THEN toc.shop_id WHEN toc.unbinding_flag = 1 AND toc.order_from = 1 THEN toc.shop_id WHEN toc.order_status = 3 THEN toc.shop_id ELSE NULL END shopId,
         toc.use_time verifyTime,
-        CASE toc.order_from WHEN 1 THEN '小程序' WHEN 2 THEN '秒杀活动' WHEN 3 THEN '线下创建' END orderFrom,
+        CASE toc.order_from
+            WHEN 1 THEN '小程序'
+            WHEN 2 THEN '秒杀活动'
+            WHEN 3 THEN '线下创建'
+            WHEN 4 THEN '抽奖'
+            WHEN 5 THEN '美团'
+            WHEN 6 THEN '抖音'
+            WHEN 7 THEN '快手'
+            END orderFrom,
         #{param.keyword} AS keyword
         FROM t_order toc
-        WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3)
+        WHERE toc.del_flag = 0 AND toc.order_from != 2  -- 不查找秒杀活动的订单
         <if test="param.orderStatus != null">
             AND toc.order_status = #{param.orderStatus}
         </if>
@@ -1182,11 +1190,11 @@
     <select id="getPlTotalOrderTotalOrderFrom" resultType="com.ruoyi.order.domain.vo.MgtTotalOrderTotalVo">
         SELECT
         COUNT(order_id) orderTotal,
-        IFNULL(SUM(CASE WHEN order_from = 1 THEN 1 ELSE 0 END),0) onlineTotal,
+        IFNULL(SUM(CASE WHEN order_from in (1,5,6,7) THEN 1 ELSE 0 END),0) onlineTotal,
         IFNULL(SUM(CASE WHEN order_from = 3 THEN 1 ELSE 0 END),0) offlineTotal,
         IFNULL(SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END),0) activityTotal,
         IFNULL(SUM(CASE WHEN null = change_receivable_money or change_receivable_money = 0 THEN receivable_money ELSE change_receivable_money END),0) orderMoney,
-        IFNULL(SUM(CASE WHEN order_from = 1 THEN (CASE WHEN null = change_receivable_money or change_receivable_money = 0 THEN receivable_money ELSE change_receivable_money END) ELSE 0 END),0) onlineMoney,
+        IFNULL(SUM(CASE WHEN order_from = in (1,5,6,7) THEN (CASE WHEN null = change_receivable_money or change_receivable_money = 0 THEN receivable_money ELSE change_receivable_money END) ELSE 0 END),0) onlineMoney,
         IFNULL(SUM(CASE WHEN order_from = 3 THEN (CASE WHEN null = change_receivable_money or change_receivable_money = 0 THEN receivable_money ELSE change_receivable_money END) ELSE 0 END),0) offlineMoney,
         IFNULL(SUM(CASE WHEN order_from = 2 THEN (CASE WHEN null = change_receivable_money or change_receivable_money = 0 THEN receivable_money ELSE change_receivable_money END) ELSE 0 END),0) activityMoney
         FROM t_order WHERE del_flag = 0 AND order_status = 3
@@ -2191,4 +2199,76 @@
         FROM t_order toc
         WHERE toc.del_flag = 0 AND toc.user_id = #{param.userId} AND toc.shop_id = #{param.shopId} AND toc.order_status IN (2,3)
     </select>
+    <select id="pageMgtThirdOrder" resultType="com.ruoyi.order.domain.vo.MgtThirdOrderPageVo">
+        SELECT
+        toc.order_no orderNo,
+        CASE toc.order_from
+        WHEN 1 THEN '小程序'
+        WHEN 2 THEN '秒杀活动'
+        WHEN 3 THEN '线下创建'
+        WHEN 4 THEN '抽奖'
+        WHEN 5 THEN '美团'
+        WHEN 6 THEN '抖音'
+        WHEN 7 THEN '快手'
+        END orderFrom,
+        tog.goods_name goodsName,
+        toc.order_money orderMoney,
+        toc.validity_time validityTime,
+        CASE WHEN toc.order_status = 3 THEN toc.shop_id ELSE NULL END shopId,
+        toc.use_time verifyTime
+        FROM t_order toc
+        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
+        WHERE toc.del_flag = 0 AND toc.order_from in (5,6,7)
+        <if test="param.shopId != null and param.shopId != ''">
+            AND toc.shop_id = #{param.shopId}
+        </if>
+        <if test="param.shopIds != null and param.shopIds != ''">
+            AND FIND_IN_SET(toc.shop_id, #{param.shopIds})
+        </if>
+        <if test="param.keyword != null and param.keyword != ''">
+            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(toc.user_id, #{param.userIds}) &gt; 0)
+        </if>
+        <if test="param.createTimeBegin != null and param.createTimeBegin != ''">
+            AND Date(toc.create_time) &gt;= #{param.createTimeBegin}
+        </if>
+        <if test="param.createTimeEnd != null and param.createTimeEnd != ''">
+            AND Date(toc.create_time) &lt;= #{param.createTimeEnd}
+        </if>
+        <if test="param.verifyStartTime != null and param.verifyStartTime != ''">
+            AND Date(toc.use_time) &gt;= #{param.verifyStartTime}
+        </if>
+        <if test="param.verifyEndTime != null and param.verifyEndTime != ''">
+            AND Date(toc.use_time) &lt;= #{param.verifyEndTime}
+        </if>
+        ORDER BY toc.create_time DESC
+    </select>
+    <select id="getPlTotalThirdOrderStatics"
+            resultType="com.ruoyi.order.domain.vo.MgtPlTotalThirdOrderStaticsVO">
+        SELECT
+        -- 订单数量统计
+        COUNT(order_id) AS orderTotal,
+        IFNULL(SUM(CASE WHEN order_from = 5 THEN 1 ELSE 0 END), 0) AS meituan,
+        IFNULL(SUM(CASE WHEN order_from = 6 THEN 1 ELSE 0 END), 0) AS douyin,
+        IFNULL(SUM(CASE WHEN order_from = 7 THEN 1 ELSE 0 END), 0) AS kuaishou,
+        IFNULL(SUM(CASE WHEN order_from = 8 THEN 1 ELSE 0 END), 0) AS xiaoeyun,
+
+        -- 订单金额统计(取order_money)
+        IFNULL(SUM(order_money), 0) AS orderTotalMoney,
+        IFNULL(SUM(CASE WHEN order_from = 5 THEN order_money ELSE 0 END), 0) AS meituanMoney,
+        IFNULL(SUM(CASE WHEN order_from = 6 THEN order_money ELSE 0 END), 0) AS douyinMoney,
+        IFNULL(SUM(CASE WHEN order_from = 7 THEN order_money ELSE 0 END), 0) AS kuaishouMoney,
+        IFNULL(SUM(CASE WHEN order_from = 8 THEN order_money ELSE 0 END), 0) AS xiaoeyunMoney
+        FROM
+        t_order
+        WHERE
+        del_flag = 0  -- 未删除
+        AND order_from IN (5, 6, 7, 8)  -- 仅统计三方平台订单
+        -- 可选条件:按商户筛选
+        <if test="param.shopIdList != null and param.shopIdList.size() > 0">
+            AND shop_id IN
+            <foreach collection="param.shopIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
index c22c30b..eb0be13 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
@@ -176,6 +176,7 @@
             sysUser.setNickName(mgtStaffEditDto.getStaffName());
             sysUser.setAvatar(mgtStaffEditDto.getStaffAvatar());
             sysUser.setEmail(mgtStaffEditDto.getStaffEmail());
+            sysUser.setDeptId(mgtStaffEditDto.getDeptId());
             sysUserService.updateOnlyUser(sysUser);
         }else{
             if(sysStaffSame!=null){

--
Gitblit v1.7.1