用户端满减活动

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) @Column(ignore = true)
private Integer isEnableConsSync; private Integer isEnableConsSync;
/**
* 是否启用新客立减 1- 0-
*/
@Column(ignore = true)
private Integer isEnableDiscount;
/** /**
* 是否允许账号登录 1- 0- * 是否允许账号登录 1- 0-
*/ */

View File

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

View File

@ -11,4 +11,5 @@ import com.czg.market.entity.MkDiscountActivity;
*/ */
public interface MkDiscountActivityMapper extends BaseMapper<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.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.czg.TimeQueryParam; 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.MkDiscountActivityDTO;
import com.czg.market.dto.ShopCouponDTO; import com.czg.market.entity.MkDiscountActivity;
import com.czg.market.entity.MkDiscountThreshold; import com.czg.market.entity.MkDiscountThreshold;
import com.czg.market.entity.ShopCoupon; import com.czg.market.service.MkDiscountActivityService;
import com.czg.sa.StpKit; import com.czg.service.market.mapper.MkDiscountActivityMapper;
import com.czg.service.market.mapper.MkDiscountThresholdMapper; import com.czg.service.market.mapper.MkDiscountThresholdMapper;
import com.czg.utils.AssertUtil;
import com.czg.utils.PageUtil; import com.czg.utils.PageUtil;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl; 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 jakarta.annotation.Resource;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -32,6 +33,8 @@ public class MkDiscountActivityServiceImpl extends ServiceImpl<MkDiscountActivit
@Resource @Resource
private MkDiscountThresholdMapper thresholdMapper; private MkDiscountThresholdMapper thresholdMapper;
@DubboReference
private ShopInfoService shopInfoService;
@Override @Override
public Page<MkDiscountActivityDTO> getActivityPage(TimeQueryParam param, Long shopId) { public Page<MkDiscountActivityDTO> getActivityPage(TimeQueryParam param, Long shopId) {
@ -51,6 +54,24 @@ public class MkDiscountActivityServiceImpl extends ServiceImpl<MkDiscountActivit
return page; 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 @Override
public void addActivity(MkDiscountActivityDTO param) { public void addActivity(MkDiscountActivityDTO param) {
if (CollUtil.isEmpty(param.getThresholds())) { if (CollUtil.isEmpty(param.getThresholds())) {

View File

@ -4,4 +4,16 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.market.mapper.MkDiscountActivityMapper"> <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> </mapper>