Compare commits

..

5 Commits

  1. 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/AppProductOrderController.java
  2. 11
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/ProductOrderController.java
  3. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/ProductOrder.java
  4. 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/PromotionCouponTemplate.java
  5. 10
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/PromotionCouponBo.java
  6. 6
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/PromotionCouponTemplateBo.java
  7. 8
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/PromotionCouponTemplateVo.java
  8. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/PromotionCouponVo.java
  9. 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/ProductOrderMapper.java
  10. 6
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/DeliveryShopService.java
  11. 20
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java
  12. 23
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/PromotionCouponServiceImpl.java
  13. 14
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/PromotionCouponTemplateServiceImpl.java
  14. 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SystemCouponOrderPriceCalculatorServiceImpl.java
  15. 6
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml

5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/app/AppProductOrderController.java

@ -165,10 +165,9 @@ public class AppProductOrderController extends BaseController {
* @return * @return
*/ */
@PostMapping("check") @PostMapping("check")
@SaIgnore
public R<ProductOrderVo> check(@RequestBody ProductOrderBo bo) { public R<ProductOrderVo> check(@RequestBody ProductOrderBo bo) {
// LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
bo.setUserId(1912734002323501057L); bo.setUserId(loginUser.getUserId());
ProductOrderVo productOrderVo = orderService.checkByBo(bo); ProductOrderVo productOrderVo = orderService.checkByBo(bo);
return R.ok(productOrderVo); return R.ok(productOrderVo);
} }

11
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/ProductOrderController.java

@ -1,12 +1,15 @@
package org.dromara.system.controller.system; package org.dromara.system.controller.system;
import java.util.Date;
import java.util.List; import java.util.List;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.date.DateUtil;
import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.exception.WxPayException;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.domain.bo.OrderQrConfirmBo; import org.dromara.system.domain.bo.OrderQrConfirmBo;
@ -39,6 +42,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
@Validated @Validated
@RestController @RestController
@RequestMapping("/system/order") @RequestMapping("/system/order")
@Slf4j
public class ProductOrderController extends BaseController { public class ProductOrderController extends BaseController {
@Resource @Resource
private IProductOrderService productOrderService; private IProductOrderService productOrderService;
@ -173,4 +177,11 @@ public class ProductOrderController extends BaseController {
return R.ok( productOrderService.wxQueryOrder(orderNo)); return R.ok( productOrderService.wxQueryOrder(orderNo));
} }
@GetMapping("settlement")
@SaIgnore
public void settlement(){
log.info("订单结算...开始:{}", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
productOrderService.settlement();
log.info("订单结算...结束:{}", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
}
} }

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/ProductOrder.java

@ -73,7 +73,7 @@ public class ProductOrder extends BaseEntity {
private Long num; private Long num;
/** /**
* 状态 0待支付,1支付完成,2派送,3取消,4已评价 * 状态(0待支付,1支付,2派送,3取消,4已完成,5已评价,8,售后,9已退款)',
*/ */
private String status; private String status;

4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/PromotionCouponTemplate.java

@ -117,5 +117,9 @@ public class PromotionCouponTemplate extends TenantEntity {
@TableLogic @TableLogic
private String delFlag; private String delFlag;
/**
* 注册时间
*/
private Date registerDate;
} }

10
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/PromotionCouponBo.java

@ -12,6 +12,8 @@ import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.system.domain.vo.PromotionCouponTemplateVo; import org.dromara.system.domain.vo.PromotionCouponTemplateVo;
@ -72,9 +74,13 @@ public class PromotionCouponBo extends BaseEntity {
/** /**
* 类型(1平台 2店铺 3分类) * 类型(1平台 2店铺 3分类)
*/ */
@NotNull(message = "类型(1平台 2店铺 3分类)不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "类型(1平台 2店铺 3分类 4新人)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long productScopeType; private Long productScopeType;
/**
* 拆线呢条件
*/
@NotNull(message = "类型(1平台 2店铺 3分类 4新人)不能为空", groups = { AddGroup.class, EditGroup.class })
private List<Long> productScopeTypeList;
/** /**
* 折扣类型 * 折扣类型
*/ */

6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/PromotionCouponTemplateBo.java

@ -73,7 +73,7 @@ public class PromotionCouponTemplateBo extends BaseEntity {
private BigDecimal usePrice; private BigDecimal usePrice;
/** /**
* 类型(1平台 2店铺 3分类) * 类型(1平台 2店铺 3分类 4新人)
*/ */
private Long productScopeType; private Long productScopeType;
@ -124,6 +124,10 @@ public class PromotionCouponTemplateBo extends BaseEntity {
private Long userId; private Long userId;
private Long userTakeNum; private Long userTakeNum;
/**
* 注册时间
*/
private Date registerDate;
} }

8
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/PromotionCouponTemplateVo.java

@ -52,7 +52,7 @@ public class PromotionCouponTemplateVo implements Serializable {
/** /**
* 领取方式 1=领取, 2=发送,3=注册 * 领取方式 1=领取, 2=发送,3=注册
*/ */
@ExcelProperty(value = "领取方式 1=领取, 2=发送,3=注册") @ExcelProperty(value = "领取方式 1=领取, 2=发送")
private Long takeType; private Long takeType;
/** /**
@ -88,7 +88,7 @@ public class PromotionCouponTemplateVo implements Serializable {
/** /**
* 类型(1平台 2店铺 3分类) * 类型(1平台 2店铺 3分类)
*/ */
@ExcelProperty(value = "类型(1平台 2店铺 3分类)") @ExcelProperty(value = "类型(1平台 2店铺 3分类 4新人)")
private Long productScopeType; private Long productScopeType;
/** /**
@ -149,4 +149,8 @@ public class PromotionCouponTemplateVo implements Serializable {
private List<SysBusinessVo> businessList; private List<SysBusinessVo> businessList;
private Long userTakeNum; private Long userTakeNum;
/**
* 注册时间
*/
private Date registerDate;
} }

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/PromotionCouponVo.java

@ -77,7 +77,7 @@ public class PromotionCouponVo implements Serializable {
/** /**
* 类型(1平台 2店铺 3分类) * 类型(1平台 2店铺 3分类)
*/ */
@ExcelProperty(value = "类型(1平台 2店铺 3分类)") @ExcelProperty(value = "类型(1平台 2店铺 3分类 4新人)")
private Long productScopeType; private Long productScopeType;
/** /**

5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/ProductOrderMapper.java

@ -1,5 +1,7 @@
package org.dromara.system.mapper; package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -12,6 +14,7 @@ import org.dromara.system.domain.vo.ProductOrderVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* 商品订单Mapper接口 * 商品订单Mapper接口
@ -40,4 +43,6 @@ public interface ProductOrderMapper extends BaseMapperPlus<ProductOrder, Product
ProductOrderVo selectSysVoId(Long id); ProductOrderVo selectSysVoId(Long id);
ProductOrderPriceVo querySysPageStatistics(@Param("bo") ProductOrderBo bo); ProductOrderPriceVo querySysPageStatistics(@Param("bo") ProductOrderBo bo);
List<ProductOrderVo> selectSettlementList(@Param("ew") QueryWrapper<ProductOrder> lqw);
} }

6
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/DeliveryShopService.java

@ -20,14 +20,18 @@ public class DeliveryShopService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void createShopNoById(Long businessId) { public void createShopNoById(Long businessId) {
SysBusinessVo sysBusinessVo = sysBusinessMapper.selectVoById(businessId); SysBusinessVo sysBusinessVo = sysBusinessMapper.selectVoById(businessId);
/* if (sysBusinessVo.getIdCardInfo() == null) { /* if (sysBusinessVo.getIdCardInfo() == null) {
throw new ServiceException("商家身份证信息未上传"); throw new ServiceException("商家身份证信息未上传");
}*/ }*/
if (sysBusinessVo.getGoodsTypeId() == null) {
sysBusinessVo.setGoodsTypeId(2L);
}
DeliveryShopNoResp shopNo = deliveryService.createShopNo(sysBusinessVo); DeliveryShopNoResp shopNo = deliveryService.createShopNo(sysBusinessVo);
sysBusinessVo.setShopNo(shopNo.getStoreNo()); sysBusinessVo.setShopNo(shopNo.getStoreNo());
UpdateWrapper<SysBusiness> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<SysBusiness> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("shop_no", shopNo.getStoreNo()); updateWrapper.set("shop_no", shopNo.getStoreNo());
updateWrapper.set("goods_type_id", sysBusinessVo.getGoodsTypeId());
updateWrapper.eq("id", businessId); updateWrapper.eq("id", businessId);
sysBusinessMapper.update(updateWrapper); sysBusinessMapper.update(updateWrapper);
} }

20
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ProductOrderServiceImpl.java

@ -876,6 +876,7 @@ public class ProductOrderServiceImpl implements IProductOrderService {
if(status.equals("4")){ if(status.equals("4")){
updateWrapper.set(ProductOrder::getFinishDate, new Date()); updateWrapper.set(ProductOrder::getFinishDate, new Date());
updateWrapper.set(ProductOrder::getSettlement, 1L); updateWrapper.set(ProductOrder::getSettlement, 1L);
updateWrapper.eq(ProductOrder::getSettlement, 0L);
ProductOrderPriceVo productOrderPriceVo = productOrderPriceMapper.selectVoById(id); ProductOrderPriceVo productOrderPriceVo = productOrderPriceMapper.selectVoById(id);
BigDecimal settlementCurrentPrice = productOrderPriceVo.getSettlementCurrentPrice(); BigDecimal settlementCurrentPrice = productOrderPriceVo.getSettlementCurrentPrice();
if (productOrderVo.getSettlement() == 0L) { if (productOrderVo.getSettlement() == 0L) {
@ -910,21 +911,28 @@ public class ProductOrderServiceImpl implements IProductOrderService {
} }
/**
* 完成订单以后 结算settlement 0-> 1
*/
@Override @Override
@Transactional @Transactional
public void settlement() { public void settlement() {
String settlementDay = sysConfigService.selectConfigByKey("finish.order.settlement.day"); String settlementDay = sysConfigService.selectConfigByKey("finish.order.settlement.day");
Integer day = Integer.parseInt(settlementDay); Integer day = Integer.parseInt(settlementDay);
Date jdkDate = DateUtil.offsetDay(new Date(), -day).toJdkDate(); Date jdkDate = DateUtil.offsetDay(new Date(), -day).toJdkDate();
LambdaQueryWrapper<ProductOrder> lqw = new LambdaQueryWrapper<>(); QueryWrapper<ProductOrder> lqw = new QueryWrapper<>();
lqw.eq(ProductOrder::getSettlement, 1L); //待结算
//结算时间小于jdkDate lqw.eq("po.settlement", 1L);
lqw.lt(ProductOrder::getFinishDate, jdkDate); // lqw.in(ProductOrder::getStatus, "4", "5");
List<ProductOrderVo> productOrderVos = baseMapper.selectVoList(lqw); //完成时间小于设定时间
lqw.lt("po.finish_date", jdkDate);
lqw.eq("po.del_flag", "0");
lqw.eq("sb.del_flag", "0");
List<ProductOrderVo> productOrderVos = baseMapper.selectSettlementList(lqw);
productOrderVos.forEach(productOrderVo -> { productOrderVos.forEach(productOrderVo -> {
ProductOrderPriceVo productOrderPriceVo = productOrderPriceService.queryById(productOrderVo.getId()); ProductOrderPriceVo productOrderPriceVo = productOrderPriceService.queryById(productOrderVo.getId());
BigDecimal settlementCurrentPrice = productOrderPriceVo.getSettlementCurrentPrice(); BigDecimal settlementCurrentPrice = productOrderPriceVo.getSettlementCurrentPrice();
log.info("结算金额:{}", settlementCurrentPrice);
sysBusinessBalanceService.addBalance(settlementCurrentPrice, productOrderVo.getBusinessId(), sysBusinessBalanceService.addBalance(settlementCurrentPrice, productOrderVo.getBusinessId(),
"冻结转入余额", productOrderVo.getId(), "order"); "冻结转入余额", productOrderVo.getId(), "order");
sysBusinessBalanceService.subFrozenBalance(settlementCurrentPrice, productOrderVo.getBusinessId(), sysBusinessBalanceService.subFrozenBalance(settlementCurrentPrice, productOrderVo.getBusinessId(),

23
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/PromotionCouponServiceImpl.java

@ -18,9 +18,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.dromara.system.domain.BusinessCoupon; import org.dromara.system.domain.BusinessCoupon;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.bo.*; import org.dromara.system.domain.bo.*;
import org.dromara.system.domain.vo.*; import org.dromara.system.domain.vo.*;
import org.dromara.system.mapper.PromotionCouponTemplateMapper; import org.dromara.system.mapper.PromotionCouponTemplateMapper;
import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.service.*; import org.dromara.system.service.*;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.system.domain.PromotionCoupon; import org.dromara.system.domain.PromotionCoupon;
@ -58,6 +60,8 @@ public class PromotionCouponServiceImpl implements IPromotionCouponService {
@Resource @Resource
private ISysBusinessService sysBusinessService; private ISysBusinessService sysBusinessService;
@Resource
private SysUserMapper sysUserMapper;
@Resource @Resource
private PromotionCouponTemplateMapper promotionCouponTemplateMapper; private PromotionCouponTemplateMapper promotionCouponTemplateMapper;
@ -135,6 +139,7 @@ public class PromotionCouponServiceImpl implements IPromotionCouponService {
lqw.eq(bo.getValidStartTime() != null, PromotionCoupon::getValidStartTime, bo.getValidStartTime()); lqw.eq(bo.getValidStartTime() != null, PromotionCoupon::getValidStartTime, bo.getValidStartTime());
lqw.eq(bo.getValidEndTime() != null, PromotionCoupon::getValidEndTime, bo.getValidEndTime()); lqw.eq(bo.getValidEndTime() != null, PromotionCoupon::getValidEndTime, bo.getValidEndTime());
lqw.eq(bo.getProductScopeType() != null, PromotionCoupon::getProductScopeType, bo.getProductScopeType()); lqw.eq(bo.getProductScopeType() != null, PromotionCoupon::getProductScopeType, bo.getProductScopeType());
lqw.in(bo.getProductScopeTypeList() != null, PromotionCoupon::getProductScopeType, bo.getProductScopeTypeList());
lqw.eq(bo.getDiscountType() != null, PromotionCoupon::getDiscountType, bo.getDiscountType()); lqw.eq(bo.getDiscountType() != null, PromotionCoupon::getDiscountType, bo.getDiscountType());
lqw.eq(bo.getDiscountPercent() != null, PromotionCoupon::getDiscountPercent, bo.getDiscountPercent()); lqw.eq(bo.getDiscountPercent() != null, PromotionCoupon::getDiscountPercent, bo.getDiscountPercent());
lqw.eq(bo.getDiscountPrice() != null, PromotionCoupon::getDiscountPrice, bo.getDiscountPrice()); lqw.eq(bo.getDiscountPrice() != null, PromotionCoupon::getDiscountPrice, bo.getDiscountPrice());
@ -237,7 +242,7 @@ public class PromotionCouponServiceImpl implements IPromotionCouponService {
allFilter.setUserId(bo.getUserId()); allFilter.setUserId(bo.getUserId());
allFilter.setStatus(1L); allFilter.setStatus(1L);
allFilter.setEffective(true); allFilter.setEffective(true);
allFilter.setProductScopeType(1L); allFilter.setProductScopeTypeList(List.of(1L, 2L));
allFilter.setAmount(bo.getAmount()); allFilter.setAmount(bo.getAmount());
List<PromotionCouponVo> allPromotionCouponVos = queryList(allFilter); List<PromotionCouponVo> allPromotionCouponVos = queryList(allFilter);
list.addAll(allPromotionCouponVos); list.addAll(allPromotionCouponVos);
@ -349,6 +354,18 @@ public class PromotionCouponServiceImpl implements IPromotionCouponService {
if (ObjectUtil.notEqual(couponTemplate.getTakeType(), takeType)) { if (ObjectUtil.notEqual(couponTemplate.getTakeType(), takeType)) {
throw new ServiceException("领取方式不正确"); throw new ServiceException("领取方式不正确");
} }
//新人优惠券
if(couponTemplate.getProductScopeType() == 4L && couponTemplate.getRegisterDate() != null){
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.in("user_id", userIds);
queryWrapper.apply("date_format(create_time , '%y-%m-%d') >= date_format({0} , '%y-%m-%d') ", couponTemplate.getRegisterDate() );
Long count = sysUserMapper.selectCount(queryWrapper);
if(count == 0){
//用户创建时间小于优惠券的注册时间则不能领取
String dateStr = DateUtil.format(couponTemplate.getRegisterDate() ,"YYYY年MM月dd日");
throw new ServiceException("该优惠券仅对"+dateStr+"后注册的用户领取");
}
}
for (Long userId : userIds) { for (Long userId : userIds) {
QueryWrapper<PromotionCoupon> queryWrapper = new QueryWrapper<>(); QueryWrapper<PromotionCoupon> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId); queryWrapper.eq("user_id", userId);
@ -373,7 +390,7 @@ public class PromotionCouponServiceImpl implements IPromotionCouponService {
int update = baseMapper.update(luw); int update = baseMapper.update(luw);
PromotionCouponVo coupon = selectByIdAndUserId(id, userId); PromotionCouponVo coupon = selectByIdAndUserId(id, userId);
if (coupon != null) { if (coupon != null) {
promotionCouponTemplateMapper.addUseCouponCount(coupon.getTemplateId()); promotionCouponTemplateMapper.addUseCouponCount(coupon.getTemplateId());
} }
if (update == 0) { if (update == 0) {
@ -428,7 +445,7 @@ public class PromotionCouponServiceImpl implements IPromotionCouponService {
if (ObjectUtil.notEqual(coupon.getStatus(), 2L)) { if (ObjectUtil.notEqual(coupon.getStatus(), 2L)) {
throw new ServiceException("优惠劵不是已使用状态"); throw new ServiceException("优惠劵不是已使用状态");
} }
// 退还 // 退还
Long status = DateUtil.compare(new Date(), coupon.getValidEndTime(), "yyyy-MM-dd")> 0 ? 3L : 1L; Long status = DateUtil.compare(new Date(), coupon.getValidEndTime(), "yyyy-MM-dd")> 0 ? 3L : 1L;
LambdaUpdateWrapper<PromotionCoupon> luw = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PromotionCoupon> luw = new LambdaUpdateWrapper<>();
luw.set( PromotionCoupon::getStatus, status); luw.set( PromotionCoupon::getStatus, status);

14
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/PromotionCouponTemplateServiceImpl.java

@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -201,10 +202,23 @@ public class PromotionCouponTemplateServiceImpl implements IPromotionCouponTempl
* 保存前的数据校验 * 保存前的数据校验
*/ */
private void validEntityBeforeSave(PromotionCouponTemplateBo bo){ private void validEntityBeforeSave(PromotionCouponTemplateBo bo){
if (bo.getProductScopeType() == 4L) {
//新人优惠券
if (bo.getRegisterDate() == null) {
throw new ServiceException("注册时间不能为空");
}
}
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
} }
private void validEntityBeforeUpdate(PromotionCouponTemplateBo bo){ private void validEntityBeforeUpdate(PromotionCouponTemplateBo bo){
if (bo.getProductScopeType() == 4L) {
//新人优惠券
if (bo.getRegisterDate() == null) {
throw new ServiceException("注册时间不能为空");
}
}
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
/* if (DateUtil.compare(bo.getValidEndTime(), new Date(), "yyyy-MM-dd") >=0) { /* if (DateUtil.compare(bo.getValidEndTime(), new Date(), "yyyy-MM-dd") >=0) {
bo.setStatus(0L); bo.setStatus(0L);

2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SystemCouponOrderPriceCalculatorServiceImpl.java

@ -60,7 +60,7 @@ public class SystemCouponOrderPriceCalculatorServiceImpl implements OrderPriceCa
Predicate<ProductOrderItemsVo> matchPredicate = null; Predicate<ProductOrderItemsVo> matchPredicate = null;
List<Long> productScopeIds = coupon.getProductScopeIds(); List<Long> productScopeIds = coupon.getProductScopeIds();
List<ProductOrderItemsVo> itemList = result.getItemsList(); List<ProductOrderItemsVo> itemList = result.getItemsList();
if (coupon.getProductScopeType() == 1L) { if (coupon.getProductScopeType() == 1L || coupon.getProductScopeType() == 4L) {
itemList.forEach(item->item.setSystemCouponId(coupon.getId())); itemList.forEach(item->item.setSystemCouponId(coupon.getId()));
return itemList; return itemList;
} else if (coupon.getProductScopeType() == 2L) { } else if (coupon.getProductScopeType() == 2L) {

6
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ProductOrderMapper.xml

@ -360,4 +360,10 @@
</select> </select>
<select id="selectSettlementList" resultMap="ProductOrderResult"
>
select po.id, po.business_id
from product_order po left join sys_business sb on po.business_id = sb.id
${ew.customSqlSegment}
</select>
</mapper> </mapper>

Loading…
Cancel
Save