用户端满减活动

This commit is contained in:
wangw 2025-10-13 16:21:08 +08:00
parent ccf791b53b
commit 5de49a0912
6 changed files with 83 additions and 8 deletions

View File

@ -0,0 +1,34 @@
package com.czg.controller.user;
import com.czg.market.dto.MkDiscountActivityDTO;
import com.czg.market.service.MkDiscountActivityService;
import com.czg.resp.CzgResult;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 满减活动
*
* @author Administrator
*/
@RestController
@RequestMapping("/user/discountActivity")
public class UDiscountActivityController {
@Resource
private MkDiscountActivityService discountActivityService;
/**
* 分页
*/
@GetMapping()
public CzgResult<MkDiscountActivityDTO> getActivity(@RequestParam Long shopId) {
MkDiscountActivityDTO data = discountActivityService.getActivityByShopId(shopId);
return CzgResult.success(data);
}
}

View File

@ -255,6 +255,11 @@ public class ShopInfo implements Serializable {
*/
@Column(ignore = true)
private Integer isEnableConsSync;
/**
* 是否启用新客立减 1- 0-
*/
@Column(ignore = true)
private Integer isEnableDiscount;
/**
* 是否允许账号登录 1- 0-
*/

View File

@ -15,6 +15,8 @@ import com.czg.market.entity.MkDiscountActivity;
public interface MkDiscountActivityService extends IService<MkDiscountActivity> {
Page<MkDiscountActivityDTO> getActivityPage(TimeQueryParam param, Long shopId);
MkDiscountActivityDTO getActivityByShopId(Long shopId);
void addActivity(MkDiscountActivityDTO param);
void updateActivityById(MkDiscountActivityDTO param);

View File

@ -11,4 +11,5 @@ import com.czg.market.entity.MkDiscountActivity;
*/
public interface MkDiscountActivityMapper extends BaseMapper<MkDiscountActivity> {
MkDiscountActivity selectOneByShopId(Long shopId);
}

View File

@ -3,20 +3,21 @@ package com.czg.service.market.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.czg.TimeQueryParam;
import com.czg.account.entity.ShopInfo;
import com.czg.account.service.ShopInfoService;
import com.czg.market.dto.MkDiscountActivityDTO;
import com.czg.market.dto.ShopCouponDTO;
import com.czg.market.entity.MkDiscountActivity;
import com.czg.market.entity.MkDiscountThreshold;
import com.czg.market.entity.ShopCoupon;
import com.czg.sa.StpKit;
import com.czg.market.service.MkDiscountActivityService;
import com.czg.service.market.mapper.MkDiscountActivityMapper;
import com.czg.service.market.mapper.MkDiscountThresholdMapper;
import com.czg.utils.AssertUtil;
import com.czg.utils.PageUtil;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.market.entity.MkDiscountActivity;
import com.czg.market.service.MkDiscountActivityService;
import com.czg.service.market.mapper.MkDiscountActivityMapper;
import jakarta.annotation.Resource;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@ -32,6 +33,8 @@ public class MkDiscountActivityServiceImpl extends ServiceImpl<MkDiscountActivit
@Resource
private MkDiscountThresholdMapper thresholdMapper;
@DubboReference
private ShopInfoService shopInfoService;
@Override
public Page<MkDiscountActivityDTO> getActivityPage(TimeQueryParam param, Long shopId) {
@ -51,9 +54,27 @@ public class MkDiscountActivityServiceImpl extends ServiceImpl<MkDiscountActivit
return page;
}
@Override
public MkDiscountActivityDTO getActivityByShopId(Long shopId) {
ShopInfo shopInfo = shopInfoService.getById(shopId);
AssertUtil.isNull(shopInfo, "店铺不存在");
if (shopInfo.getIsEnableDiscount() == 0) {
return null;
}
MkDiscountActivity activity = mapper.selectOneByShopId(shopId);
if (activity == null) {
return null;
}
MkDiscountActivityDTO activityDTO = BeanUtil.toBean(activity, MkDiscountActivityDTO.class);
activityDTO.setThresholds(thresholdMapper.selectListByQuery(
new QueryWrapper().eq(MkDiscountThreshold::getActivityId, activity.getId())
));
return activityDTO;
}
@Override
public void addActivity(MkDiscountActivityDTO param) {
if(CollUtil.isEmpty(param.getThresholds())){
if (CollUtil.isEmpty(param.getThresholds())) {
throw new IllegalArgumentException("活动必须配置满减阈值");
}
MkDiscountActivity activity = BeanUtil.toBean(param, MkDiscountActivity.class);
@ -66,7 +87,7 @@ public class MkDiscountActivityServiceImpl extends ServiceImpl<MkDiscountActivit
@Override
public void updateActivityById(MkDiscountActivityDTO param) {
if(CollUtil.isEmpty(param.getThresholds())){
if (CollUtil.isEmpty(param.getThresholds())) {
throw new IllegalArgumentException("活动必须配置满减阈值");
}
MkDiscountActivity activity = BeanUtil.toBean(param, MkDiscountActivity.class);

View File

@ -4,4 +4,16 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.market.mapper.MkDiscountActivityMapper">
<select id="selectOneByShopId" resultType="com.czg.market.entity.MkDiscountActivity">
SELECT *
FROM mk_discount_activity
WHERE shop_id = #{shopId}
AND is_del = 0
AND NOW() BETWEEN valid_start_time AND valid_end_time
AND (use_time_type = 'all' OR (use_time_type = 'custom' AND TIME(NOW()) BETWEEN use_start_time AND use_end_time))
ORDER BY sort DESC,
update_time DESC,
create_time DESC
LIMIT 1;
</select>
</mapper>