所有跟余额相关模块开关同步开启关闭余额支付

This commit is contained in:
张松
2025-10-24 09:35:38 +08:00
parent 1f34a8c227
commit 5853d2b333
6 changed files with 80 additions and 4 deletions

View File

@@ -5,6 +5,7 @@ import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.io.Serializable;
@@ -17,6 +18,7 @@ import java.io.Serializable;
*/
@Data
@Table("tb_shop_config")
@Accessors(chain = true)
public class ShopConfig implements Serializable {
@Serial
@@ -84,7 +86,7 @@ public class ShopConfig implements Serializable {
*/
private Integer isTableFee;
/**
* 是否启用会员价 1-是 0-否
* 是否启用会员价 1-是 0-否
*/
private Integer isMemberPrice;
/**
@@ -104,4 +106,4 @@ public class ShopConfig implements Serializable {
* '自动清台 支付几分钟后 默认10分钟后'
*/
private Integer tableClearTime;
}
}

View File

@@ -2,6 +2,9 @@ package com.czg.account.service;
import com.czg.account.entity.ShopConfig;
import com.mybatisflex.core.service.IService;
import com.mybatisflex.core.util.LambdaGetter;
import java.util.List;
/**
* 店铺配置扩展
@@ -11,4 +14,5 @@ import com.mybatisflex.core.service.IService;
*/
public interface ShopConfigService extends IService<ShopConfig> {
}
<T> void editStatusByShopIdList(Long mainShopId, Integer isEnable, LambdaGetter<T> property, String useShopType, List<Long> shopIdList);
}

View File

@@ -6,12 +6,16 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSONArray;
import com.czg.account.dto.freeding.FreeDineConfigEditDTO;
import com.czg.account.entity.FreeDineConfig;
import com.czg.account.entity.ShopConfig;
import com.czg.account.service.FreeDineConfigService;
import com.czg.account.service.ShopConfigService;
import com.czg.account.vo.FreeDineConfigVO;
import com.czg.exception.ApiNotPrintException;
import com.czg.service.account.mapper.FreeDineConfigMapper;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
/**
@@ -22,6 +26,10 @@ import org.apache.dubbo.config.annotation.DubboService;
*/
@DubboService
public class FreeDineConfigServiceImpl extends ServiceImpl<FreeDineConfigMapper, FreeDineConfig> implements FreeDineConfigService{
@DubboReference
private ShopConfigService shopConfigService;
@Override
public FreeDineConfigVO getConfig(long shopId) {
FreeDineConfig freeDineConfig = getOne(new QueryWrapper().eq(FreeDineConfig::getShopId, shopId));
@@ -52,6 +60,8 @@ public class FreeDineConfigServiceImpl extends ServiceImpl<FreeDineConfigMapper,
if ("part".equals(freeDineConfigEditDTO.getUseShopType()) && freeDineConfigEditDTO.getShopIdList() != null) {
config.setShopIdList(JSONArray.toJSONString(freeDineConfigEditDTO.getShopIdList()));
}
shopConfigService.editStatusByShopIdList(config.getShopId(), freeDineConfigEditDTO.getEnable() ? 1 : 0, ShopConfig::getIsAccountPay, freeDineConfigEditDTO.getUseShopType(), freeDineConfigEditDTO.getShopIdList());
if (freeDineConfigEditDTO.getUseType() != null) {
config.setUseType(JSONObject.toJSONString(freeDineConfigEditDTO.getUseType()));
}

View File

@@ -8,11 +8,14 @@ import com.czg.service.account.mapper.ShopConfigMapper;
import com.czg.service.account.mapper.ShopInfoMapper;
import com.czg.utils.PageUtil;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.util.LambdaGetter;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 店铺配置扩展
*
@@ -37,4 +40,45 @@ public class ShopConfigServiceImpl extends ServiceImpl<ShopConfigMapper, ShopCon
}
}
@Override
public <T> void editStatusByShopIdList(Long mainShopId, Integer isEnable, LambdaGetter<T> property, String useShopType, List<Long> shopIdList) {
ShopConfig shopConfig = getOne(new QueryWrapper().eq(ShopConfig::getId, mainShopId));
if (shopConfig == null) {
shopConfig = new ShopConfig();
shopConfig.setId(mainShopId);
save(shopConfig);
}
if (!shopIdList.isEmpty()) {
List<Long> extistList = list(new QueryWrapper().in(ShopConfig::getId, shopIdList).select(ShopConfig::getId)).stream().map(ShopConfig::getId).toList();
shopIdList.stream().filter(id -> !extistList.contains(id)).forEach(id -> {
save(new ShopConfig().setId(id).setMainId(mainShopId));
});
}
if (isEnable == 0) {
updateChain().or(or -> {
or.eq(ShopConfig::getMainId, mainShopId);
}).or(or -> {
or.in(ShopConfig::getId, shopIdList);
}).set(property, 0).update();
}else {
if ("all".equals(useShopType)) {
updateChain().or(or -> {
or.eq(ShopConfig::getMainId, mainShopId);
}).or(or -> {
or.in(ShopConfig::getId, shopIdList);
}).set(property, 1).update();
}else {
if (shopIdList.isEmpty()) {
updateChain().eq(ShopConfig::getMainId, mainShopId).set(property, 1).update();
}else {
updateChain().notIn(ShopConfig::getId, shopIdList).set(property, 0).update();
updateChain().in(ShopConfig::getId, shopIdList).set(property, 1).update();
}
}
}
}
}

