1
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
package com.ruoyi.jarvis.domain;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* 商品错误提示对象 prd_error_tip
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-01-01
|
||||
*/
|
||||
public class PrdErrorTip extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键ID */
|
||||
private Long id;
|
||||
|
||||
/** 错误代码 */
|
||||
@Excel(name = "错误代码")
|
||||
private String errCode;
|
||||
|
||||
/** 错误子代码 */
|
||||
@Excel(name = "错误子代码")
|
||||
private String errSubCode;
|
||||
|
||||
/** 错误消息 */
|
||||
@Excel(name = "错误消息")
|
||||
private String errMsg;
|
||||
|
||||
/** 错误内容 */
|
||||
@Excel(name = "错误内容")
|
||||
private String content;
|
||||
|
||||
/** 状态 */
|
||||
@Excel(name = "状态", readConverterExp = "0=禁用,1=启用")
|
||||
private Integer status;
|
||||
|
||||
public void setId(Long id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setErrCode(String errCode)
|
||||
{
|
||||
this.errCode = errCode;
|
||||
}
|
||||
|
||||
public String getErrCode()
|
||||
{
|
||||
return errCode;
|
||||
}
|
||||
|
||||
public void setErrSubCode(String errSubCode)
|
||||
{
|
||||
this.errSubCode = errSubCode;
|
||||
}
|
||||
|
||||
public String getErrSubCode()
|
||||
{
|
||||
return errSubCode;
|
||||
}
|
||||
|
||||
public void setErrMsg(String errMsg)
|
||||
{
|
||||
this.errMsg = errMsg;
|
||||
}
|
||||
|
||||
public String getErrMsg()
|
||||
{
|
||||
return errMsg;
|
||||
}
|
||||
|
||||
public void setContent(String content)
|
||||
{
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public String getContent()
|
||||
{
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setStatus(Integer status)
|
||||
{
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public Integer getStatus()
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("errCode", getErrCode())
|
||||
.append("errSubCode", getErrSubCode())
|
||||
.append("errMsg", getErrMsg())
|
||||
.append("content", getContent())
|
||||
.append("status", getStatus())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.ruoyi.jarvis.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.jarvis.domain.PrdErrorTip;
|
||||
|
||||
/**
|
||||
* 商品错误提示Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-01-01
|
||||
*/
|
||||
public interface PrdErrorTipMapper
|
||||
{
|
||||
/**
|
||||
* 查询商品错误提示
|
||||
*
|
||||
* @param id 商品错误提示主键
|
||||
* @return 商品错误提示
|
||||
*/
|
||||
public PrdErrorTip selectPrdErrorTipById(Long id);
|
||||
|
||||
/**
|
||||
* 查询商品错误提示列表
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 商品错误提示集合
|
||||
*/
|
||||
public List<PrdErrorTip> selectPrdErrorTipList(PrdErrorTip prdErrorTip);
|
||||
|
||||
/**
|
||||
* 新增商品错误提示
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertPrdErrorTip(PrdErrorTip prdErrorTip);
|
||||
|
||||
/**
|
||||
* 修改商品错误提示
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 结果
|
||||
*/
|
||||
public int updatePrdErrorTip(PrdErrorTip prdErrorTip);
|
||||
|
||||
/**
|
||||
* 删除商品错误提示
|
||||
*
|
||||
* @param id 商品错误提示主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deletePrdErrorTipById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除商品错误提示
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deletePrdErrorTipByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 根据错误代码和子代码查询错误提示
|
||||
*
|
||||
* @param errCode 错误代码
|
||||
* @param errSubCode 错误子代码
|
||||
* @return 商品错误提示
|
||||
*/
|
||||
public PrdErrorTip selectPrdErrorTipByCode(String errCode, String errSubCode);
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.jarvis.service;
|
||||
|
||||
/**
|
||||
* 商家编码自动生成服务接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-01-01
|
||||
*/
|
||||
public interface IOuterIdGeneratorService
|
||||
{
|
||||
/**
|
||||
* 根据SKUID生成商家编码
|
||||
*
|
||||
* @param skuid SKUID
|
||||
* @return 生成的商家编码
|
||||
*/
|
||||
public String generateOuterId(String skuid);
|
||||
|
||||
/**
|
||||
* 根据SKUID和自定义前缀生成商家编码
|
||||
*
|
||||
* @param skuid SKUID
|
||||
* @param prefix 自定义前缀
|
||||
* @return 生成的商家编码
|
||||
*/
|
||||
public String generateOuterId(String skuid, String prefix);
|
||||
|
||||
/**
|
||||
* 重置SKUID的计数器
|
||||
*
|
||||
* @param skuid SKUID
|
||||
* @return 是否成功
|
||||
*/
|
||||
public boolean resetCounter(String skuid);
|
||||
|
||||
/**
|
||||
* 获取SKUID的当前计数器值
|
||||
*
|
||||
* @param skuid SKUID
|
||||
* @return 当前计数器值
|
||||
*/
|
||||
public Long getCurrentCounter(String skuid);
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.ruoyi.jarvis.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.jarvis.domain.PrdErrorTip;
|
||||
|
||||
/**
|
||||
* 商品错误提示Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-01-01
|
||||
*/
|
||||
public interface IPrdErrorTipService
|
||||
{
|
||||
/**
|
||||
* 查询商品错误提示
|
||||
*
|
||||
* @param id 商品错误提示主键
|
||||
* @return 商品错误提示
|
||||
*/
|
||||
public PrdErrorTip selectPrdErrorTipById(Long id);
|
||||
|
||||
/**
|
||||
* 查询商品错误提示列表
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 商品错误提示集合
|
||||
*/
|
||||
public List<PrdErrorTip> selectPrdErrorTipList(PrdErrorTip prdErrorTip);
|
||||
|
||||
/**
|
||||
* 新增商品错误提示
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertPrdErrorTip(PrdErrorTip prdErrorTip);
|
||||
|
||||
/**
|
||||
* 修改商品错误提示
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 结果
|
||||
*/
|
||||
public int updatePrdErrorTip(PrdErrorTip prdErrorTip);
|
||||
|
||||
/**
|
||||
* 批量删除商品错误提示
|
||||
*
|
||||
* @param ids 需要删除的商品错误提示主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deletePrdErrorTipByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除商品错误提示信息
|
||||
*
|
||||
* @param id 商品错误提示主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deletePrdErrorTipById(Long id);
|
||||
|
||||
/**
|
||||
* 根据错误代码和子代码查询错误提示
|
||||
*
|
||||
* @param errCode 错误代码
|
||||
* @param errSubCode 错误子代码
|
||||
* @return 商品错误提示
|
||||
*/
|
||||
public PrdErrorTip selectPrdErrorTipByCode(String errCode, String errSubCode);
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.ruoyi.jarvis.service.impl;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.jarvis.service.IOuterIdGeneratorService;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* 商家编码自动生成服务实现类
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-01-01
|
||||
*/
|
||||
@Service
|
||||
public class OuterIdGeneratorServiceImpl implements IOuterIdGeneratorService
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(OuterIdGeneratorServiceImpl.class);
|
||||
|
||||
@Autowired
|
||||
private RedisTemplate<String, Object> redisTemplate;
|
||||
|
||||
// Redis key前缀
|
||||
private static final String REDIS_KEY_PREFIX = "outer_id_counter:";
|
||||
|
||||
// 默认编号长度
|
||||
private static final int DEFAULT_NUMBER_LENGTH = 3;
|
||||
|
||||
// 默认编号格式
|
||||
private static final String DEFAULT_NUMBER_FORMAT = "%03d";
|
||||
|
||||
/**
|
||||
* 根据SKUID生成商家编码
|
||||
*
|
||||
* @param skuid SKUID
|
||||
* @return 生成的商家编码
|
||||
*/
|
||||
@Override
|
||||
public String generateOuterId(String skuid) {
|
||||
if (StringUtils.isEmpty(skuid)) {
|
||||
log.warn("SKUID为空,无法生成商家编码");
|
||||
return null;
|
||||
}
|
||||
|
||||
return generateOuterId(skuid, skuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据SKUID和自定义前缀生成商家编码
|
||||
*
|
||||
* @param skuid SKUID
|
||||
* @param prefix 自定义前缀
|
||||
* @return 生成的商家编码
|
||||
*/
|
||||
@Override
|
||||
public String generateOuterId(String skuid, String prefix) {
|
||||
if (StringUtils.isEmpty(skuid) || StringUtils.isEmpty(prefix)) {
|
||||
log.warn("SKUID或前缀为空,无法生成商家编码");
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
// 生成Redis key
|
||||
String redisKey = REDIS_KEY_PREFIX + skuid;
|
||||
|
||||
// 递增计数器
|
||||
Long counter = redisTemplate.opsForValue().increment(redisKey);
|
||||
|
||||
// 格式化编号
|
||||
String formattedNumber = String.format(DEFAULT_NUMBER_FORMAT, counter);
|
||||
|
||||
// 生成商家编码
|
||||
String outerId = prefix + formattedNumber;
|
||||
|
||||
log.info("成功生成商家编码: skuid={}, counter={}, outerId={}", skuid, counter, outerId);
|
||||
|
||||
return outerId;
|
||||
} catch (Exception e) {
|
||||
log.error("生成商家编码失败: skuid={}, prefix={}", skuid, prefix, e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置SKUID的计数器
|
||||
*
|
||||
* @param skuid SKUID
|
||||
* @return 是否成功
|
||||
*/
|
||||
@Override
|
||||
public boolean resetCounter(String skuid) {
|
||||
if (StringUtils.isEmpty(skuid)) {
|
||||
log.warn("SKUID为空,无法重置计数器");
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
String redisKey = REDIS_KEY_PREFIX + skuid;
|
||||
redisTemplate.delete(redisKey);
|
||||
log.info("成功重置计数器: skuid={}", skuid);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
log.error("重置计数器失败: skuid={}", skuid, e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取SKUID的当前计数器值
|
||||
*
|
||||
* @param skuid SKUID
|
||||
* @return 当前计数器值
|
||||
*/
|
||||
@Override
|
||||
public Long getCurrentCounter(String skuid) {
|
||||
if (StringUtils.isEmpty(skuid)) {
|
||||
log.warn("SKUID为空,无法获取计数器值");
|
||||
return 0L;
|
||||
}
|
||||
|
||||
try {
|
||||
String redisKey = REDIS_KEY_PREFIX + skuid;
|
||||
Object value = redisTemplate.opsForValue().get(redisKey);
|
||||
|
||||
if (value == null) {
|
||||
return 0L;
|
||||
}
|
||||
|
||||
if (value instanceof Number) {
|
||||
return ((Number) value).longValue();
|
||||
}
|
||||
|
||||
return Long.valueOf(value.toString());
|
||||
} catch (Exception e) {
|
||||
log.error("获取计数器值失败: skuid={}", skuid, e);
|
||||
return 0L;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.ruoyi.jarvis.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.jarvis.mapper.PrdErrorTipMapper;
|
||||
import com.ruoyi.jarvis.domain.PrdErrorTip;
|
||||
import com.ruoyi.jarvis.service.IPrdErrorTipService;
|
||||
|
||||
/**
|
||||
* 商品错误提示Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-01-01
|
||||
*/
|
||||
@Service
|
||||
public class PrdErrorTipServiceImpl implements IPrdErrorTipService
|
||||
{
|
||||
@Autowired
|
||||
private PrdErrorTipMapper prdErrorTipMapper;
|
||||
|
||||
/**
|
||||
* 查询商品错误提示
|
||||
*
|
||||
* @param id 商品错误提示主键
|
||||
* @return 商品错误提示
|
||||
*/
|
||||
@Override
|
||||
public PrdErrorTip selectPrdErrorTipById(Long id)
|
||||
{
|
||||
return prdErrorTipMapper.selectPrdErrorTipById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商品错误提示列表
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 商品错误提示
|
||||
*/
|
||||
@Override
|
||||
public List<PrdErrorTip> selectPrdErrorTipList(PrdErrorTip prdErrorTip)
|
||||
{
|
||||
return prdErrorTipMapper.selectPrdErrorTipList(prdErrorTip);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增商品错误提示
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertPrdErrorTip(PrdErrorTip prdErrorTip)
|
||||
{
|
||||
return prdErrorTipMapper.insertPrdErrorTip(prdErrorTip);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商品错误提示
|
||||
*
|
||||
* @param prdErrorTip 商品错误提示
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updatePrdErrorTip(PrdErrorTip prdErrorTip)
|
||||
{
|
||||
return prdErrorTipMapper.updatePrdErrorTip(prdErrorTip);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除商品错误提示
|
||||
*
|
||||
* @param ids 需要删除的商品错误提示主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deletePrdErrorTipByIds(Long[] ids)
|
||||
{
|
||||
return prdErrorTipMapper.deletePrdErrorTipByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除商品错误提示信息
|
||||
*
|
||||
* @param id 商品错误提示主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deletePrdErrorTipById(Long id)
|
||||
{
|
||||
return prdErrorTipMapper.deletePrdErrorTipById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据错误代码和子代码查询错误提示
|
||||
*
|
||||
* @param errCode 错误代码
|
||||
* @param errSubCode 错误子代码
|
||||
* @return 商品错误提示
|
||||
*/
|
||||
@Override
|
||||
public PrdErrorTip selectPrdErrorTipByCode(String errCode, String errSubCode)
|
||||
{
|
||||
return prdErrorTipMapper.selectPrdErrorTipByCode(errCode, errSubCode);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user