diff --git a/cash-api/order-server/src/main/java/com/czg/controller/admin/GbWareController.java b/cash-api/order-server/src/main/java/com/czg/controller/admin/GbWareController.java index b9e5e2dbf..cdd05ae8a 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/admin/GbWareController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/admin/GbWareController.java @@ -34,7 +34,7 @@ public class GbWareController { @SaAdminCheckPermission(parentName = "拼团商品", value = "ware:info:up", name = "拼团商品-修改") public CzgResult upShopConfig(@RequestBody GbWareDTO param) { AssertUtil.isNull(param.getOnlineStatus(), "操作失败,请选择状态"); - return CzgResult.success(wareService.upShopConfig(param.getOnlineStatus(), StpKit.USER.getShopId())); + return CzgResult.success(gbOrderService.upShopConfig(param.getOnlineStatus(), StpKit.USER.getShopId())); } @GetMapping("/getGbWarePage") diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopConfig.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopConfig.java index 62ba02258..4774614d0 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopConfig.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopConfig.java @@ -119,6 +119,12 @@ public class ShopConfig implements Serializable { * 上菜时间 分钟 */ private Integer serveTime; + /** + * 拼团开关 1-是 0-否 + */ + private Integer isGroupBuy; + + private String dingAppKey; private String dingAppSecret; diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopInfo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopInfo.java index dd5809749..c2177d048 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopInfo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopInfo.java @@ -350,6 +350,8 @@ public class ShopInfo implements Serializable { */ @Column(ignore = true) private Integer serveTime; + @Column(ignore = true) + private Integer isGroupBuy; /** * 运营端余额 diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/GbWare.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/GbWare.java index e4edcc79a..41f923a7d 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/GbWare.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/GbWare.java @@ -78,6 +78,11 @@ public class GbWare implements Serializable { */ private BigDecimal groupPrice; + /** + * 拼团库存 + */ + private Integer groupedNum; + /** * 成团人数 最小为1 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/GbWareService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/GbWareService.java index c4b58c356..d4605456f 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/GbWareService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/GbWareService.java @@ -14,9 +14,6 @@ import com.mybatisflex.core.service.IService; */ public interface GbWareService extends IService { - //操作店铺功能开关 - boolean upShopConfig(Integer status, Long shopId); - //拼团 活动 注意分店 主店的 问题 Page getGbWarePage(GbWareQueryParamDTO param, Long shopId); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/service/GbOrderService.java b/cash-common/cash-common-service/src/main/java/com/czg/order/service/GbOrderService.java index 7d4c727f4..a26f7fb16 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/service/GbOrderService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/service/GbOrderService.java @@ -20,6 +20,8 @@ import java.util.Map; */ public interface GbOrderService extends IService { + boolean upShopConfig(Integer status, Long shopId); + //列表 详细列表 detail的 Page getGbOrderPage(GbOrderQueryParam param); diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/GbWareServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/GbWareServiceImpl.java index f1abbc781..cd6976cba 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/GbWareServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/GbWareServiceImpl.java @@ -14,7 +14,6 @@ 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.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; /** @@ -29,13 +28,6 @@ public class GbWareServiceImpl extends ServiceImpl impleme private ShopInfoService shopInfoService; - @CacheEvict(cacheNames = "shopInfo", key = "#shopId") - @Override - public boolean upShopConfig(Integer status, Long shopId) { - - return false; - } - @Override public Page getGbWarePage(GbWareQueryParamDTO param, Long shopId) { Long mainShopId = shopInfoService.getMainIdByShopId(shopId); @@ -88,6 +80,6 @@ public class GbWareServiceImpl extends ServiceImpl impleme private void checkStatus(Long id) { GbWare ware = getById(id); - AssertUtil.isNotEqual(ware.getOnlineStatus(), 1, "操作失败,请下架后,重试"); + AssertUtil.isNotEqual(ware.getOnlineStatus(), 0, "操作失败,请下架后,重试"); } } diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/GbOrderServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/GbOrderServiceImpl.java index 974be4723..9f96490bc 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/GbOrderServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/GbOrderServiceImpl.java @@ -2,10 +2,13 @@ package com.czg.service.order.service.impl; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; +import com.czg.account.entity.ShopConfig; import com.czg.account.entity.ShopInfo; import com.czg.account.entity.ShopUser; +import com.czg.account.service.ShopConfigService; import com.czg.account.service.ShopInfoService; import com.czg.account.service.ShopUserService; +import com.czg.constant.MarketConstants; import com.czg.enums.OrderNoPrefixEnum; import com.czg.enums.YesNoEnum; import com.czg.exception.CzgException; @@ -29,6 +32,7 @@ import com.czg.service.order.mapper.GbOrderMapper; import com.czg.service.order.service.PayService; import com.czg.utils.AssertUtil; import com.czg.utils.CzgRandomUtils; +import com.czg.utils.FunUtils; import com.czg.utils.PageUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -38,6 +42,7 @@ import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -69,6 +74,21 @@ public class GbOrderServiceImpl extends ServiceImpl impl @Lazy private PayService payService; + @DubboReference + private ShopConfigService shopConfigService; + + @CacheEvict(cacheNames = "shopInfo", key = "#shopId") + @Override + public boolean upShopConfig(Integer status, Long shopId) { + ShopConfig shopConfig = new ShopConfig(); + shopConfig.setIsGroupBuy(status); + boolean update = shopConfigService.update(shopConfig, query().eq(ShopConfig::getId, shopId)); + if (update && status == 0) { + shopDownRefund(shopId); + } + return update; + } + @Override public Page getGbOrderPage(GbOrderQueryParam param) { Long mainIdByShopId = shopInfoService.getMainIdByShopId(param.getShopId()); @@ -133,7 +153,7 @@ public class GbOrderServiceImpl extends ServiceImpl impl if (ware.getOnlineStatus() == 0) { throw new CzgException("拼团失败,商品已下架"); } - if (ware.getLimitBuyNum() > param.getNumber()) { + if (ware.getLimitBuyNum() != MarketConstants.Num.NOT_LIMIT && ware.getLimitBuyNum() > param.getNumber()) { throw new CzgException("拼团失败,该商品每人限购" + ware.getLimitBuyNum() + "份"); } if (StrUtil.isNotBlank(param.getGroupOrderNo())) { @@ -383,7 +403,7 @@ public class GbOrderServiceImpl extends ServiceImpl impl .eq(GbOrderDetail::getGroupOrderNo, gbOrder.getGroupOrderNo()) .ne(GbOrderDetail::getStatus, "已退款") .eq(GbOrderDetail::getIsDel, YesNoEnum.NO.value())); - details.forEach(item -> refundAmount(item, reason)); + details.forEach(item -> FunUtils.safeRunVoid(() -> refundAmount(item, reason), "订单详情{}退款失败", item.getId())); return true; }