用户端满减活动
This commit is contained in:
parent
ccf791b53b
commit
5de49a0912
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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-否
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -11,4 +11,5 @@ import com.czg.market.entity.MkDiscountActivity;
|
|||
*/
|
||||
public interface MkDiscountActivityMapper extends BaseMapper<MkDiscountActivity> {
|
||||
|
||||
MkDiscountActivity selectOneByShopId(Long shopId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue