生日有礼接口
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package com.czg.service.market.mapper;
|
||||
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.czg.market.entity.MkBirthdayGift;
|
||||
|
||||
/**
|
||||
* 生日有礼 映射层。
|
||||
*
|
||||
* @author zs
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
public interface MkBirthdayGiftMapper extends BaseMapper<MkBirthdayGift> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.czg.service.market.mapper;
|
||||
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.czg.market.entity.MkBirthdayGiftRecordCoupon;
|
||||
|
||||
/**
|
||||
* 映射层。
|
||||
*
|
||||
* @author zs
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
public interface MkBirthdayGiftRecordCouponMapper extends BaseMapper<MkBirthdayGiftRecordCoupon> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.czg.service.market.mapper;
|
||||
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.czg.market.entity.MkBirthdayGiftRecord;
|
||||
|
||||
/**
|
||||
* 生日有礼记录 映射层。
|
||||
*
|
||||
* @author zs
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
public interface MkBirthdayGiftRecordMapper extends BaseMapper<MkBirthdayGiftRecord> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.czg.service.market.service.impl;
|
||||
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import com.czg.market.entity.MkBirthdayGiftRecordCoupon;
|
||||
import com.czg.market.service.MkBirthdayGiftRecordCouponService;
|
||||
import com.czg.service.market.mapper.MkBirthdayGiftRecordCouponMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 服务层实现。
|
||||
*
|
||||
* @author zs
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Service
|
||||
public class MkBirthdayGiftRecordCouponServiceImpl extends ServiceImpl<MkBirthdayGiftRecordCouponMapper, MkBirthdayGiftRecordCoupon> implements MkBirthdayGiftRecordCouponService{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.czg.service.market.service.impl;
|
||||
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import com.czg.market.entity.MkBirthdayGiftRecord;
|
||||
import com.czg.market.service.MkBirthdayGiftRecordService;
|
||||
import com.czg.service.market.mapper.MkBirthdayGiftRecordMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 生日有礼记录 服务层实现。
|
||||
*
|
||||
* @author zs
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Service
|
||||
public class MkBirthdayGiftRecordServiceImpl extends ServiceImpl<MkBirthdayGiftRecordMapper, MkBirthdayGiftRecord> implements MkBirthdayGiftRecordService{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.czg.service.market.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.czg.account.entity.ShopUser;
|
||||
import com.czg.market.dto.MkBirthdayGiftDTO;
|
||||
import com.czg.market.entity.*;
|
||||
import com.czg.market.service.MkBirthdayGiftRecordCouponService;
|
||||
import com.czg.market.service.MkBirthdayGiftRecordService;
|
||||
import com.czg.market.vo.MkBirthdayGiftRecordSummaryVO;
|
||||
import com.czg.market.vo.MkBirthdayGiftRecordVO;
|
||||
import com.czg.market.vo.MkBirthdayGiftVO;
|
||||
import com.czg.utils.MyQueryWrapper;
|
||||
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.service.MkBirthdayGiftService;
|
||||
import com.czg.service.market.mapper.MkBirthdayGiftMapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* 生日有礼 服务层实现。
|
||||
*
|
||||
* @author zs
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Service
|
||||
public class MkBirthdayGiftServiceImpl extends ServiceImpl<MkBirthdayGiftMapper, MkBirthdayGift> implements MkBirthdayGiftService{
|
||||
@Resource
|
||||
private MkBirthdayGiftRecordService birthdayGiftRecordService;
|
||||
@Resource
|
||||
private MkBirthdayGiftRecordCouponService birthdayGiftRecordCouponService;
|
||||
@Override
|
||||
public MkBirthdayGiftVO detail(Long shopId) {
|
||||
MkBirthdayGift gift = getOne(new QueryWrapper().eq(MkBirthdayGift::getMainShopId, shopId));
|
||||
if (gift == null) {
|
||||
gift = new MkBirthdayGift();
|
||||
gift.setMainShopId(shopId);
|
||||
save(gift);
|
||||
gift = getOne(new QueryWrapper().eq(MkBirthdayGift::getMainShopId, shopId));
|
||||
}
|
||||
MkBirthdayGiftVO vo = BeanUtil.copyProperties(gift, MkBirthdayGiftVO.class, "configList");
|
||||
if (StrUtil.isNotBlank(gift.getConfigList())) {
|
||||
vo.setConfigList(JSONArray.parseArray(gift.getConfigList()).toJavaList(MkBirthdayGiftConfig.class));
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean edit(Long shopId, MkBirthdayGiftDTO giftDTO) {
|
||||
MkBirthdayGift birthdayGift = getOne(new QueryWrapper().eq(MkBirthdayGift::getMainShopId, shopId));
|
||||
BeanUtil.copyProperties(giftDTO, birthdayGift);
|
||||
if (giftDTO.getConfigList() != null && !giftDTO.getConfigList().isEmpty()) {
|
||||
birthdayGift.setConfigList(JSONArray.toJSONString(giftDTO.getConfigList()));
|
||||
}
|
||||
return updateById(birthdayGift);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<MkBirthdayGiftRecordVO> getRecord(Long shopId, String key, LocalDateTime dateTime) {
|
||||
QueryWrapper queryWrapper = new MyQueryWrapper()
|
||||
.selectAll(MkBirthdayGiftRecord.class)
|
||||
.select(ShopUser::getNickName, ShopUser::getPhone)
|
||||
.eq(MkBirthdayGiftRecord::getMainShopId, shopId)
|
||||
.leftJoin(ShopUser.class).on(ShopUser::getId, MkBirthdayGiftRecord::getShopUserId);
|
||||
if (StrUtil.isNotBlank(key)) {
|
||||
queryWrapper.and(and -> {
|
||||
and.or(or -> {
|
||||
or.like(ShopUser::getNickName, key);
|
||||
}).or(or -> {
|
||||
or.like(ShopUser::getPhone, key);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Page<MkBirthdayGiftRecordVO> recordVOPage = birthdayGiftRecordService.pageAs(PageUtil.buildPage(), queryWrapper, MkBirthdayGiftRecordVO.class);
|
||||
recordVOPage.getRecords().forEach(item -> {
|
||||
item.setCouponList(new ArrayList<>());
|
||||
item.setUsedCouponList(new ArrayList<>());
|
||||
birthdayGiftRecordCouponService.list(new QueryWrapper().eq(MkBirthdayGiftRecordCoupon::getRecordId, item.getId())).forEach(info -> {
|
||||
if ("give".equals(info.getType())) {
|
||||
item.getCouponList().add(info);
|
||||
}else {
|
||||
item.getUsedCouponList().add(info);
|
||||
}
|
||||
});
|
||||
});
|
||||
return recordVOPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MkBirthdayGiftRecordSummaryVO summary(Long shopId, String key, LocalDateTime dateTime) {
|
||||
QueryWrapper queryWrapper = new MyQueryWrapper()
|
||||
.leftJoin(MkBirthdayGiftRecord.class).on(MkBirthdayGiftRecord::getId, MkBirthdayGiftRecordCoupon::getRecordId)
|
||||
.select("sum( IF(type = 'give', num, 0)) as totalNum", "sum( IF(type = 'consume', num, 0)) as usedNum")
|
||||
.eq(MkBirthdayGiftRecord::getMainShopId, shopId)
|
||||
.leftJoin(ShopUser.class).on(ShopUser::getId, MkBirthdayGiftRecord::getShopUserId);
|
||||
if (StrUtil.isNotBlank(key)) {
|
||||
queryWrapper.and(and -> {
|
||||
and.or(or -> {
|
||||
or.like(ShopUser::getNickName, key);
|
||||
}).or(or -> {
|
||||
or.like(ShopUser::getPhone, key);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return birthdayGiftRecordCouponService.getOneAsOpt(queryWrapper, MkBirthdayGiftRecordSummaryVO.class).orElseGet(MkBirthdayGiftRecordSummaryVO::new);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.czg.service.market.mapper.MkBirthdayGiftMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.czg.service.market.mapper.MkBirthdayGiftRecordCouponMapper">
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.czg.service.market.mapper.MkBirthdayGiftRecordMapper">
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user