Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
commit
4968f5ce6d
|
|
@ -0,0 +1,75 @@
|
|||
package com.czg.controller.admin;
|
||||
|
||||
import com.czg.TimeQueryParam;
|
||||
import com.czg.log.annotation.OperationLog;
|
||||
import com.czg.market.dto.MkLimitTimeDiscountDTO;
|
||||
import com.czg.market.service.MkLimitTimeDiscountService;
|
||||
import com.czg.resp.CzgResult;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.utils.AssertUtil;
|
||||
import com.czg.validator.group.DefaultGroup;
|
||||
import com.czg.validator.group.InsertGroup;
|
||||
import com.czg.validator.group.UpdateGroup;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 限时折扣
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/admin/limitTimeDiscount")
|
||||
public class ALimitTimeDiscountController {
|
||||
@Resource
|
||||
private MkLimitTimeDiscountService limitTimeDiscountService;
|
||||
|
||||
/**
|
||||
* 限时折扣-分页
|
||||
*/
|
||||
@GetMapping("page")
|
||||
public CzgResult<Page<MkLimitTimeDiscountDTO>> getLimitTimeDiscountPage(TimeQueryParam param) {
|
||||
Page<MkLimitTimeDiscountDTO> data = limitTimeDiscountService.getLimitTimeDiscountPage(param, StpKit.USER.getShopId());
|
||||
return CzgResult.success(data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 限时折扣-新增
|
||||
*/
|
||||
@PostMapping
|
||||
@OperationLog("限时折扣-新增")
|
||||
public CzgResult<Void> addLimitTimeDiscount(@RequestBody @Validated({InsertGroup.class, DefaultGroup.class}) MkLimitTimeDiscountDTO dto) {
|
||||
Long shopId = StpKit.USER.getShopId();
|
||||
dto.setShopId(shopId);
|
||||
limitTimeDiscountService.addLimitTimeDiscount(dto);
|
||||
return CzgResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 限时折扣-修改
|
||||
*/
|
||||
@PutMapping
|
||||
@OperationLog("限时折扣-修改")
|
||||
public CzgResult<Void> updateLimitTimeDiscount(@RequestBody @Validated({UpdateGroup.class, DefaultGroup.class}) MkLimitTimeDiscountDTO dto) {
|
||||
Long shopId = StpKit.USER.getShopId();
|
||||
dto.setShopId(shopId);
|
||||
limitTimeDiscountService.updateLimitTimeDiscountById(dto);
|
||||
return CzgResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 限时折扣-删除
|
||||
*/
|
||||
@DeleteMapping
|
||||
@OperationLog("限时折扣-删除")
|
||||
public CzgResult<String> deleteLimitTimeDiscount(@RequestParam Long id) {
|
||||
AssertUtil.isNull(id, "{}不能为空", "id");
|
||||
limitTimeDiscountService.deleteLimitTimeDiscount(id);
|
||||
return CzgResult.success();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -2,6 +2,10 @@
|
|||
package com.czg.market.dto;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.czg.validator.group.InsertGroup;
|
||||
import com.czg.validator.group.UpdateGroup;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
|
@ -30,6 +34,7 @@ public class MkLimitTimeDiscountDTO implements Serializable {
|
|||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = {UpdateGroup.class})
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
|
|
@ -40,6 +45,7 @@ public class MkLimitTimeDiscountDTO implements Serializable {
|
|||
/**
|
||||
* only-仅本店 all全部 /custom 指定
|
||||
*/
|
||||
@NotBlank(message = "使用门店类型不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private String useShopType;
|
||||
|
||||
/**
|
||||
|
|
@ -50,21 +56,25 @@ public class MkLimitTimeDiscountDTO implements Serializable {
|
|||
/**
|
||||
* 有效期开始时间
|
||||
*/
|
||||
@NotBlank(message = "有效期开始时间不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private String validStartTime;
|
||||
|
||||
/**
|
||||
* 有效期结束时间
|
||||
*/
|
||||
@NotBlank(message = "有效期结束时间不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private String validEndTime;
|
||||
|
||||
/**
|
||||
* 可用周期,示例:周一,周二,周三,周四,周五,周六,周日
|
||||
*/
|
||||
@NotBlank(message = "可用周期不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private String useDays;
|
||||
|
||||
/**
|
||||
* 可用时间段类型:all-全时段,custom-指定时段
|
||||
*/
|
||||
@NotBlank(message = "可用时间段类型不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private String useTimeType;
|
||||
|
||||
/**
|
||||
|
|
@ -81,11 +91,13 @@ public class MkLimitTimeDiscountDTO implements Serializable {
|
|||
* 可使用类型:堂食 dine-in 外带 take-out 外卖 take-away 配送 post
|
||||
* 示例 dine-in,take-out,take-away,post
|
||||
*/
|
||||
@NotBlank(message = "可使用类型不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private String useType;
|
||||
|
||||
/**
|
||||
* 折扣% 范围1-99
|
||||
*/
|
||||
@NotNull(message = "折扣%不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private Integer discountRate;
|
||||
|
||||
/**
|
||||
|
|
@ -96,11 +108,13 @@ public class MkLimitTimeDiscountDTO implements Serializable {
|
|||
/**
|
||||
* 折扣优先级 limit-time/vip-price
|
||||
*/
|
||||
@NotBlank(message = "折扣优先级不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private String discountPriority;
|
||||
|
||||
/**
|
||||
* 参与商品 1全部 2部分
|
||||
*/
|
||||
@NotNull(message = "参与商品范围不能为空", groups = {InsertGroup.class, UpdateGroup.class})
|
||||
private Integer foodType;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
package com.czg.service.market.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.czg.TimeQueryParam;
|
||||
import com.czg.account.entity.PictureClassify;
|
||||
import com.czg.account.entity.ShopInfo;
|
||||
import com.czg.account.service.ShopInfoService;
|
||||
import com.czg.enums.YesNoEnum;
|
||||
import com.czg.exception.CzgException;
|
||||
import com.czg.market.dto.MkLimitTimeDiscountDTO;
|
||||
import com.czg.market.entity.MkLimitTimeDiscount;
|
||||
|
|
@ -43,6 +47,14 @@ public class MkLimitTimeDiscountServiceImpl extends ServiceImpl<MkLimitTimeDisco
|
|||
.le(MkLimitTimeDiscount::getValidEndTime, CzgStrUtils.getStrOrNull(param.getEndTime()))
|
||||
.orderBy(MkLimitTimeDiscount::getSort).desc()
|
||||
.orderBy(MkLimitTimeDiscount::getUpdateTime).desc();
|
||||
|
||||
queryWrapper.and(q -> {
|
||||
q.eq(MkLimitTimeDiscount::getUseType, "all").or(q1 -> {
|
||||
q1.eq(MkLimitTimeDiscount::getUseType, "only").eq(MkLimitTimeDiscount::getShopId, shopId);
|
||||
}).or(q2 -> {
|
||||
q2.eq(MkLimitTimeDiscount::getUseType, "custom").gt("FIND_IN_SET(" + shopId + ", use_shops)", 0);
|
||||
});
|
||||
});
|
||||
return pageAs(PageUtil.buildPage(), queryWrapper, MkLimitTimeDiscountDTO.class);
|
||||
}
|
||||
|
||||
|
|
@ -60,43 +72,46 @@ public class MkLimitTimeDiscountServiceImpl extends ServiceImpl<MkLimitTimeDisco
|
|||
|
||||
@Override
|
||||
public void addLimitTimeDiscount(MkLimitTimeDiscountDTO param) {
|
||||
// validateAndInitStatus(param);
|
||||
// if ("only".equals(param.getUseShopType())) {
|
||||
// param.setUseShops(param.getShopId().toString());
|
||||
// } else if ("custom".equals(param.getUseShopType())) {
|
||||
// AssertUtil.isBlank(param.getUseShops(), "请配置可用门店");
|
||||
// }
|
||||
//
|
||||
// if(param.getFoodType() == 2){
|
||||
// AssertUtil.isBlank(param.getFoods(), "请配置参与商品");
|
||||
// }
|
||||
// if(param.getFoodType() == 2){
|
||||
// AssertUtil.isBlank(param.getFoods(), "请配置参与商品");
|
||||
// }
|
||||
// MkLimitTimeDiscount activity = BeanUtil.toBean(param, MkLimitTimeDiscount.class);
|
||||
// save(activity);
|
||||
AssertUtil.isBlank(param.getDiscountPriority(), "请配置折扣优先级");
|
||||
AssertUtil.isBlank(param.getUseDays(), "请配置可用周期");
|
||||
if ("only".equals(param.getUseShopType())) {
|
||||
param.setUseShops(param.getShopId().toString());
|
||||
} else if ("custom".equals(param.getUseShopType())) {
|
||||
AssertUtil.isBlank(param.getUseShops(), "请配置可用门店");
|
||||
}
|
||||
if (param.getFoodType() == 2) {
|
||||
AssertUtil.isBlank(param.getFoods(), "请配置参与商品");
|
||||
}
|
||||
validateAndInitStatus(param);
|
||||
param.setIsDel(false);
|
||||
MkLimitTimeDiscount activity = BeanUtil.toBean(param, MkLimitTimeDiscount.class);
|
||||
save(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLimitTimeDiscountById(MkLimitTimeDiscountDTO param) {
|
||||
// if (CollUtil.isEmpty(param.getThresholds())) {
|
||||
// throw new IllegalArgumentException("活动必须配置满减阈值");
|
||||
// }
|
||||
// validateAndInitStatus(param);
|
||||
// MkDiscountActivity activity = BeanUtil.toBean(param, MkDiscountActivity.class);
|
||||
// updateById(activity, true);
|
||||
// thresholdMapper.deleteByQuery(
|
||||
// new QueryWrapper().eq(MkDiscountThreshold::getActivityId, activity.getId())
|
||||
// );
|
||||
// for (MkDiscountThreshold threshold : param.getThresholds()) {
|
||||
// threshold.setActivityId(activity.getId());
|
||||
// thresholdMapper.insert(threshold);
|
||||
// }
|
||||
AssertUtil.isBlank(param.getDiscountPriority(), "请配置折扣优先级");
|
||||
AssertUtil.isBlank(param.getUseDays(), "请配置可用周期");
|
||||
if ("only".equals(param.getUseShopType())) {
|
||||
param.setUseShops(param.getShopId().toString());
|
||||
} else if ("custom".equals(param.getUseShopType())) {
|
||||
AssertUtil.isBlank(param.getUseShops(), "请配置可用门店");
|
||||
}
|
||||
if (param.getFoodType() == 2) {
|
||||
AssertUtil.isBlank(param.getFoods(), "请配置参与商品");
|
||||
}
|
||||
validateAndInitStatus(param);
|
||||
param.setIsDel(false);
|
||||
MkLimitTimeDiscount limitTimeDiscount = BeanUtil.toBean(param, MkLimitTimeDiscount.class);
|
||||
updateById(limitTimeDiscount, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteLimitTimeDiscount(Long id) {
|
||||
|
||||
MkLimitTimeDiscount limitTimeDiscount = new MkLimitTimeDiscount();
|
||||
limitTimeDiscount.setId(id);
|
||||
limitTimeDiscount.setIsDel(true);
|
||||
updateById(limitTimeDiscount, true);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -133,4 +148,22 @@ public class MkLimitTimeDiscountServiceImpl extends ServiceImpl<MkLimitTimeDisco
|
|||
param.setStatus(2);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq(MkLimitTimeDiscount::getShopId, 2)
|
||||
.eq(MkLimitTimeDiscount::getIsDel, 0)
|
||||
.orderBy(MkLimitTimeDiscount::getSort).desc()
|
||||
.orderBy(MkLimitTimeDiscount::getUpdateTime).desc();
|
||||
|
||||
queryWrapper.and(q -> {
|
||||
q.eq(MkLimitTimeDiscount::getUseType, "all").or(q1 -> {
|
||||
q1.eq(MkLimitTimeDiscount::getUseType, "only").eq(MkLimitTimeDiscount::getShopId, 999);
|
||||
}).or(q2 -> {
|
||||
q2.eq(MkLimitTimeDiscount::getUseType, "custom").gt("FIND_IN_SET(" + 2 + ", use_shops)", 0);
|
||||
});
|
||||
});
|
||||
System.out.println(queryWrapper.toSQL());
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue