充值兑换码相关接口

This commit is contained in:
张松
2025-10-21 16:04:17 +08:00
parent 5b6c1a24cd
commit 08814a21a3
6 changed files with 141 additions and 15 deletions

View File

@@ -3,10 +3,12 @@ package com.czg.controller.admin;
import com.czg.annotation.SaAdminCheckPermission; import com.czg.annotation.SaAdminCheckPermission;
import com.czg.annotation.SaCheckMainShop; import com.czg.annotation.SaCheckMainShop;
import com.czg.constant.TableValueConstant; import com.czg.constant.TableValueConstant;
import com.czg.market.dto.MkEnableConfigDTO;
import com.czg.market.dto.MkRechargeRedemptionConfigDTO; import com.czg.market.dto.MkRechargeRedemptionConfigDTO;
import com.czg.market.entity.MkRechargeRedemptionConfig; import com.czg.market.entity.MkRechargeRedemptionConfig;
import com.czg.market.service.MkEnableConfigService; import com.czg.market.service.MkEnableConfigService;
import com.czg.market.service.MkRechargeRedemptionConfigService; import com.czg.market.service.MkRechargeRedemptionConfigService;
import com.czg.market.vo.MkEnableConfigVO;
import com.czg.market.vo.MkRechargeRedemptionCodeVO; import com.czg.market.vo.MkRechargeRedemptionCodeVO;
import com.czg.market.vo.MkRechargeRedemptionConfigVO; import com.czg.market.vo.MkRechargeRedemptionConfigVO;
import com.czg.resp.CzgResult; import com.czg.resp.CzgResult;
@@ -35,19 +37,19 @@ public class RechargeRedemptionController {
private MkEnableConfigService enableConfigService; private MkEnableConfigService enableConfigService;
/** /**
* 配置开关 * 开关。可用门店修改
*/ */
@SaAdminCheckPermission(value = "rechargeRedemption:enable", name = "充值兑换状态修改") @SaAdminCheckPermission(value = "rechargeRedemption:enable", name = "充值兑换状态修改")
@PutMapping("/{enable}") @PutMapping("/enable")
public CzgResult<Boolean> upEnable(@PathVariable Integer enable) { public CzgResult<Boolean> upEnable(@Validated @RequestBody MkEnableConfigDTO dto) {
return CzgResult.success(enableConfigService.upEnable(StpKit.USER.getMainShopId(),StpKit.USER.getLoginIdAsLong(), enable, TableValueConstant.EnableConfig.Type.RECHARGE_REDEMPTION)); return CzgResult.success(enableConfigService.upEnable(StpKit.USER.getMainShopId(),StpKit.USER.getLoginIdAsLong(), dto, TableValueConstant.EnableConfig.Type.RECHARGE_REDEMPTION));
} }
/** /**
* 开关状态 * 开关状态,可用门店详情
*/ */
@GetMapping("/enable/status") @GetMapping("/enable/status")
public CzgResult<Integer> upEnable() { public CzgResult<MkEnableConfigVO> upEnable() {
return CzgResult.success(enableConfigService.detail(StpKit.USER.getMainShopId(), StpKit.USER.getLoginIdAsLong(), TableValueConstant.EnableConfig.Type.RECHARGE_REDEMPTION)); return CzgResult.success(enableConfigService.detail(StpKit.USER.getMainShopId(), StpKit.USER.getLoginIdAsLong(), TableValueConstant.EnableConfig.Type.RECHARGE_REDEMPTION));
} }

View File

@@ -0,0 +1,40 @@
package com.czg.market.dto;
import com.czg.market.entity.MkConsumeCashbackStep;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 新客立减 实体类。
*
* @author zs
* @since 2025-09-16
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MkEnableConfigDTO implements Serializable {
/**
* 可用门店列表
*/
private List<Long> shopIdList;
/**
* 类型 all 全部可用 part部分门店可用
*/
private String useType;
/**
* 是否启用
*/
private Integer isEnable;
}

View File

@@ -8,6 +8,7 @@ import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.io.Serial; import java.io.Serial;
import java.util.List;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
@@ -59,4 +60,7 @@ public class MkEnableConfig implements Serializable {
private Long shopId; private Long shopId;
private String useType;
private String shopIdList;
} }

View File

@@ -1,6 +1,8 @@
package com.czg.market.service; package com.czg.market.service;
import com.czg.constant.TableValueConstant; import com.czg.constant.TableValueConstant;
import com.czg.market.dto.MkEnableConfigDTO;
import com.czg.market.vo.MkEnableConfigVO;
import com.mybatisflex.core.service.IService; import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkEnableConfig; import com.czg.market.entity.MkEnableConfig;
@@ -12,6 +14,6 @@ import com.czg.market.entity.MkEnableConfig;
*/ */
public interface MkEnableConfigService extends IService<MkEnableConfig> { public interface MkEnableConfigService extends IService<MkEnableConfig> {
Boolean upEnable(Long mainShopId, Long shopId, Integer enable, TableValueConstant.EnableConfig.Type type); Boolean upEnable(Long mainShopId, Long shopId, MkEnableConfigDTO dto, TableValueConstant.EnableConfig.Type type);
Integer detail(Long mainShopId, Long shopId, TableValueConstant.EnableConfig.Type type); MkEnableConfigVO detail(Long mainShopId, Long shopId, TableValueConstant.EnableConfig.Type type);
} }

View File

@@ -0,0 +1,65 @@
package com.czg.market.vo;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* 兑换码明细 实体类。
*
* @author zs
* @since 2025-10-21
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("mk_enable_config")
public class MkEnableConfigVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 主店id
*/
private Long mainShopId;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 修改时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
/**
* 模块类型
*/
private String type;
private Integer isEnable;
private Long shopId;
private String useType;
private List<Long> shopIdList;
}

View File

@@ -1,6 +1,12 @@
package com.czg.service.market.service.impl; 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.alibaba.fastjson2.JSONObject;
import com.czg.constant.TableValueConstant; import com.czg.constant.TableValueConstant;
import com.czg.market.dto.MkEnableConfigDTO;
import com.czg.market.vo.MkEnableConfigVO;
import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl; import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.czg.market.entity.MkEnableConfig; import com.czg.market.entity.MkEnableConfig;
@@ -18,7 +24,7 @@ import org.springframework.stereotype.Service;
public class MkEnableConfigServiceImpl extends ServiceImpl<MkEnableConfigMapper, MkEnableConfig> implements MkEnableConfigService{ public class MkEnableConfigServiceImpl extends ServiceImpl<MkEnableConfigMapper, MkEnableConfig> implements MkEnableConfigService{
@Override @Override
public Integer detail(Long mainShopId, Long shopId, TableValueConstant.EnableConfig.Type type) { public MkEnableConfigVO detail(Long mainShopId, Long shopId, TableValueConstant.EnableConfig.Type type) {
MkEnableConfig one = getOne(new QueryWrapper().eq(MkEnableConfig::getMainShopId, mainShopId).eq(MkEnableConfig::getType, type.getCode())); MkEnableConfig one = getOne(new QueryWrapper().eq(MkEnableConfig::getMainShopId, mainShopId).eq(MkEnableConfig::getType, type.getCode()));
if (one == null) { if (one == null) {
one = new MkEnableConfig(); one = new MkEnableConfig();
@@ -27,22 +33,29 @@ public class MkEnableConfigServiceImpl extends ServiceImpl<MkEnableConfigMapper,
one.setShopId(shopId); one.setShopId(shopId);
save(one); save(one);
} }
return one.getIsEnable(); MkEnableConfigVO configVO = BeanUtil.copyProperties(one, MkEnableConfigVO.class);
if (StrUtil.isNotBlank(one.getShopIdList())) {
configVO.setShopIdList(JSONArray.parseArray(one.getShopIdList()).toList(Long.class));
}
return configVO;
} }
@Override @Override
public Boolean upEnable(Long mainShopId, Long shopId, Integer enable, TableValueConstant.EnableConfig.Type type) { public Boolean upEnable(Long mainShopId, Long shopId, MkEnableConfigDTO dto, TableValueConstant.EnableConfig.Type type) {
MkEnableConfig one = getOne(new QueryWrapper().eq(MkEnableConfig::getMainShopId, mainShopId).eq(MkEnableConfig::getType, type.getCode())); MkEnableConfig one = getOne(new QueryWrapper().eq(MkEnableConfig::getMainShopId, mainShopId).eq(MkEnableConfig::getType, type.getCode()));
if (one == null) { if (one == null) {
one = new MkEnableConfig(); one = new MkEnableConfig();
one.setMainShopId(mainShopId); one.setMainShopId(mainShopId);
one.setIsEnable(enable); one.setIsEnable(dto.getIsEnable());
one.setShopId(shopId); one.setShopId(shopId);
save(one); save(one);
}else { }else {
one.setIsEnable(enable); one.setIsEnable(dto.getIsEnable());
updateById(one);
} }
return true;
if ("part".equals(dto.getUseType()) && dto.getShopIdList() != null) {
one.setShopIdList(JSONObject.toJSONString(dto.getShopIdList()));
}
return updateById(one);
} }
} }