拼团商品
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.GbWare;
|
||||
|
||||
/**
|
||||
* 拼团商品 映射层。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-12-15
|
||||
*/
|
||||
public interface GbWareMapper extends BaseMapper<GbWare> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.czg.service.market.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.czg.account.service.ShopInfoService;
|
||||
import com.czg.exception.CzgException;
|
||||
import com.czg.market.dto.GbWareDTO;
|
||||
import com.czg.market.dto.GbWareQueryParamDTO;
|
||||
import com.czg.market.entity.GbWare;
|
||||
import com.czg.market.service.GbWareService;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.service.market.mapper.GbWareMapper;
|
||||
import com.czg.utils.AssertUtil;
|
||||
import com.czg.utils.CzgStrUtils;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 拼团商品 服务层实现。
|
||||
*
|
||||
* @author ww
|
||||
* @since 2025-12-15
|
||||
*/
|
||||
@Service
|
||||
public class GbWareServiceImpl extends ServiceImpl<GbWareMapper, GbWare> implements GbWareService {
|
||||
@DubboReference
|
||||
private ShopInfoService shopInfoService;
|
||||
|
||||
@Override
|
||||
public Page<GbWare> getGbWarePage(GbWareQueryParamDTO param, Long shopId) {
|
||||
Long mainShopId = shopInfoService.getMainIdByShopId(shopId);
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq(GbWare::getShopId, mainShopId)
|
||||
.eq(GbWare::getIsDel, 0)
|
||||
.eq(GbWare::getOnlineStatus, param.getOnlineStatus())
|
||||
.like(GbWare::getWareName, CzgStrUtils.getStrOrNull(param.getWareName()))
|
||||
.between(GbWare::getCreateTime, param.getStartTime(), param.getEndTime())
|
||||
.orderBy(GbWare::getCreateTime).desc();
|
||||
|
||||
queryWrapper.and(q -> {
|
||||
q.eq(GbWare::getUseShopType, "all").or(q1 -> {
|
||||
q1.eq(GbWare::getUseShopType, "only").eq(GbWare::getShopId, shopId);
|
||||
}).or(q2 -> {
|
||||
q2.eq(GbWare::getUseShopType, "custom").and(q3 -> {
|
||||
q3.eq(GbWare::getShopId, shopId).or("FIND_IN_SET( " + shopId + ", use_shops ) > 0");
|
||||
});
|
||||
});
|
||||
});
|
||||
return page(Page.of(param.getPage(), param.getSize()), queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addGbWare(GbWareDTO param) {
|
||||
if ("custom".equals(param.getUseShopType())) {
|
||||
AssertUtil.isBlank(param.getUseShops(), "请配置可用门店");
|
||||
}
|
||||
GbWare gbWare = BeanUtil.toBean(param, GbWare.class);
|
||||
return save(gbWare);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean editGbWareOnlineStatus(Long id, Integer onlineStatus) {
|
||||
GbWare gbWare = new GbWare();
|
||||
gbWare.setOnlineStatus(onlineStatus);
|
||||
return update(gbWare, query().eq(GbWare::getId, id).eq(GbWare::getShopId, StpKit.USER.getShopId()));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean updateGbWareById(GbWareDTO param) {
|
||||
checkStatus(param.getId());
|
||||
if ("custom".equals(param.getUseShopType())) {
|
||||
AssertUtil.isBlank(param.getUseShops(), "请配置可用门店");
|
||||
}
|
||||
GbWare gbWare = BeanUtil.toBean(param, GbWare.class);
|
||||
return updateById(gbWare);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteGbWare(Long id) {
|
||||
checkStatus(id);
|
||||
return remove(query().eq(GbWare::getId, id).eq(GbWare::getShopId, StpKit.USER.getShopId()));
|
||||
}
|
||||
|
||||
private void checkStatus(Long id) {
|
||||
GbWare ware = getById(id);
|
||||
if (ware.getOnlineStatus() == 1) {
|
||||
throw new CzgException("操作失败,请下架后,重试");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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.GbWareMapper">
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user