生日有礼相关

This commit is contained in:
张松 2025-10-16 15:44:30 +08:00
parent 13d3e70c84
commit 9cb9dda109
3 changed files with 80 additions and 0 deletions

View File

@ -0,0 +1,41 @@
package com.czg.controller.user;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.czg.annotation.SaAdminCheckPermission;
import com.czg.market.dto.MkBirthdayGiftDTO;
import com.czg.market.service.MkBirthdayGiftService;
import com.czg.market.vo.MkBirthdayGiftRecordSummaryVO;
import com.czg.market.vo.MkBirthdayGiftRecordVO;
import com.czg.market.vo.MkBirthdayGiftVO;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import com.mybatisflex.core.paginate.Page;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
/**
* 生日有礼相关
* @author Administrator
*/
@RestController
@RequestMapping("/user/birthdayGift")
public class UBirthdayGiftController {
@Resource
private MkBirthdayGiftService service;
/**
* 获取生日有礼 不为空则代表今日发放生日有礼的奖励
*/
@GetMapping
public CzgResult<MkBirthdayGiftVO> detail(@RequestParam Integer shopId) {
return CzgResult.success(service.getInfo(StpKit.USER.getLoginIdAsLong(), shopId));
}
}

View File

@ -27,4 +27,6 @@ public interface MkBirthdayGiftService extends IService<MkBirthdayGift> {
MkBirthdayGiftRecordSummaryVO summary(Long shopId, String key, LocalDateTime dateTime);
void deliver();
MkBirthdayGiftVO getInfo(long userId, Integer shopId);
}

View File

@ -1,6 +1,7 @@
package com.czg.service.market.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
@ -213,4 +214,40 @@ public class MkBirthdayGiftServiceImpl extends ServiceImpl<MkBirthdayGiftMapper,
});
}
@Override
public MkBirthdayGiftVO getInfo(long userId, Integer shopId) {
MkBirthdayGift birthdayGift = getOne(new QueryWrapper().eq(MkBirthdayGift::getMainShopId, shopId).eq(MkBirthdayGift::getIsEnable, 1));
if (birthdayGift == null) {
return null;
}
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getUserId, userId).eq(ShopUser::getMainShopId, shopId));
if (StrUtil.isBlank(birthdayGift.getConfigList())) {
return null;
}
LocalDate current = DateUtil.date().toLocalDateTime().toLocalDate();
for (MkBirthdayGiftConfig config : JSONArray.parseArray(birthdayGift.getConfigList()).toJavaList(MkBirthdayGiftConfig.class)) {
if ("day".equals(config.getDeliverDate())) {
if (config.getDeliverTime() != 1) {
current = current.plusDays(config.getDeliverTime());
}
} else {
DateTime now = DateUtil.date();
// 获取当月第一天
current = DateUtil.beginOfMonth(now).toLocalDateTime().toLocalDate();
}
if (StrUtil.isBlank(shopUser.getBirthDay())) {
return null;
}
if (DateUtil.parseDate(shopUser.getBirthDay()).toLocalDateTime().toLocalDate().isEqual(current)) {
MkBirthdayGiftVO vo = BeanUtil.copyProperties(birthdayGift, MkBirthdayGiftVO.class, "configList");
vo.setConfigList(CollUtil.toList(config));
return vo;
}
}
return null;
}
}