huliguo
1 天以前 d617e84caebaf2e7aa09c55cb2bd89c5a23ef8ac
bug修改
1个文件已添加
13个文件已修改
157 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/DelShopLotteryDrawDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventEditDTO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventPageDto.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/CancelOrderDTO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerGoodsController.java
@@ -57,6 +57,7 @@
        page.setOptimizeCountSql(false);
        List<MerGoodsPageVo> merGoodsPageVoList = goodsService.pageMerShopGoods(page, merGoodsPageDto);
        Shop shop = remoteShopService.getShop(merGoodsPageDto.getShopId()).getData();
        if (null != shop.getBelongShopId()){
        Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
        merGoodsPageVoList.forEach(merGoodsPageVo -> {
            ShopGoods shopGoods = shopGoodsService.getByShopIdAndGoodsId(belongShop.getShopId(), merGoodsPageVo.getGoodsId());
@@ -71,6 +72,8 @@
                merGoodsPageVo.setIsUnifiedPrice(0);
            }
        });
        }
        return R.ok(page.setRecords(merGoodsPageVoList));
    }
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
@@ -80,10 +80,10 @@
            return R.fail("抽奖活动不存在");
        }
        if (LocalDateTime.now().isAfter(lotteryEvent.getStartTime())) {
            return R.fail("删除失败");
            return R.fail("活动已开始,不能删除!");
        }
        if (!lotteryEvent.getShopId().equals(dto.getShopId())) {
            return R.fail("删除失败");
            return R.fail("删除失败,该活动不属于该店铺");
        }
        lotteryEvent.setDelFlag(1);
        lotteryEventService.updateById(lotteryEvent);
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/DelShopLotteryDrawDto.java
@@ -10,7 +10,7 @@
@Data
public class DelShopLotteryDrawDto {
    @ApiModelProperty("门店id")
    private Long shopId;
    private Integer shopId;
    @ApiModelProperty("抽奖活动id")
    private String id;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsPageDto.java
@@ -17,6 +17,9 @@
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    @ApiModelProperty(value = "商品编码")
    private String goodsNo;
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
    private Integer goodsType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventEditDTO.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonRawValue;
import com.ruoyi.system.api.domain.dto.MgtBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -26,9 +27,9 @@
    @NotEmpty(message = "活动简介不能为空")
    private String activityProfile;
    @ApiModelProperty("开启方式(1=新注册用户,2=下单,3=分享小程序,4=普通抽奖,5=答题抽奖)")
    @ApiModelProperty("开启方式(1=新注册用户,2=下单,3=分享小程序,4=普通抽奖,5=答题抽奖,6=线下抽奖)")
    @Min(value = 1,message = "开启方式选值错误")
    @Max(value = 5,message = "开启方式选值错误")
    @Max(value = 6,message = "开启方式选值错误")
    @NotNull(message = "开启方式不能为空")
    private Integer activityType;
@@ -73,6 +74,7 @@
    @ApiModelProperty("详情介绍")
    @NotEmpty(message = "详情介绍不能为空")
    @JsonRawValue
    private String activityContent;
    @ApiModelProperty("抽奖奖品设置")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtLotteryEventPageDto.java
@@ -27,6 +27,7 @@
    @ApiModelProperty(value = "平台创建标志 0-未包含平台创建 1-包含",hidden = true)
    private Integer flag=1;
    @ApiModelProperty(value = "分页偏移量",hidden = true)
    private Integer offset;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
@@ -265,6 +265,8 @@
                .eq(TLotteryEvent::getActivityType, dto.getActivityType())//类型相同的
                .between(TLotteryEvent::getStartTime, dto.getStartTime(), dto.getEndTime())//开始时间在这个活动的(开始-结束)范围内的
                .or()
                .eq(TLotteryEvent::getDelFlag, 0)//未删除的
                .eq(TLotteryEvent::getActivityType, dto.getActivityType())//类型相同的
                .between(TLotteryEvent::getEndTime, dto.getStartTime(), dto.getEndTime())//结束时间在这个活动的(开始-结束)范围内的
        );
        if (null != lotteryEvents && !lotteryEvents.isEmpty()) {
@@ -482,6 +484,7 @@
        //1.奖品数据删除
/*        lotteryEventPrizeService.remove(new LambdaQueryWrapper<TLotteryEventPrize>()
                .eq(TLotteryEventPrize::getLotteryEventId,lotteryEvent.getId()));*/
        lotteryEventPrizeService.deleteByLotteryEventId(lotteryEvent.getId());
        //2.答题类型
        if (lotteryEvent.getActivityType().equals(5)) {
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -401,6 +401,9 @@
        <if test="param.goodsType != null and param.goodsType != ''">
            AND tg.goods_type = #{param.goodsType}
        </if>
        <if test="param.goodsNo != null and param.goodsNo != ''">
            AND tg.goods_no LIKE CONCAT('%',#{param.goodsNo},'%')
        </if>
        <if test="param.goodsClassId != null and param.goodsClassId != ''">
            AND tg.goods_class_id = #{param.goodsClassId}
        </if>
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
@@ -97,6 +97,7 @@
                </otherwise>
            </choose>
        </if>
        order by create_time desc
        limit #{dto.offset},#{dto.pageSize}
    </select>
    <select id="pageMgtLotteryEventCount" resultType="java.lang.Long">
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtCouponEditDto.java
@@ -5,7 +5,9 @@
import com.ruoyi.system.api.domain.dto.MgtBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
@@ -51,6 +53,7 @@
    private Integer useScope;
    @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起")
    @Range(min = 1, max = 2, message = "有效期类型只能是1或2")
    private Integer validTimeType;
    @ApiModelProperty(value = "有效开始时间")
@@ -103,5 +106,22 @@
    @ApiModelProperty("分享图片")
    private String sharePic;
    // 自定义校验逻辑
    @AssertTrue(message = "当有效期类型为时间段时,有效开始时间和有效截止时间不能为空")
    public boolean isValidTimeRange() {
        if (validTimeType == null) return true; // 由@NotNull校验
        if (validTimeType == 1) {
            return validStartTime != null && validEndTime != null;
        }
        return true;
    }
    @AssertTrue(message = "当有效期类型为领取之日起时,有效期不能为空且必须大于0")
    public boolean isValidDay() {
        if (validTimeType == null) return true;
        if (validTimeType == 2) {
            return validDay != null && validDay > 0;
        }
        return true;
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -3,11 +3,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto;
import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto;
import com.ruoyi.order.domain.dto.MgtShopAllOrderPageDto;
import com.ruoyi.order.domain.dto.MgtShopOrderPageDto;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.order.service.order.OrderService;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
@@ -193,10 +192,20 @@
        util.exportExcel(response, shopAllOrderPageVoList, "商户订单记录");
    }
    //todo 取消
    //todo 退款
    //取消
    @RequestMapping(value = "/cancelOrderBySys", method = RequestMethod.POST)
    @Log(title = "订单管理", businessType = BusinessType.UPDATE,operContent = "取消订单")
    @ApiOperation(value = "取消订单【2.0】")
    public R cancelOrderBySys(@RequestBody CancelOrderDTO dto) {
        return orderService.cancelOrderBySys(dto);
    }
    //退款
    @RequestMapping(value = "/refundOrderBySys", method = RequestMethod.POST)
    @Log(title = "订单管理", businessType = BusinessType.UPDATE,operContent = "退款")
    @ApiOperation(value = "退款【2.0】")
    public R refundOrderBySys(@RequestBody CancelOrderDTO dto) {
        return orderService.refundOrderBySys(dto);
    }
    //todo 分页获取三方订单
    //todo 导出
    //todo 导出三方订单
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/CancelOrderDTO.java
New file
@@ -0,0 +1,11 @@
package com.ruoyi.order.domain.dto;
import com.ruoyi.system.api.domain.dto.MgtBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CancelOrderDTO extends MgtBaseDto {
    @ApiModelProperty("订单id")
    private String orderId;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1584,7 +1584,7 @@
            List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(order.getPayMoney()) >= 0).collect(Collectors.toList());
            appPlaceOrderVo.setLotteryDraw(collect.size() > 0);
            if (collect.size() > 0) {
                appPlaceOrderVo.setLotteryEventId(collect.get(0).getEventId());
                appPlaceOrderVo.setLotteryEventId(collect.get(0).getId());
            }
        } else {
            appPlaceOrderVo.setLotteryDraw(false);
@@ -6709,4 +6709,60 @@
        }
        return new ArrayList<>();
    }
    /**
     * 后台取消订单
     * 订单状态变为已取消 不退款
     * @param dto
     */
    @Override
    public R cancelOrderBySys(CancelOrderDTO dto) {
        Order order = this.getById(dto.getOrderId());
        // 订单状态-1.删除 0.已取消 1.待支付 2.待核销 3.已完成
        if(null == order || order.getDelFlag() == -1){
            return R.fail("订单不存在");
        }
        if (order.getOrderStatus() == 0) {
            return R.fail(AppErrorConstant.CANCEL_CANCEL_ORDER);
        } else if (order.getOrderStatus() == 1) {
            //删除待支付超时取消延时任务
            redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId());
            remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+order.getOrderId());
            order.setOrderStatus(0);
            order.setCancelTime(new Date());
            this.saveOrUpdate(order);
        } else if (order.getOrderStatus() == 2) {
            // 2.待核销
            order.setOrderStatus(0);
            order.setCancelTime(new Date());
            this.saveOrUpdate(order);
        } else {
            return R.fail(AppErrorConstant.CANCEL_ERROR_ORDER);
        }
        return R.ok();
    }
    @Override
    public R refundOrderBySys(CancelOrderDTO dto) {
        Order order = this.getById(dto.getOrderId());
        // 订单状态-1.删除 0.已取消 1.待支付 2.待核销 3.已完成
        if(null == order || order.getDelFlag() == -1){
            return R.fail("订单不存在");
        }
        if (order.getOrderStatus() == 0) {
            return R.fail(AppErrorConstant.CANCEL_CANCEL_ORDER);
        }else if (order.getOrderStatus() == 1) {
            //删除待支付超时取消延时任务
            redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId());
            remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+ order.getOrderId());
            this.autoCancelOrder( order.getOrderId());
        } else if (order.getOrderStatus() == 2) {
            // 2.待核销 -> 订单退款
            this.refundOrder( order.getOrderId());
        } else {
            return R.fail("已核销订单不能退款");
        }
        return R.ok();
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -7,6 +7,7 @@
import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult;
import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.pojo.order.Order;
import com.ruoyi.order.domain.vo.*;
@@ -615,4 +616,18 @@
     * @return
     */
    List<String> getActivityOrderGoods(String activityId);
    /**
     * 后台取消订单
     * 订单状态变为已取消 不退款
     * @param dto
     */
    R cancelOrderBySys(CancelOrderDTO dto);
    /**
     * 后台退款订单
     * @param dto
     * @return
     */
    R refundOrderBySys(CancelOrderDTO dto);
}