View File

@@ -5,8 +5,10 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONArray;
import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO;
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.TableValueConstant;
@@ -53,6 +55,8 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
private ShopUserService shopUserService;
@DubboReference
private OrderInfoService orderInfoService;
@DubboReference
private ShopConfigService shopConfigService;
@Resource
private MkConsumeCashbackRecordService consumeCashbackRecordService;
@@ -91,6 +95,9 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
}
}
shopConfigService.editStatusByShopIdList(shopId, consumeDiscountDTO.getIsEnable(), ShopConfig::getIsAccountPay,
consumeDiscountDTO.getUseType(), consumeDiscountDTO.getShopIdList());
if (consumeDiscountDTO.getCashbackStepList() != null && !consumeDiscountDTO.getCashbackStepList().isEmpty()) {
consumeCashback.setCashbackStepList(JSONArray.toJSONString(consumeDiscountDTO.getCashbackStepList()));
}

View File

@@ -4,9 +4,11 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONArray;
import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO;
import com.czg.account.entity.ShopConfig;
import com.czg.account.entity.ShopInfo;
import com.czg.account.entity.ShopUser;
import com.czg.account.service.MemberPointsService;
import com.czg.account.service.ShopConfigService;
import com.czg.account.service.ShopInfoService;
import com.czg.account.service.ShopUserService;
import com.czg.enums.ShopUserFlowBizEnum;
@@ -32,6 +34,7 @@ import com.czg.service.market.mapper.MkShopRechargeMapper;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@@ -60,6 +63,8 @@ public class MkShopRechargeServiceImpl extends ServiceImpl<MkShopRechargeMapper,
private MkShopCouponRecordService shopCouponRecordService;
@DubboReference
private ShopInfoService shopInfoService;
@DubboReference
private ShopConfigService shopConfigService;
@Override
public MkShopRechargeVO detailApp(Long shopId) {
@@ -134,6 +139,10 @@ public class MkShopRechargeServiceImpl extends ServiceImpl<MkShopRechargeMapper,
shopRechargeDetailService.save(mkShopRechargeDetail);
});
}
shopConfigService.editStatusByShopIdList(shopId, shopRechargeDTO.getIsEnable(), ShopConfig::getIsAccountPay,
shopRechargeDTO.getUseType(), shopRechargeDTO.getShopIdList());
return updateById(shopRecharge);
}