diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysBusinessController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysBusinessController.java index 0a11309..7d5e163 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysBusinessController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysBusinessController.java @@ -227,6 +227,7 @@ public class SysBusinessController extends BaseController { /** * 修改服务类型 + * 权限system:business:changeService * @param bo * @return */ @@ -240,23 +241,19 @@ public class SysBusinessController extends BaseController { return R.ok(); } - - /** - * 修改是否可预约 - * @param bo - * @return + * 商家排序 + * 权限system:business:editSort */ - @SaCheckPermission("system:business:changeAppointment") - @Log(title = "商家管理", businessType = BusinessType.UPDATE) + @SaCheckPermission("system:business:editSort") + @Log(title = "商家商品", businessType = BusinessType.UPDATE) @RepeatSubmit() - @PostMapping("changeAppointment") - - public R changeAppointment( @RequestBody BusinessAppointmentBo bo) { - sysBusinessService.changeAppointment(bo); - return R.ok(); + @PutMapping("editSortBatch") + public R editSortBatch(@RequestBody BusinessSortBo bo) { + return toAjax(sysBusinessService.editSortBatch(bo)); } + /** * 修改门店编号(闪时送) * @param bo diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysBusiness.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysBusiness.java index edf504e..88b1f75 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysBusiness.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysBusiness.java @@ -289,5 +289,9 @@ public class SysBusiness extends BaseEntity { private Long districtId; private String yunli; + /** + * 排序 + */ + private Long sort; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponBo.java index eab1b5d..f007023 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponBo.java @@ -75,6 +75,7 @@ public class BusinessCouponBo extends BaseEntity { @NotNull(message = "类型(1商家 2分类 3商品)不能为空", groups = { AddGroup.class, EditGroup.class }) private Long productScopeType; + private List productScopeTypes; /** * 折扣类型 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponTemplateBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponTemplateBo.java index 1701309..4935ff7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponTemplateBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponTemplateBo.java @@ -80,9 +80,9 @@ public class BusinessCouponTemplateBo extends BaseEntity { private BigDecimal usePrice; /** - * 类型(1商家 2分类 3商品) + * 类型(1商家 2分类 3商品 4配送 5新人) */ - @NotNull(message = "类型(1商家 2分类 3商品)不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "类型(1商家 2分类 3商品 4配送 5新人)", groups = { AddGroup.class, EditGroup.class }) private Long productScopeType; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessServiceBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessServiceBo.java index 01a4a72..3d3d434 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessServiceBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessServiceBo.java @@ -1,8 +1,11 @@ package org.dromara.system.domain.bo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.util.Date; @Data public class BusinessServiceBo { @@ -10,21 +13,16 @@ public class BusinessServiceBo { *商家id */ private Long id; + /** - * 服务类型0=包年服务费 1=单笔服务费 - */ - private Long serviceType; - /** - * 服务金额 - */ - private BigDecimal serviceAmount; - /** - * 缴费模式年费(serviceType=0,serviceAmountType=1) - * 单笔交易收取多少(serviceType=1,serviceAmountType=1) + * 日期(年费使用的) */ - private Long serviceAmountType; + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date expireDate; /** - * 每stepAmount收费serviceAmount + * 0 年费 1技术服务费 */ - private BigDecimal stepAmount; + private Long serviceType; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessSortBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessSortBo.java new file mode 100644 index 0000000..4132c24 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessSortBo.java @@ -0,0 +1,14 @@ +package org.dromara.system.domain.bo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +@Data +public class BusinessSortBo { + @NotNull + private List ids; + @NotNull + private Long sort; +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysBusinessBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysBusinessBo.java index b520bb5..a05e898 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysBusinessBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysBusinessBo.java @@ -307,5 +307,9 @@ public class SysBusinessBo extends BaseEntity { * 需要创建商户编号 */ private boolean createShopNo; + /** + * 排序 + */ + private Long sort; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysBusinessVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysBusinessVo.java index 129d897..d22d0f5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysBusinessVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysBusinessVo.java @@ -395,4 +395,10 @@ public class SysBusinessVo implements Serializable { private String districtName; private String yunli; + + /** + * 排序 + */ + private Long sort; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessCouponServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessCouponServiceImpl.java index 175e12e..1d5c7e4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessCouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessCouponServiceImpl.java @@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.dromara.system.domain.BusinessCoupon; import org.dromara.system.domain.BusinessCouponTemplate; +import org.dromara.system.domain.ProductOrder; import org.dromara.system.domain.PromotionCoupon; import org.dromara.system.domain.bo.AppBusinessProductBo; import org.dromara.system.domain.bo.AppBusinessTypeBo; @@ -26,6 +27,7 @@ import org.dromara.system.domain.bo.CouponCheckBo; import org.dromara.system.domain.bo.BusinessCouponBo; import org.dromara.system.domain.vo.*; import org.dromara.system.mapper.BusinessCouponTemplateMapper; +import org.dromara.system.mapper.ProductOrderMapper; import org.dromara.system.service.IAppBusinessProductService; import org.dromara.system.service.IAppBusinessTypeService; import org.dromara.system.service.IBusinessCouponTemplateService; @@ -63,6 +65,9 @@ public class BusinessCouponServiceImpl implements IBusinessCouponService { @Resource private BusinessCouponTemplateMapper businessCouponTemplateMapper; + + @Resource + private ProductOrderMapper productOrderMapper; /** * 查询商家优惠劵 * @@ -139,6 +144,7 @@ public class BusinessCouponServiceImpl implements IBusinessCouponService { lqw.eq(bo.getValidStartTime() != null, BusinessCoupon::getValidStartTime, bo.getValidStartTime()); lqw.eq(bo.getValidEndTime() != null, BusinessCoupon::getValidEndTime, bo.getValidEndTime()); lqw.eq(bo.getProductScopeType() != null, BusinessCoupon::getProductScopeType, bo.getProductScopeType()); + lqw.in(bo.getProductScopeTypes() != null, BusinessCoupon::getProductScopeType, bo.getProductScopeTypes()); lqw.eq(bo.getDiscountType() != null, BusinessCoupon::getDiscountType, bo.getDiscountType()); lqw.eq(bo.getDiscountPercent() != null, BusinessCoupon::getDiscountPercent, bo.getDiscountPercent()); lqw.eq(bo.getDiscountPrice() != null, BusinessCoupon::getDiscountPrice, bo.getDiscountPrice()); @@ -259,7 +265,7 @@ public class BusinessCouponServiceImpl implements IBusinessCouponService { allFilter.setUserId(bo.getUserId()); allFilter.setStatus(1L); allFilter.setEffective(true); - allFilter.setProductScopeType(1L); + allFilter.setProductScopeTypes(List.of(1L, 5L)); allFilter.setAmount(bo.getAmount()); allFilter.setBusinessId(bo.getBusinessId()); List allBusinessCouponVos = queryList(allFilter); @@ -366,6 +372,17 @@ public class BusinessCouponServiceImpl implements IBusinessCouponService { if (ObjectUtil.notEqual(couponTemplate.getTakeType(), takeType)) { throw new ServiceException("领取方式不正确"); } + //新人优惠券 + if(couponTemplate.getProductScopeType() != null && couponTemplate.getProductScopeType() == 5L){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("business_id", couponTemplate.getBusinessId()); + queryWrapper.in("status", "1","2", "4", "5", "9"); + queryWrapper.eq("user_id", userId); + Long count = productOrderMapper.selectCount(queryWrapper); + if(count > 0){ + throw new ServiceException("只有新人才能领取!"); + } + } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_id", userId); queryWrapper.eq("template_id", couponTemplate.getId()); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessSystemCouponOrderPriceCalculatorServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessSystemCouponOrderPriceCalculatorServiceImpl.java index 0453afb..734de8a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessSystemCouponOrderPriceCalculatorServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessSystemCouponOrderPriceCalculatorServiceImpl.java @@ -39,7 +39,7 @@ public class BusinessSystemCouponOrderPriceCalculatorServiceImpl implements Orde Long userId = vo.getUserId(); if (businessCouponId != null) { BusinessCouponVo coupon = businessCouponService.validCoupon(businessCouponId, userId); - if (coupon.getProductScopeType() >= 1L || coupon.getProductScopeType() <= 3L) { + if (coupon.getProductScopeType() !=4L) { List productOrderItemsVos = filterMatchCouponOrderItems(vo, coupon); if (productOrderItemsVos.isEmpty()) { @@ -78,10 +78,12 @@ public class BusinessSystemCouponOrderPriceCalculatorServiceImpl implements Orde Predicate matchPredicate = null; List productScopeIds = coupon.getProductScopeIds(); List itemList = result.getItemsList(); - if (coupon.getProductScopeType() == 1L) { + //所有优惠券和新人优惠券 + if (coupon.getProductScopeType() == 1L || coupon.getProductScopeType() == 5L) { itemList.forEach(item->item.setBusinessCouponId(coupon.getId())); return itemList; } else if (coupon.getProductScopeType() == 2L) { + //类型优惠卷 if (productScopeIds == null || productScopeIds.isEmpty()) { return itemList; } @@ -94,6 +96,7 @@ public class BusinessSystemCouponOrderPriceCalculatorServiceImpl implements Orde }); return itemList.stream().filter(item -> productScopeIds.contains(item.getTypeId())).peek(item-> item.setBusinessCouponId(coupon.getId())).collect(Collectors.toList()); } else if (coupon.getProductScopeType() == 3L) { + //商品优惠券 if (productScopeIds == null || productScopeIds.isEmpty()) { return itemList; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysBusinessServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysBusinessServiceImpl.java index 5b0561b..f77f1cd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysBusinessServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysBusinessServiceImpl.java @@ -60,6 +60,10 @@ public class SysBusinessServiceImpl @Resource private ISysConfigService sysConfigService; + + @Resource + private ISysContractService sysContractService; + /** * 查询商家管理 * @@ -536,13 +540,23 @@ public class SysBusinessServiceImpl @Override @Transactional public void changeServiceByBo(BusinessServiceBo bo) { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(SysBusiness::getId, bo.getId()); - updateWrapper.set(SysBusiness::getServiceType, bo.getServiceType()); - updateWrapper.set(SysBusiness::getServiceAmount, bo.getServiceType() == 2L ? bo.getServiceAmount() : BigDecimal.ZERO); - updateWrapper.set(SysBusiness::getServiceAmountType, bo.getServiceAmountType()); - updateWrapper.set(SysBusiness::getStepAmount, bo.getStepAmount()); - baseMapper.update(updateWrapper); + if (bo.getServiceType() == 1L) { + SysContractVo vo = sysContractService.queryByDefaultService(); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(SysBusiness::getId, bo.getId()); + updateWrapper.set(SysBusiness::getExpireDate, null); + updateWrapper.set(SysBusiness::getServiceType, vo.getServiceType()); + updateWrapper.set(SysBusiness::getPayStatus, 2L); + baseMapper.update(updateWrapper); + }else{ + SysContractVo vo = sysContractService.queryByService(); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(SysBusiness::getId, bo.getId()); + updateWrapper.set(SysBusiness::getExpireDate, bo.getExpireDate()); + updateWrapper.set(SysBusiness::getServiceType, vo.getServiceType()); + updateWrapper.set(SysBusiness::getPayStatus, 1L); + baseMapper.update(updateWrapper); + } } @Override @@ -669,6 +683,15 @@ public class SysBusinessServiceImpl return baseMapper.update(updateWrapper); } + @Override + @Transactional + public int editSortBatch(BusinessSortBo bo) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(SysBusiness::getId, bo.getIds()); + updateWrapper.set(SysBusiness::getSort, bo.getSort()); + return baseMapper.update(updateWrapper); + } + private QueryWrapper buildQueryWrapper(SysBusinessViewBo bo) { QueryWrapper qw = new QueryWrapper<>(); qw.like(StringUtil.isNotBlank(bo.getArea()), "area", bo.getArea()); diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysBusinessMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysBusinessMapper.xml index 5ca803d..267012a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysBusinessMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysBusinessMapper.xml @@ -192,6 +192,7 @@ +