排序
针对查询出数据列表或树形结构数据后,对数据进行移动并更新移动后位置。还有很多优化空间,有更好的,可以分享下,共同进步。
1、列表排序
/**
* 列表 排序方法
* <p>
* 适用范围,列表形式,操作一次 上移一位 或下一位
*
* @param primaryKeyValue 主键id数据
* @param upDown 上移或下移标识
* @param andList where条件中name=key部分参数
* @param classSortName 实体类中排序字段名称
* @param databasesSortName 数据库中排序字段数据
* @param classPrimaryKeyName 主实体类中键名称
* @param databasesPrimaryKeyName 数据库中主键名称
* @param clazz 实体类class
* @return 是否
*/
public static boolean listSortUtil(Object primaryKeyValue, Integer upDown, List<Map<String, Object>> andList,
String classSortName, String databasesSortName,
String classPrimaryKeyName, String databasesPrimaryKeyName,
Class<? extends Serializable> clazz) {
//拼接 where 中过滤条件
StringBuilder where = splicingWhere(andList);
//获取Mapper
BaseMapper baseMapper = getClassMapper(clazz);
//根据主键id数据查询对应数据
Object instance = baseMapper.selectByPrimaryKey(primaryKeyValue);
if (null == instance) {
Asserts.fail(ResultEnum.PARAM_ERROR.getCode(), "id有误");
}
//获取关键信息
String keyObject = JSON.toJSONString(instance);
JSONObject keyJsonObject = JSON.parseObject(keyObject);
//排序序号数据
Object sortValue = keyJsonObject.get(classSortName);
//-1上移1位
if (-1 == upDown) {
//查询移动的数据的上一条数据
Object instance1 = baseMapper.queryInfoByCondition(
where.append("and").append(" ").append(databasesSortName)
.append(" < '").append(sortValue)
.append("' ORDER BY").append(" ").append(databasesSortName).append(" ")
.append("DESC limit 0,1").toString());
if (null == instance1) {
Asserts.fail(ResultEnum.PARAM_ERROR.getCode(), "已是第一位");
}
String string = JSON.toJSONString(instance1);
JSONObject jsonObject = JSON.parseObject(string);
//上一条数据主键id数据
Object primaryKeyValue1 = jsonObject.get(classPrimaryKeyName);
//上一条数据排序序号数据
Object sortValue1 = jsonObject.get(classSortName);
//两条数据排序序号替换并更新
Integer integer = baseMapper.updateInfoByKey(
"set " + databasesSortName + " = '" + sortValue + "' where " + databasesPrimaryKeyName + " = '" + primaryKeyValue1 + "'");
if (null == integer || 0 == integer) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "更新失败");
}
Integer integer1 = baseMapper.updateInfoByKey(
"set " + databasesSortName + " = '" + sortValue1 + "' where " + databasesPrimaryKeyName + " = '" + primaryKeyValue + "'");
if (null == integer1 || 0 == integer1) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "更新失败");
}
}
//1下移1位
if (1 == upDown) {
//查询移动的数据的下一条数据
Object instance1 = baseMapper.queryInfoByCondition(
where.append("and").append(" ").append(databasesSortName)
.append(" > '").append(sortValue)
.append("' ORDER BY").append(" ").append(databasesSortName).append(" ")
.append("ASC limit 0,1").toString());
if (null == instance1) {
Asserts.fail(ResultEnum.PARAM_ERROR.getCode(), "已是最后一位");
}
String string = JSON.toJSONString(instance1);
JSONObject jsonObject = JSON.parseObject(string);
//下一条数据主键id数据
Object primaryKeyValue1 = jsonObject.get(classPrimaryKeyName);
//下一条数据排序序号数据
Object sortValue1 = jsonObject.get(classSortName);
//两条数据排序序号替换并更新
Integer integer = baseMapper.updateInfoByKey(
"set " + databasesSortName + " = '" + sortValue + "' where " + databasesPrimaryKeyName + " = '" + primaryKeyValue1 + "'");
if (null == integer || 0 == integer) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "更新失败");
}
Integer integer1 = baseMapper.updateInfoByKey(
"set " + databasesSortName + " = '" + sortValue1 + "' where " + databasesPrimaryKeyName + " = '" + primaryKeyValue + "'");
if (null == integer1 || 0 == integer1) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "更新失败");
}
}
return true;
}
2、树形排序
/**
* 树形 排序方法
* <p>
* 适用范围,树形形式,可上下拖动,合并,插入
*
* @param sortDTO 排序dto
* @param classPidName pid实体类名
* @param databasesPidName pid数据库名
* @param classSortName sort实体类名
* @param databasesSortName sort数据库名
* @param classGradeName 层级深度实体类名
* @param databasesGradeName 层级深度数据库名
* @param classPrimaryKeyName 主键实体类名
* @param databasesPrimaryKeyName 数据库实体类名
* @param classAssociationIdName 关联id实体类名
* @param databasesAssociationIdName 数据库关联id实体类名
* @param clazz 实体类class
* @return 是否
*/
public static boolean treeSortUtil(SortDTO sortDTO, String classPidName, String databasesPidName,
String classSortName, String databasesSortName,
String classGradeName, String databasesGradeName,
String classPrimaryKeyName, String databasesPrimaryKeyName,
String classAssociationIdName, String databasesAssociationIdName,
Class<? extends Serializable> clazz) {
BaseMapper baseMapper = getClassMapper(clazz);
//移动数据主键id
String keyId = sortDTO.getKeyId();
//被移动数据主键id
String keyId1 = sortDTO.getMoveKeyId();
//根据主键id数据查询对应数据
Object instance = baseMapper.selectByPrimaryKey(keyId);
if (null == instance) {
Asserts.fail(ResultEnum.PARAM_ERROR.getCode(), "id有误");
}
//获取关键信息
String keyObject = JSON.toJSONString(instance);
JSONObject keyJsonObject = JSON.parseObject(keyObject);
//排序序号数据
Object sortValue = keyJsonObject.get(classSortName);
Object pidValue = keyJsonObject.get(classPidName);
Object instance1 = baseMapper.selectByPrimaryKey(keyId1);
if (null == instance1) {
Asserts.fail(ResultEnum.PARAM_ERROR.getCode(), "id有误");
}
//获取关键信息
String keyObject1 = JSON.toJSONString(instance1);
JSONObject keyJsonObject1 = JSON.parseObject(keyObject1);
//排序序号数据
Object sortValue1 = keyJsonObject1.get(classSortName);
Object pidValue1 = keyJsonObject1.get(classPidName);
//是否合并
Boolean isNotMerge = sortDTO.getIsNotMerge();
//关联id
String associationId1 = null;
if (null != classAssociationIdName) {
associationId1 = (String) keyJsonObject1.get(classAssociationIdName);
}
//跨层级移动
int grade = 0;
int grade1 = 0;
if (null != classGradeName) {
grade = (int) keyJsonObject.get(classGradeName);
grade1 = (int) keyJsonObject1.get(classGradeName);
}
//判断是否是跨层移动
if (pidValue.equals(pidValue1) && !isNotMerge) {
//同层级移动
//是否插入数据
Boolean isInsert = sortDTO.getIsInsert();
if (null != isInsert && isInsert) {
String sortSql = "where " + databasesPidName + " = '" + pidValue1 + "'";
if (null != databasesAssociationIdName) {
sortSql = sortSql + " and " + databasesAssociationIdName + " = '" + associationId1 + "'";
}
Integer maxSort = baseMapper.queryMaxSortByCondition(sortSql);
if (null == maxSort) {
maxSort = 0;
}
sortValue = maxSort + 1;
String sql = "set " + databasesSortName + " = '" + sortValue + "'";
if (null != databasesGradeName) {
sql = sql + " , " + databasesGradeName + " = '" + grade1 + "'";
}
if (null != databasesAssociationIdName) {
sql = sql + " , " + databasesAssociationIdName + " = '" + associationId1 + "'";
}
sql = sql + " where " + databasesPrimaryKeyName + " = '" + keyId + "'";
Integer integer = baseMapper.updateInfoByKey(sql);
if (null == integer || 0 == integer) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "插入数据失败");
}
if (null != classGradeName) {
//移动数据中 下一层数据 深度是否需要调整
//需调整 查询数据 递归
recursionNodeGrade(clazz, baseMapper, classPidName, keyId, classAssociationIdName, associationId1,
classPrimaryKeyName, databasesPrimaryKeyName, databasesGradeName, grade1);
}
}
//移动行 上移
if ((int) sortValue > (int) sortValue1) {
String upSql = "where " + databasesPidName + " = '" + pidValue + "'";
if (null != databasesAssociationIdName) {
upSql = upSql + " and " + databasesAssociationIdName + " = '" + associationId1 + "'";
}
upSql = upSql + " and " + databasesSortName + " between '" + sortValue1 + "' and '" + ((int) sortValue - 1) + "'";
//列表数据被下移
Integer i = baseMapper.updateDownSortByCondition(upSql);
if (null == i || 0 == i) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "原列表数据移动失败");
}
}
//移动行 下移
if ((int) sortValue < (int) sortValue1) {
String downSql = "where " + databasesPidName + " = '" + pidValue + "'";
if (null != databasesAssociationIdName) {
downSql = downSql + " and " + databasesAssociationIdName + " = '" + associationId1 + "'";
}
downSql = downSql + " and " + databasesSortName + " between '" + ((int) sortValue + 1) + "' and '" + sortValue1 + "'";
//列表数据被上移
Integer i = baseMapper.updateUpSortByCondition(downSql);
if (null == i || 0 == i) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "原列表数据移动失败");
}
}
int i = baseMapper.updateInfoByKey(
" set " + databasesSortName + " = '" + sortValue1 +
"' where " + databasesPrimaryKeyName + " = '" + keyId + "'");
if (i == 0) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "更新移动数据移动失败");
}
} else {
//判断是否合并
if (isNotMerge) {
//合并 移动数据放在最后一位
Integer maxSort = baseMapper.queryMaxSortByCondition("where " + databasesPidName + " = '" + keyId1 + "'");
if (null == maxSort) {
maxSort = 0;
}
String sql = "set " + databasesPidName + " = '" + keyId1 + "' , ";
if (null != databasesGradeName) {
sql = sql + databasesGradeName + " = '" + (grade1 + 1) + "' , ";
}
sql = sql + databasesSortName + " = '" + (maxSort + 1) + "' where " + databasesPrimaryKeyName + " = '" + keyId + "'";
int i = baseMapper.updateInfoByKey(sql);
if (i == 0) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "更新移动数据移动失败");
}
if (null != classGradeName) {
//移动数据中 下一层数据 深度是否需要调整
if (grade != (grade1 + 1)) {
//需调整 查询数据 递归
recursionNodeGrade(clazz, baseMapper, classPidName, keyId, classAssociationIdName, associationId1,
classPrimaryKeyName, databasesPrimaryKeyName, databasesGradeName, grade1 + 1);
}
}
String upSql = "where " + databasesPidName + " = '" + pidValue + "'";
if (null != databasesAssociationIdName) {
upSql = upSql + " and " + databasesAssociationIdName + " = '" + associationId1 + "'";
}
upSql = upSql + " and " + databasesSortName + " >= '" + sortValue + "'";
//移动数据原列表 排序序号调整 上移
baseMapper.updateUpSortByCondition(upSql);
} else {
//不合并
//更新被移动数据列表 排序序号调整 下移
String downSql = "where " + databasesPidName + " = '" + pidValue1 + "'";
if (null != databasesAssociationIdName) {
downSql = downSql + " and " + databasesAssociationIdName + " = '" + associationId1 + "'";
}
downSql = downSql + " and " + databasesSortName + " >= '" + sortValue1 + "'";
Integer down = baseMapper.updateDownSortByCondition(downSql);
if (null == down || 0 == down) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "更新移动数据移动失败");
}
//更新移动数据信息
String sql = "set " + databasesPidName + " ='" + pidValue1 + "' , "
+ databasesSortName + " = '" + sortValue1 + "'";
if (null != databasesGradeName) {
sql = sql + " , " + databasesGradeName + " = '" + grade1 + "'";
}
sql = sql + " where " + databasesPrimaryKeyName + " = '" + keyId + "'";
int j = baseMapper.updateInfoByKey(sql);
if (j == 0) {
Asserts.fail(ResultEnum.RESULT_ERROR.getCode(), "更新移动数据失败");
}
if (null != classGradeName) {
//移动数据中 下一层数据 深度是否需要调整
if (grade != grade1) {
//需调整 查询数据 递归
recursionNodeGrade(clazz, baseMapper, classPidName, keyId, classAssociationIdName, associationId1,
classPrimaryKeyName, databasesPrimaryKeyName, databasesGradeName, grade1);
}
}
String upSql = "where " + databasesPidName + " = '" + pidValue + "'";
if (null != databasesAssociationIdName) {
upSql = upSql + " and " + databasesAssociationIdName + " = '" + associationId1 + "'";
}
upSql = upSql + " and " + databasesSortName + " >= '" + sortValue + "'";
//移动数据原列表 排序序号调整 上移
baseMapper.updateUpSortByCondition(upSql);
}
}
return true;
}
总体代码
import *.SortDTO;
import *.Asserts;
import *.BaseMapper;
import *.ResultEnum;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import tk.mybatis.mapper.entity.Example;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @Author: byxu
* @DATE: 2021/6/28 15:42
* <p>
* 排序方法
*/
@Component
public class SortUtils implements ApplicationContextAware {
/**
* 获取mapper
*/
private static ApplicationContext applicationContext;
/**
* 列表 排序方法
* <p>
* 适用范围,列表形式,操作一次 上移一位 或下一位
*
* @param primaryKeyValue 主键id数据
* @param upDown 上移或下移标识
* @param andList where条件中name=key部分参数
* @param classSortName 实体类中排序字段名称
* @param databasesSortName 数据库中排序字段数据
* @param classPrimaryKeyName 主实体类中键名称
* @param databasesPrimaryKeyName 数据库中主键名称
* @param clazz 实体类class
* @return 是否
*/
public static boolean listSortUtil(Object primaryKeyValue, Integer upDown, List<Map<String, Object>> andList,
String classSortName, String databasesSortName,
String classPrimaryKeyName, String databasesPrimaryKeyName,
Class<? extends Serializable> clazz) {
代码在上部分
return true;
}
/**
* 树形 排序方法
* <p>
* 适用范围,树形形式,可上下拖动,合并,插入
*
* @param sortDTO 排序dto
* @param classPidName pid实体类名
* @param databasesPidName pid数据库名
* @param classSortName sort实体类名
* @param databasesSortName sort数据库名
* @param classGradeName 层级深度实体类名
* @param databasesGradeName 层级深度数据库名
* @param classPrimaryKeyName 主键实体类名
* @param databasesPrimaryKeyName 数据库实体类名
* @param classAssociationIdName 关联id实体类名
* @param databasesAssociationIdName 数据库关联id实体类名
* @param clazz 实体类class
* @return 是否
*/
public static boolean treeSortUtil(SortDTO sortDTO, String classPidName, String databasesPidName,
String classSortName, String databasesSortName,
String classGradeName, String databasesGradeName,
String classPrimaryKeyName, String databasesPrimaryKeyName,
String classAssociationIdName, String databasesAssociationIdName,
Class<? extends Serializable> clazz) {
代码在上部分
return true;
}
/**
* 递归 修改各层级深度值
*
* @param clazz 实体类class
* @param classPidName pid实体类名
* @param keyId 主键id
* @param baseMapper mapper
* @param classPrimaryKeyName 实体类主键名称
* @param databasesPrimaryKeyName 数据库主键名称
* @param databasesGradeName 数据库深度主键名称
* @param grade 深度
*/
private static void recursionNodeGrade(Class<? extends Serializable> clazz, BaseMapper baseMapper,
String classPidName, Object keyId,
String classAssociationIdName, String associationId,
String classPrimaryKeyName, String databasesPrimaryKeyName,
String databasesGradeName, int grade) {
baseMapper.updateInfoByKey("set " + databasesGradeName + " = " + grade +
" where " + databasesPrimaryKeyName + " = '" + keyId + "'");
Example example = new Example(clazz);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo(classPidName, keyId);
if (null != classAssociationIdName) {
criteria.andEqualTo(classAssociationIdName, associationId);
}
List list = baseMapper.selectByExample(example);
if (0 == list.size()) {
return;
}
for (Object object : list) {
//获取关键信息
String keyObject1 = JSON.toJSONString(object);
JSONObject keyJsonObject1 = JSON.parseObject(keyObject1);
//主键id
Object primaryKey = keyJsonObject1.get(classPrimaryKeyName);
recursionNodeGrade(clazz, baseMapper, classPidName, primaryKey, classAssociationIdName, associationId,
classPrimaryKeyName, databasesPrimaryKeyName, databasesGradeName, grade + 1);
}
}
/**
* 拼接 where 中过滤条件
*
* @param andList 条件集合 key=value
* @return where条件
*/
private static StringBuilder splicingWhere(List<Map<String, Object>> andList) {
StringBuilder where = new StringBuilder("where 1 = 1 ");
for (Map<String, Object> map : andList) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
where.append(" ")
.append("and").append(" ").append(key).append(" ")
.append("=").append(" ").append("'").append(value).append("'").append(" ");
}
}
return where;
}
/**
* 获取对应实体类的Mapper
*
* @param clazz 实体类class
* @return mapper
*/
private static BaseMapper getClassMapper(Class<? extends Serializable> clazz) {
String simpleClassName = clazz.getSimpleName();
String mapperName = StrUtil.lowerFirst(simpleClassName) + "Mapper";
BaseMapper baseMapper = null;
try {
baseMapper = (BaseMapper) applicationContext.getBean(mapperName);
} catch (Exception e) {
Asserts.fail("没有获取到" + clazz.getSimpleName() + "相应的mapper");
}
return baseMapper;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SortUtils.applicationContext = applicationContext;
}
}
其他部分
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Data
@ApiModel("树形 排序DTO")
public class SortDTO {
@ApiModelProperty(value = "是否插入(默认false)")
private Boolean isInsert;
@ApiModelProperty(value = "是否合并(默认false)", required = true)
@NotNull
private Boolean isNotMerge;
@ApiModelProperty(value = "当前主键id", required = true)
@NotEmpty
private String keyId;
@ApiModelProperty(value = "被移动主键id", required = true)
@NotEmpty
private String moveKeyId;
}
import cn.gydata.smartBidDoc.result.ResultEnum;
public class Asserts {
public static void fail(String message) {
throw new ApiException(message);
}
public static void fail(ResultEnum resultEnum) {
throw new ApiException(resultEnum.getCode(), resultEnum.getMsg());
}
public static void fail(Integer code, String message) {
throw new ApiException(code, message);
}
}
import *.MyQueryMapper;
import *.MyUpdateMapper;
import tk.mybatis.mapper.common.ConditionMapper;
import tk.mybatis.mapper.common.IdsMapper;
import tk.mybatis.mapper.common.Mapper;
public interface BaseMapper<T> extends Mapper<T>, IdsMapper<T>, ConditionMapper<T>,
MyQueryMapper<T>, MyUpdateMapper<T> {
}
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
import tk.mybatis.mapper.annotation.RegisterMapper;
@RegisterMapper
public interface MyQueryMapper<T> {
/**
* 根据条件查询sort 最大值
*
* @param value 条件
* @return 最大值
*/
@SelectProvider(type = MyQueryProvider.class, method = "dynamicSQL")
Integer queryMaxSortByCondition(@Param("value") String value);
/**
* 根据自定义条件查询数据,查询数据
*
* @param value 条件
* @return 数据
*/
@SelectProvider(type = MyQueryProvider.class, method = "dynamicSQL")
T queryInfoByCondition(@Param("value") String value);
}
import org.apache.ibatis.mapping.MappedStatement;
import tk.mybatis.mapper.mapperhelper.MapperHelper;
import tk.mybatis.mapper.mapperhelper.MapperTemplate;
import tk.mybatis.mapper.mapperhelper.SqlHelper;
public class MyQueryProvider extends MapperTemplate {
public MyQueryProvider(Class<?> mapperClass, MapperHelper mapperHelper) {
super(mapperClass, mapperHelper);
}
/**
* 根据条件查询sort 最大值
*
* @param ms
* @return
*/
public String queryMaxSortByCondition(MappedStatement ms) {
Class<?> entityClass = getEntityClass(ms);
StringBuilder sql = new StringBuilder();
sql.append("SELECT ");
sql.append("MAX(sort)");
sql.append(SqlHelper.fromTable(entityClass, tableName(entityClass)));
sql.append("${value}");
return sql.toString();
}
/**
* 根据自定义条件查询数据
*
* @param ms
* @return
*/
public String queryInfoByCondition(MappedStatement ms) {
Class<?> entityClass = getEntityClass(ms);
setResultType(ms, entityClass);
StringBuilder sql = new StringBuilder();
sql.append(SqlHelper.selectAllColumns(entityClass));
sql.append(SqlHelper.fromTable(entityClass, tableName(entityClass)));
sql.append("${value}");
return sql.toString();
}
}
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.UpdateProvider;
import tk.mybatis.mapper.annotation.RegisterMapper;
@RegisterMapper
public interface MyUpdateMapper<T> {
/**
* 根据条件更新sort值
* 上移一位
*
* @param value 条件
* @return 条数
*/
@UpdateProvider(type = MyUpdateProvider.class, method = "dynamicSQL")
Integer updateUpSortByCondition(@Param("value") String value);
/**
* 根据条件更新sort值
* 下移一位
*
* @param value 条件
* @return 条数
*/
@UpdateProvider(type = MyUpdateProvider.class, method = "dynamicSQL")
Integer updateDownSortByCondition(@Param("value") String value);
/**
* 根据主键id 更新相关值
*
* @param value 条件
* @return 影响行数
*/
@UpdateProvider(type = MyUpdateProvider.class, method = "dynamicSQL")
Integer updateInfoByKey(@Param("value") String value);
}
import org.apache.ibatis.mapping.MappedStatement;
import tk.mybatis.mapper.mapperhelper.MapperHelper;
import tk.mybatis.mapper.mapperhelper.MapperTemplate;
import tk.mybatis.mapper.mapperhelper.SqlHelper;
public class MyUpdateProvider extends MapperTemplate {
public MyUpdateProvider(Class<?> mapperClass, MapperHelper mapperHelper) {
super(mapperClass, mapperHelper);
}
/**
* 根据条件更新sort值
* 上移一位
*
* @param ms
* @return
*/
public String updateUpSortByCondition(MappedStatement ms) {
Class<?> entityClass = getEntityClass(ms);
StringBuilder sql = new StringBuilder();
sql.append(SqlHelper.updateTable(entityClass, tableName(entityClass)));
sql.append("set sort = sort -1 ");
sql.append("${value}");
return sql.toString();
}
/**
* 根据条件更新sort值
* 下移一位
*
* @param ms
* @return
*/
public String updateDownSortByCondition(MappedStatement ms) {
Class<?> entityClass = getEntityClass(ms);
StringBuilder sql = new StringBuilder();
sql.append(SqlHelper.updateTable(entityClass, tableName(entityClass)));
sql.append("set sort = sort +1 ");
sql.append("${value}");
return sql.toString();
}
/**
* 根据主键id 更新相关值
*
* @param ms
* @return
*/
public String updateInfoByKey(MappedStatement ms) {
Class<?> entityClass = getEntityClass(ms);
StringBuilder sql = new StringBuilder();
sql.append(SqlHelper.updateTable(entityClass, tableName(entityClass)));
sql.append("${value}");
return sql.toString();
}
}
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@AllArgsConstructor
@NoArgsConstructor
public enum ResultEnum {
/**成功处理*/
RESULT_SUCCESS(200,"处理成功"),
/**处理业务失败*/
RESULT_ERROR(500,"处理错误"),
/** 返回值 */
private int code;
/** 返回消息 */
private String msg;
}
搞定了。