Browse Source

商家排序与商家调整年费过期时间

master
wengding 2 weeks ago
parent
commit
1b9998614b
  1. 21
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysBusinessController.java
  2. 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysBusiness.java
  3. 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponBo.java
  4. 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessCouponTemplateBo.java
  5. 24
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessServiceBo.java
  6. 14
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/BusinessSortBo.java
  7. 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysBusinessBo.java
  8. 6
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysBusinessVo.java
  9. 19
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessCouponServiceImpl.java
  10. 7
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/BusinessSystemCouponOrderPriceCalculatorServiceImpl.java
  11. 37
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysBusinessServiceImpl.java
  12. 1
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysBusinessMapper.xml

21
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<Void> changeAppointment( @RequestBody BusinessAppointmentBo bo) {
sysBusinessService.changeAppointment(bo);
return R.ok();
@PutMapping("editSortBatch")
public R<Void> editSortBatch(@RequestBody BusinessSortBo bo) {
return toAjax(sysBusinessService.editSortBatch(bo));
}
/**
* 修改门店编号(闪时送)
* @param bo

4
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;
}

1
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<Long> productScopeTypes;
/**
* 折扣类型
*/

4
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;
/**

24
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;
}

14
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<Long> ids;
@NotNull
private Long sort;
}

4
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;
}

6
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;
}

19
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<BusinessCouponVo> 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<ProductOrder> 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<BusinessCoupon> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId);
queryWrapper.eq("template_id", couponTemplate.getId());

7
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<ProductOrderItemsVo> productOrderItemsVos = filterMatchCouponOrderItems(vo, coupon);
if (productOrderItemsVos.isEmpty()) {
@ -78,10 +78,12 @@ public class BusinessSystemCouponOrderPriceCalculatorServiceImpl implements Orde
Predicate<ProductOrderItemsVo> matchPredicate = null;
List<Long> productScopeIds = coupon.getProductScopeIds();
List<ProductOrderItemsVo> 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;
}

37
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<SysBusiness> 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<SysBusiness> 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<SysBusiness> 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<SysBusiness> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(SysBusiness::getId, bo.getIds());
updateWrapper.set(SysBusiness::getSort, bo.getSort());
return baseMapper.update(updateWrapper);
}
private QueryWrapper<SysBusiness> buildQueryWrapper(SysBusinessViewBo bo) {
QueryWrapper<SysBusiness> qw = new QueryWrapper<>();
qw.like(StringUtil.isNotBlank(bo.getArea()), "area", bo.getArea());

1
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysBusinessMapper.xml

@ -192,6 +192,7 @@
<result property="submitTime" column="submit_time" />
<result property="nickname" column="nick_name"/>
<result property="username" column="user_name"/>
<result property="sort" column="sort"/>
</resultMap>
<resultMap id="businessVo" type="org.dromara.system.domain.vo.SysBusinessVo">
<result property="id" column="id"/>

Loading…
Cancel
Save