huliguo
10 小时以前 aefe81a52fcbda2175b40575982d18e648e7013c
bug修改
3个文件已添加
14个文件已修改
444 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/UserLotteryEventMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtThirdOrderPageDto.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalThirdOrderStaticsVO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtThirdOrderPageVo.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 {
                //线下抽奖,获取门店名称
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}
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));
    }
}
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);
}
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);
}
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
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"
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, "秒杀订单列表", "秒杀订单列表");
    }
}
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);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtThirdOrderPageDto.java
New file
@@ -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;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalThirdOrderStaticsVO.java
New file
@@ -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;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtThirdOrderPageVo.java
New file
@@ -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;
}
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);
}
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;
    }
}
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);
}
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>
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){