Commit c8467853 authored by 赵啸非's avatar 赵啸非

门户工程初始提交

parent 432bc756
package com.mortals.xhx.base.system.idgenerator.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.base.system.idgenerator.model.IdgeneratorEntity;
/**
* <p>Title: id生成器</p>
* <p>Description: IdgeneratorDao DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
public interface IdgeneratorDao extends ICRUDDao<IdgeneratorEntity, Long> {
}
\ No newline at end of file
package com.mortals.xhx.base.system.idgenerator.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.base.system.idgenerator.dao.IdgeneratorDao;
import com.mortals.xhx.base.system.idgenerator.model.IdgeneratorEntity;
import org.springframework.stereotype.Repository;
/**
* <p>Title: id生成器</p>
* <p>Description: IdgeneratorDaoImpl DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
@Repository("idgeneratorDao")
public class IdgeneratorDaoImpl extends BaseCRUDDaoMybatis<IdgeneratorEntity, Long> implements IdgeneratorDao {
}
\ No newline at end of file
package com.mortals.xhx.base.system.idgenerator.model;
import com.mortals.framework.model.BaseEntityLong;
import java.util.Date;
/**
* <p>Title: id生成器</p>
* <p>Description: IdgeneratorEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
public class IdgeneratorEntity extends BaseEntityLong {
private static final long serialVersionUID = 1555564885341L;
/** id类型 */
private String idType;
/** 当前id最大值 */
private Long idMaxValue;
/** 备注 */
private String remark;
/** 版本号,默认0 */
private Long versionNum;
/** 最后修改时间 */
private Date gmtModify;
public IdgeneratorEntity() {
}
/**
* 获取 id类型
*
* @return idType
*/
public String getIdType() {
return this.idType;
}
/**
* 设置 id类型
*
* @param idType
*/
public void setIdType(String idType) {
this.idType = idType;
}
/**
* 获取 当前id最大值
*
* @return idMaxValue
*/
public Long getIdMaxValue() {
return this.idMaxValue;
}
/**
* 设置 当前id最大值
*
* @param idMaxValue
*/
public void setIdMaxValue(Long idMaxValue) {
this.idMaxValue = idMaxValue;
}
/**
* 获取 备注
*
* @return remark
*/
public String getRemark() {
return this.remark;
}
/**
* 设置 备注
*
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
/**
* 获取 版本号,默认0
*
* @return versionNum
*/
public Long getVersionNum() {
return this.versionNum;
}
/**
* 设置 版本号,默认0
*
* @param versionNum
*/
public void setVersionNum(Long versionNum) {
this.versionNum = versionNum;
}
/**
* 获取 最后修改时间
*
* @return gmtModify
*/
public Date getGmtModify() {
return this.gmtModify;
}
/**
* 设置 最后修改时间
*
* @param gmtModify
*/
public void setGmtModify(Date gmtModify) {
this.gmtModify = gmtModify;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj instanceof IdgeneratorEntity) {
IdgeneratorEntity tmp = (IdgeneratorEntity) obj;
return this.getId().longValue() == tmp.getId().longValue();
}
return false;
}
@Override
public String toString() {
return "IdgeneratorEntity{" + "idType='" + idType + '\'' + ", idMaxValue=" + idMaxValue + ", remark='" + remark
+ '\'' + ", versionNum=" + versionNum + ", gmtModify=" + gmtModify + ", id=" + id + '}';
}
@Override
public void initAttrValue() {
this.idType = null;
this.idMaxValue = null;
this.remark = null;
this.versionNum = 0L;
this.gmtModify = null;
}
}
\ No newline at end of file
package com.mortals.xhx.base.system.idgenerator.model;
import java.util.List;
/**
* <p>Title: id生成器</p>
* <p>Description: IdgeneratorQuery </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
public class IdgeneratorQuery extends IdgeneratorEntity {
private static final long serialVersionUID = 1555564885342L;
/** 开始 菜单ID,主键,自增长 */
private Long idStart;
/** 结束 菜单ID,主键,自增长 */
private Long idEnd;
/** 增加 菜单ID,主键,自增长 */
private Long idIncrement;
/** 菜单ID,主键,自增长 */
private List<Long> idList;
/** id类型 */
private List<String> idTypeList;
/** 开始 当前id最大值 */
private Long idMaxValueStart;
/** 结束 当前id最大值 */
private Long idMaxValueEnd;
/** 增加 当前id最大值 */
private Long idMaxValueIncrement;
/** 当前id最大值 */
private List<Long> idMaxValueList;
/** 备注 */
private List<String> remarkList;
/** 开始 版本号,默认0 */
private Long versionNumStart;
/** 结束 版本号,默认0 */
private Long versionNumEnd;
/** 增加 版本号,默认0 */
private Long versionNumIncrement;
/** 版本号,默认0 */
private List<Long> versionNumList;
/** 开始 最后修改时间 */
private String gmtModifyStart;
/** 结束 最后修改时间 */
private String gmtModifyEnd;
public IdgeneratorQuery() {
}
/**
* 获取 开始 菜单ID,主键,自增长
*
* @return idStart
*/
public Long getIdStart() {
return this.idStart;
}
/**
* 设置 开始 菜单ID,主键,自增长
*
* @param idStart
*/
public void setIdStart(Long idStart) {
this.idStart = idStart;
}
/**
* 获取 结束 菜单ID,主键,自增长
*
* @return idEnd
*/
public Long getIdEnd() {
return this.idEnd;
}
/**
* 设置 结束 菜单ID,主键,自增长
*
* @param idEnd
*/
public void setIdEnd(Long idEnd) {
this.idEnd = idEnd;
}
/**
* 获取 增加 菜单ID,主键,自增长
*
* @return idIncrement
*/
public Long getIdIncrement() {
return this.idIncrement;
}
/**
* 设置 增加 菜单ID,主键,自增长
*
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement) {
this.idIncrement = idIncrement;
}
/**
* 获取 菜单ID,主键,自增长
*
* @return idList
*/
public List<Long> getIdList() {
return this.idList;
}
/**
* 设置 菜单ID,主键,自增长
*
* @param idList
*/
public void setIdList(List<Long> idList) {
this.idList = idList;
}
/**
* 获取 id类型
*
* @return idTypeList
*/
public List<String> getIdTypeList() {
return this.idTypeList;
}
/**
* 设置 id类型
*
* @param idTypeList
*/
public void setIdTypeList(List<String> idTypeList) {
this.idTypeList = idTypeList;
}
/**
* 获取 开始 当前id最大值
*
* @return idMaxValueStart
*/
public Long getIdMaxValueStart() {
return this.idMaxValueStart;
}
/**
* 设置 开始 当前id最大值
*
* @param idMaxValueStart
*/
public void setIdMaxValueStart(Long idMaxValueStart) {
this.idMaxValueStart = idMaxValueStart;
}
/**
* 获取 结束 当前id最大值
*
* @return idMaxValueEnd
*/
public Long getIdMaxValueEnd() {
return this.idMaxValueEnd;
}
/**
* 设置 结束 当前id最大值
*
* @param idMaxValueEnd
*/
public void setIdMaxValueEnd(Long idMaxValueEnd) {
this.idMaxValueEnd = idMaxValueEnd;
}
/**
* 获取 增加 当前id最大值
*
* @return idMaxValueIncrement
*/
public Long getIdMaxValueIncrement() {
return this.idMaxValueIncrement;
}
/**
* 设置 增加 当前id最大值
*
* @param idMaxValueIncrement
*/
public void setIdMaxValueIncrement(Long idMaxValueIncrement) {
this.idMaxValueIncrement = idMaxValueIncrement;
}
/**
* 获取 当前id最大值
*
* @return idMaxValueList
*/
public List<Long> getIdMaxValueList() {
return this.idMaxValueList;
}
/**
* 设置 当前id最大值
*
* @param idMaxValueList
*/
public void setIdMaxValueList(List<Long> idMaxValueList) {
this.idMaxValueList = idMaxValueList;
}
/**
* 获取 备注
*
* @return remarkList
*/
public List<String> getRemarkList() {
return this.remarkList;
}
/**
* 设置 备注
*
* @param remarkList
*/
public void setRemarkList(List<String> remarkList) {
this.remarkList = remarkList;
}
/**
* 获取 开始 版本号,默认0
*
* @return versionNumStart
*/
public Long getVersionNumStart() {
return this.versionNumStart;
}
/**
* 设置 开始 版本号,默认0
*
* @param versionNumStart
*/
public void setVersionNumStart(Long versionNumStart) {
this.versionNumStart = versionNumStart;
}
/**
* 获取 结束 版本号,默认0
*
* @return versionNumEnd
*/
public Long getVersionNumEnd() {
return this.versionNumEnd;
}
/**
* 设置 结束 版本号,默认0
*
* @param versionNumEnd
*/
public void setVersionNumEnd(Long versionNumEnd) {
this.versionNumEnd = versionNumEnd;
}
/**
* 获取 增加 版本号,默认0
*
* @return versionNumIncrement
*/
public Long getVersionNumIncrement() {
return this.versionNumIncrement;
}
/**
* 设置 增加 版本号,默认0
*
* @param versionNumIncrement
*/
public void setVersionNumIncrement(Long versionNumIncrement) {
this.versionNumIncrement = versionNumIncrement;
}
/**
* 获取 版本号,默认0
*
* @return versionNumList
*/
public List<Long> getVersionNumList() {
return this.versionNumList;
}
/**
* 设置 版本号,默认0
*
* @param versionNumList
*/
public void setVersionNumList(List<Long> versionNumList) {
this.versionNumList = versionNumList;
}
/**
* 获取 开始 最后修改时间
*
* @return gmtModifyStart
*/
public String getGmtModifyStart() {
return this.gmtModifyStart;
}
/**
* 设置 开始 最后修改时间
*
* @param gmtModifyStart
*/
public void setGmtModifyStart(String gmtModifyStart) {
this.gmtModifyStart = gmtModifyStart;
}
/**
* 获取 结束 最后修改时间
*
* @return gmtModifyEnd
*/
public String getGmtModifyEnd() {
return this.gmtModifyEnd;
}
/**
* 设置 结束 最后修改时间
*
* @param gmtModifyEnd
*/
public void setGmtModifyEnd(String gmtModifyEnd) {
this.gmtModifyEnd = gmtModifyEnd;
}
}
\ No newline at end of file
package com.mortals.xhx.base.system.idgenerator.service;
import com.mortals.xhx.base.system.idgenerator.service.impl.IdgeneratorServiceImpl.IdGeneratorKey;
import java.util.List;
/**
* <p>Title: id生成器</p>
* <p>Description: IdgeneratorService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
public interface IdgeneratorService {
/**
* 获取Long类型ID
*
* @param idGeneratorKey
* @param factorInfo 生成因子,根据各IdGeneratorKey要求选择传入
* @return
* @createTime 2016年3月16日 上午10:43:22
*/
Long getLongId(IdGeneratorKey idGeneratorKey, Object... factorInfo);
/**
* 获取String类型ID
*
* @param idGeneratorKey
* @param factorInfo 生成因子,根据各IdGeneratorKey要求选择传入
* @return
* @createTime 2016年3月16日 上午10:43:38
*/
String getStringId(IdGeneratorKey idGeneratorKey, Object... factorInfo);
/**
* 批量获取Long类型ID
*
* @param idGeneratorKey
* @param factorInfo
* @return
*/
List<Long> getLongIdList(IdGeneratorKey idGeneratorKey, Object... factorInfo);
}
\ No newline at end of file
package com.mortals.xhx.base.system.idgenerator.service.impl;
import com.alibaba.fastjson.JSON;
import com.mortals.xhx.base.system.idgenerator.dao.IdgeneratorDao;
import com.mortals.xhx.base.system.idgenerator.model.IdgeneratorEntity;
import com.mortals.xhx.base.system.idgenerator.service.IdgeneratorService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
/**
* <p>Title: id生成器</p>
* <p>Description: IdgeneratorServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
@Service("idgeneratorService")
public class IdgeneratorServiceImpl implements IdgeneratorService {
private Log log = LogFactory.getLog(IdgeneratorServiceImpl.class);
@Resource
private IdgeneratorDao idgeneratorDao;
private ConcurrentHashMap<IdGeneratorKey, SequenceId> seqIdMap = new ConcurrentHashMap<>();
/** 默认步长,即一次取多少个ID */
private static final Long DEFAULT_STEP = 50L;
/**
* <B>Description</B> 生成器key枚举 <br />
* @author
* @createTime 2016年3月16日 上午10:07:19
*/
@SuppressWarnings("rawtypes")
public static enum IdGeneratorKey {
/**
* 生成各基础信息表的version字段值(保证所有分表ID全局唯一) <br/>
* 生成规则:1开始
*
* @return 返回Long类型
*/
INFO_VERSION_KEY(50L, "getInfoVersion", null),
/** 空,测试用 */
DUMMY(DEFAULT_STEP, "", null),
;
/** 步长 */
private final Long step;
/** 生成ID方法名 */
private final String methodName;
/** 生成ID所需参数因子类型 */
private final Class[] factorsClazz;
private IdGeneratorKey(Long step, String methodName, Class[] factorsClazz) {
this.step = step;
this.methodName = methodName;
this.factorsClazz = factorsClazz;
}
public Long getStep() {
return step;
}
public String getMethodName() {
return methodName;
}
public Class[] getFactorsClazz() {
return factorsClazz;
}
}
@Override
public Long getLongId(IdGeneratorKey key, Object... factorInfo) {
try {
Method method = this.getClass().getDeclaredMethod(key.getMethodName(), key.getFactorsClazz());
return (Long) method.invoke(this, factorInfo);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
public String getStringId(IdGeneratorKey key, Object... factorInfo) {
try {
Method method = this.getClass().getDeclaredMethod(key.getMethodName(), key.getFactorsClazz());
return (String) method.invoke(this, factorInfo);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public List<Long> getLongIdList(IdGeneratorKey key, Object... factorInfo) {
try {
Method method = this.getClass().getDeclaredMethod(key.getMethodName() + "Batch", key.getFactorsClazz());
return (List<Long>) method.invoke(this, factorInfo);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private Long getInfoVersion() {
synchronized (IdGeneratorKey.INFO_VERSION_KEY) {
return getNextSequenceId(IdGeneratorKey.INFO_VERSION_KEY, null);
}
}
// *******************************************************************************
/**
* 获取表唯一ID,
*
* @param key id类型
* @param startSeq 从指定SEQ开始
* @return
*/
private Long getNextSequenceId(IdGeneratorKey key, Long startSeq) {
Long seqId = getNextSeqId(key, startSeq);
// 失败后,最大重复10次获取
for (int i = 0; (seqId <= 0 && i < 10); i++) {
seqIdMap.remove(key);
// 重置为空,从数据库获取最新值
seqId = getNextSeqId(key, null);
}
if (seqId <= 0) {
throw new RuntimeException("多应用服务器争用程度太高,请稍后再试");
}
return seqId;
}
private Long getNextSeqId(final IdGeneratorKey key, final Long startSeq) {
SequenceId idSequence = seqIdMap.get(key);
if (idSequence == null) {
idSequence = new SequenceId();
idSequence.setStep(key.getStep());
SequenceId returnSeqId = seqIdMap.putIfAbsent(key, idSequence);
if (returnSeqId != null) {
idSequence = returnSeqId;
}
}
if (startSeq != null || idSequence.getStartSeq() >= idSequence.getFinishSeq()) {
if (updateTableIdMaxValue(key, startSeq, idSequence) <= 0) {
return 0L;
}
}
Long id = idSequence.next();
return id;
}
private List<Long> getNextSequenceIdBatch(IdGeneratorKey key, Long startSeq, Integer num) {
List<Long> seqId = getNextSeqIdBatch(key, startSeq, num);
// 失败后,最大重复10次获取
for (int i = 0; (seqId.size() <= 0 && i < 10); i++) {
seqIdMap.remove(key);
// 重置为空,从数据库获取最新值
seqId = getNextSeqIdBatch(key, null, num);
}
if (seqId.size() == 0) {
throw new RuntimeException("多应用服务器争用程度太高,请稍后再试");
}
return seqId;
}
private List<Long> getNextSeqIdBatch(final IdGeneratorKey key, final Long startSeq, Integer num) {
SequenceId idSequence = seqIdMap.get(key);
if (idSequence == null) {
idSequence = new SequenceId();
idSequence.setStep(num.longValue());
SequenceId returnSeqId = seqIdMap.putIfAbsent(key, idSequence);
if (returnSeqId != null) {
idSequence = returnSeqId;
}
}
if (startSeq != null || idSequence.getStartSeq() >= idSequence.getFinishSeq()
|| idSequence.getStartSeq() + idSequence.getStep() > idSequence.getFinishSeq()) {
if (updateTableIdMaxValueBatch(key, startSeq, idSequence, num) <= 0) {
return new ArrayList<>();
}
}
List<Long> idList = new ArrayList<>();
for (int i = 0; i < num.intValue(); i++) {
idList.add(idSequence.next());
}
return idList;
}
/**
* 更新最新ID到数据表
*
* @param key
* @param startSeq
* @param idSequence
* @return
* @createTime 2016年3月16日 上午10:09:00
* @author
*/
private int updateTableIdMaxValue(final IdGeneratorKey key, final Long startSeq, final SequenceId idSequence) {
IdgeneratorEntity entity = new IdgeneratorEntity();
entity.setIdType(key.name());
List<IdgeneratorEntity> list = idgeneratorDao.getList(entity);
IdgeneratorEntity idgeneratorEntity = list.get(0);
long sseq = idgeneratorEntity.getIdMaxValue();
if (startSeq != null && idgeneratorEntity.getIdMaxValue() < startSeq) {
sseq = startSeq;
}
idSequence.setStartSeq(sseq);
idSequence.setFinishSeq(idSequence.getStartSeq() + idSequence.getStep());
idgeneratorEntity.setIdMaxValue(idSequence.getFinishSeq());
idgeneratorEntity.setGmtModify(new Date());
if (log.isDebugEnabled()) {
log.debug("idgenerator update table idSequence value:" + JSON.toJSONString(idSequence));
log.debug("idgenerator update table set value:" + JSON.toJSONString(idgeneratorEntity));
}
IdgeneratorEntity condition = new IdgeneratorEntity();
condition.setId(idgeneratorEntity.getId());
condition.setVersionNum(idgeneratorEntity.getVersionNum());
idgeneratorEntity.setVersionNum(idgeneratorEntity.getVersionNum() + 1);
int result = idgeneratorDao.update(idgeneratorEntity, condition);
if (result > 0) {
return result;
} else {
log.warn("version locked, retry it.....");
return updateTableIdMaxValue(key, null, idSequence);
}
}
private int updateTableIdMaxValueBatch(final IdGeneratorKey key, final Long startSeq, final SequenceId idSequence,
Integer num) {
synchronized (IdGeneratorKey.DUMMY) {
IdgeneratorEntity entity = new IdgeneratorEntity();
entity.setIdType(key.name());
List<IdgeneratorEntity> list = idgeneratorDao.getList(entity);
IdgeneratorEntity idgeneratorEntity = list.get(0);
long sseq = idgeneratorEntity.getIdMaxValue();
if (startSeq != null && idgeneratorEntity.getIdMaxValue() < startSeq) {
sseq = startSeq;
}
idSequence.setStartSeq(sseq);
idSequence.setFinishSeq(idSequence.getStartSeq() + num.longValue());
idgeneratorEntity.setIdMaxValue(idSequence.getFinishSeq());
idgeneratorEntity.setGmtModify(new Date());
if (log.isDebugEnabled()) {
log.debug("idgenerator update table idSequence value:" + JSON.toJSONString(idSequence));
log.debug("idgenerator update table set value:" + JSON.toJSONString(idgeneratorEntity));
}
IdgeneratorEntity condition = new IdgeneratorEntity();
condition.setId(idgeneratorEntity.getId());
condition.setVersionNum(idgeneratorEntity.getVersionNum());
idgeneratorEntity.setVersionNum(idgeneratorEntity.getVersionNum() + 1);
int result = idgeneratorDao.update(idgeneratorEntity, condition);
if (result > 0) {
return result;
} else {
log.warn("version locked, retry it.....");
return updateTableIdMaxValueBatch(key, null, idSequence, num);
}
}
}
private class SequenceId {
/** 步长 */
private Long step = 100L;
/** 开始ID */
private volatile AtomicLong startSeq = new AtomicLong(1);
/** 结束ID */
private volatile Long finishSeq = 0L;
public Long next() {
return startSeq.getAndIncrement();
}
public Long getStep() {
return step;
}
public void setStep(Long step) {
this.step = step;
}
public Long getStartSeq() {
return startSeq.get();
}
public void setStartSeq(Long startSeq) {
this.startSeq = new AtomicLong(startSeq);
}
public Long getFinishSeq() {
return finishSeq;
}
public void setFinishSeq(Long finishSeq) {
this.finishSeq = finishSeq;
}
}
}
\ No newline at end of file
/**
* 文件:OperLogDao.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.oper.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.base.system.oper.model.OperLogEntity;
/**
* <p>Title: 操作日志</p>
* <p>Description: OperLogDao DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface OperLogDao extends ICRUDDao<OperLogEntity,Long> {
}
\ No newline at end of file
/**
* 文件:OperLogDaoImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.oper.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.base.system.oper.dao.OperLogDao;
import com.mortals.xhx.base.system.oper.model.OperLogEntity;
import org.springframework.stereotype.Repository;
/**
* <p>Title: 操作日志</p>
* <p>Description: OperLogDaoImpl DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Repository("operLogDao")
public class OperLogDaoImpl extends BaseCRUDDaoMybatis<OperLogEntity,Long> implements OperLogDao {
}
\ No newline at end of file
/**
* 文件:OperLogEntity.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.oper.model;
import com.mortals.framework.model.BaseEntityLong;
import java.util.Date;
/**
* <p>Title: 操作日志</p>
* <p>Description: OperLogEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class OperLogEntity extends BaseEntityLong{
private static final long serialVersionUID = 1547777703333L;
/** 平台标识 */
private String platformMark;
/** 用户id */
private Long userId;
/** 用户名称 */
private String userName;
/** 用户登录名 */
private String loginName;
/** 请求地址 */
private String requestUrl;
/** 操作内容,记录操作具体信息,如修改前修改或的数据 */
private String content;
/** 操作IP地址 */
private String ip;
/** 操作时间 */
private Date logDate;
/** 操作类型,0:新增,1:修改,2:删除 */
private Integer operType;
public OperLogEntity(){
}
/**
* 获取 平台标识
* @return platformMark
*/
public String getPlatformMark(){
return this.platformMark;
}
/**
* 设置 平台标识
* @param platformMark
*/
public void setPlatformMark(String platformMark){
this.platformMark = platformMark;
}
/**
* 获取 用户id
* @return userId
*/
public Long getUserId(){
return this.userId;
}
/**
* 设置 用户id
* @param userId
*/
public void setUserId(Long userId){
this.userId = userId;
}
/**
* 获取 用户名称
* @return userName
*/
public String getUserName(){
return this.userName;
}
/**
* 设置 用户名称
* @param userName
*/
public void setUserName(String userName){
this.userName = userName;
}
/**
* 获取 用户登录名
* @return loginName
*/
public String getLoginName(){
return this.loginName;
}
/**
* 设置 用户登录名
* @param loginName
*/
public void setLoginName(String loginName){
this.loginName = loginName;
}
/**
* 获取 请求地址
* @return requestUrl
*/
public String getRequestUrl(){
return this.requestUrl;
}
/**
* 设置 请求地址
* @param requestUrl
*/
public void setRequestUrl(String requestUrl){
this.requestUrl = requestUrl;
}
/**
* 获取 操作内容,记录操作具体信息,如修改前修改或的数据
* @return content
*/
public String getContent(){
return this.content;
}
/**
* 设置 操作内容,记录操作具体信息,如修改前修改或的数据
* @param content
*/
public void setContent(String content){
this.content = content;
}
/**
* 获取 操作IP地址
* @return ip
*/
public String getIp(){
return this.ip;
}
/**
* 设置 操作IP地址
* @param ip
*/
public void setIp(String ip){
this.ip = ip;
}
/**
* 获取 操作时间
* @return logDate
*/
public Date getLogDate(){
return this.logDate;
}
/**
* 设置 操作时间
* @param logDate
*/
public void setLogDate(Date logDate){
this.logDate = logDate;
}
/**
* 获取 操作类型,0:新增,1:修改,2:删除
* @return operType
*/
public Integer getOperType(){
return this.operType;
}
/**
* 设置 操作类型,0:新增,1:修改,2:删除
* @param operType
*/
public void setOperType(Integer operType){
this.operType = operType;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof OperLogEntity) {
OperLogEntity tmp = (OperLogEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append("id:").append(getId())
.append(",platformMark:").append(getPlatformMark())
.append(",userId:").append(getUserId())
.append(",userName:").append(getUserName())
.append(",loginName:").append(getLoginName())
.append(",requestUrl:").append(getRequestUrl())
.append(",content:").append(getContent())
.append(",ip:").append(getIp())
.append(",logDate:").append(getLogDate())
.append(",operType:").append(getOperType());
return sb.toString();
}
public void initAttrValue(){
this.platformMark = null;
this.userId = null;
this.userName = null;
this.loginName = null;
this.requestUrl = null;
this.content = null;
this.ip = null;
this.logDate = null;
this.operType = null;
}
}
\ No newline at end of file
/**
* 文件:OperLogQuery.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.oper.model;
import java.util.List;
/**
* <p>Title: 操作日志</p>
* <p>Description: OperLogQuery </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class OperLogQuery extends OperLogEntity{
private static final long serialVersionUID = 1547777703333L;
/** 开始 序号,主键,自增长 */
private Long idStart;
/** 结束 序号,主键,自增长 */
private Long idEnd;
/** 增加 序号,主键,自增长 */
private Long idIncrement;
/** 序号,主键,自增长 */
private List<Long> idList;
/** 平台标识 */
private List<String> platformMarkList;
/** 开始 用户id */
private Long userIdStart;
/** 结束 用户id */
private Long userIdEnd;
/** 增加 用户id */
private Long userIdIncrement;
/** 用户id */
private List<Long> userIdList;
/** 用户名称 */
private List<String> userNameList;
/** 用户登录名 */
private List<String> loginNameList;
/** 请求地址 */
private List<String> requestUrlList;
/** 操作内容,记录操作具体信息,如修改前修改或的数据 */
private List<String> contentList;
/** 操作IP地址 */
private List<String> ipList;
/** 开始 操作时间 */
private String logDateStart;
/** 结束 操作时间 */
private String logDateEnd;
/** 开始 操作类型,0:新增,1:修改,2:删除 */
private Integer operTypeStart;
/** 结束 操作类型,0:新增,1:修改,2:删除 */
private Integer operTypeEnd;
/** 增加 操作类型,0:新增,1:修改,2:删除 */
private Integer operTypeIncrement;
/** 操作类型,0:新增,1:修改,2:删除 */
private List<Integer> operTypeList;
public OperLogQuery(){
}
/**
* 获取 开始 序号,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 序号,主键,自增长
* @return idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 序号,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 平台标识
* @return platformMarkList
*/
public List<String> getPlatformMarkList(){
return this.platformMarkList;
}
/**
* 设置 平台标识
* @param platformMarkList
*/
public void setPlatformMarkList(List<String> platformMarkList){
this.platformMarkList = platformMarkList;
}
/**
* 获取 开始 用户id
* @return userIdStart
*/
public Long getUserIdStart(){
return this.userIdStart;
}
/**
* 设置 开始 用户id
* @param userIdStart
*/
public void setUserIdStart(Long userIdStart){
this.userIdStart = userIdStart;
}
/**
* 获取 结束 用户id
* @return userIdEnd
*/
public Long getUserIdEnd(){
return this.userIdEnd;
}
/**
* 设置 结束 用户id
* @param userIdEnd
*/
public void setUserIdEnd(Long userIdEnd){
this.userIdEnd = userIdEnd;
}
/**
* 获取 增加 用户id
* @return userIdIncrement
*/
public Long getUserIdIncrement(){
return this.userIdIncrement;
}
/**
* 设置 增加 用户id
* @param userIdIncrement
*/
public void setUserIdIncrement(Long userIdIncrement){
this.userIdIncrement = userIdIncrement;
}
/**
* 获取 用户id
* @return userIdList
*/
public List<Long> getUserIdList(){
return this.userIdList;
}
/**
* 设置 用户id
* @param userIdList
*/
public void setUserIdList(List<Long> userIdList){
this.userIdList = userIdList;
}
/**
* 获取 用户名称
* @return userNameList
*/
public List<String> getUserNameList(){
return this.userNameList;
}
/**
* 设置 用户名称
* @param userNameList
*/
public void setUserNameList(List<String> userNameList){
this.userNameList = userNameList;
}
/**
* 获取 用户登录名
* @return loginNameList
*/
public List<String> getLoginNameList(){
return this.loginNameList;
}
/**
* 设置 用户登录名
* @param loginNameList
*/
public void setLoginNameList(List<String> loginNameList){
this.loginNameList = loginNameList;
}
/**
* 获取 请求地址
* @return requestUrlList
*/
public List<String> getRequestUrlList(){
return this.requestUrlList;
}
/**
* 设置 请求地址
* @param requestUrlList
*/
public void setRequestUrlList(List<String> requestUrlList){
this.requestUrlList = requestUrlList;
}
/**
* 获取 操作内容,记录操作具体信息,如修改前修改或的数据
* @return contentList
*/
public List<String> getContentList(){
return this.contentList;
}
/**
* 设置 操作内容,记录操作具体信息,如修改前修改或的数据
* @param contentList
*/
public void setContentList(List<String> contentList){
this.contentList = contentList;
}
/**
* 获取 操作IP地址
* @return ipList
*/
public List<String> getIpList(){
return this.ipList;
}
/**
* 设置 操作IP地址
* @param ipList
*/
public void setIpList(List<String> ipList){
this.ipList = ipList;
}
/**
* 获取 开始 操作时间
* @return logDateStart
*/
public String getLogDateStart(){
return this.logDateStart;
}
/**
* 设置 开始 操作时间
* @param logDateStart
*/
public void setLogDateStart(String logDateStart){
this.logDateStart = logDateStart;
}
/**
* 获取 结束 操作时间
* @return logDateEnd
*/
public String getLogDateEnd(){
return this.logDateEnd;
}
/**
* 设置 结束 操作时间
* @param logDateEnd
*/
public void setLogDateEnd(String logDateEnd){
this.logDateEnd = logDateEnd;
}
/**
* 获取 开始 操作类型,0:新增,1:修改,2:删除
* @return operTypeStart
*/
public Integer getOperTypeStart(){
return this.operTypeStart;
}
/**
* 设置 开始 操作类型,0:新增,1:修改,2:删除
* @param operTypeStart
*/
public void setOperTypeStart(Integer operTypeStart){
this.operTypeStart = operTypeStart;
}
/**
* 获取 结束 操作类型,0:新增,1:修改,2:删除
* @return operTypeEnd
*/
public Integer getOperTypeEnd(){
return this.operTypeEnd;
}
/**
* 设置 结束 操作类型,0:新增,1:修改,2:删除
* @param operTypeEnd
*/
public void setOperTypeEnd(Integer operTypeEnd){
this.operTypeEnd = operTypeEnd;
}
/**
* 获取 增加 操作类型,0:新增,1:修改,2:删除
* @return operTypeIncrement
*/
public Integer getOperTypeIncrement(){
return this.operTypeIncrement;
}
/**
* 设置 增加 操作类型,0:新增,1:修改,2:删除
* @param operTypeIncrement
*/
public void setOperTypeIncrement(Integer operTypeIncrement){
this.operTypeIncrement = operTypeIncrement;
}
/**
* 获取 操作类型,0:新增,1:修改,2:删除
* @return operTypeList
*/
public List<Integer> getOperTypeList(){
return this.operTypeList;
}
/**
* 设置 操作类型,0:新增,1:修改,2:删除
* @param operTypeList
*/
public void setOperTypeList(List<Integer> operTypeList){
this.operTypeList = operTypeList;
}
}
\ No newline at end of file
/**
* 文件:OperLogService.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.oper.service;
import com.mortals.framework.model.BaseEntity;
import com.mortals.framework.service.ICRUDService;
import com.mortals.framework.service.IUser;
import com.mortals.xhx.base.system.oper.model.OperLogEntity;
import com.mortals.xhx.common.code.OperTypeEnum;
import javax.servlet.http.HttpServletRequest;
/**
* <p>Title: 操作日志</p>
* <p>Description: OperLogService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface OperLogService extends ICRUDService<OperLogEntity,Long> {
/**
* 保存新增数据的日志信息
* @param request 发送请求信息
* @param user 当前登录用户
* @param result 新增后的返回数据
*/
void saveCreateOperLog(HttpServletRequest request, IUser user, String result);
/**
* 保存更新数据日志信息
* @param request 发送请求信息
* @param user 当前登录用户
* @param oldEntity 原始数据
* @param newEntity 新数据
*/
void saveUpdateOperLog(HttpServletRequest request, IUser user, BaseEntity oldEntity, BaseEntity newEntity);
/**
* 保存删除操作日志信息
* @param request 发送请求信息
* @param user 当前登录用户
* @param result 新增后的返回数据
* @param id 删除的数据id
*/
void saveDeleteOperLog(HttpServletRequest request, IUser user, String result, String id);
/**
* 保存新增信息操作日志,内容直接取content字段,如果存在id会加上id信息
* @param request 发送请求信息
* @param user 当前登录用户
* @param content 需要记录的日志信息
* @param id 数据的id值
*/
void saveOperLog(HttpServletRequest request, IUser user, String content, String id);
/**
*
* @param request 发送请求信息
* @param user 当前登录用户
* @param oldEntity 原始数据
* @param newEntity 新数据
* @param operType 日志类型
* @param content 需要记录的日志信息
* @param id 数据的id值
*/
void insertOperLog(HttpServletRequest request, IUser user, BaseEntity oldEntity, BaseEntity newEntity, OperTypeEnum operType, String content, String id);
void insertOperLog(String ip, String requestUrl, Long userId, String userName, String loginName, String content);
}
\ No newline at end of file
/**
* 文件:OperLogServiceImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.oper.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.model.BaseEntity;
import com.mortals.framework.service.IUser;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.HttpUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.framework.web.BaseController;
import com.mortals.xhx.base.system.oper.dao.OperLogDao;
import com.mortals.xhx.base.system.oper.model.OperLogEntity;
import com.mortals.xhx.base.system.oper.service.OperLogService;
import com.mortals.xhx.common.code.OperTypeEnum;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* <p>Title: 操作日志</p>
* <p>Description: OperLogServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Service("operLogService")
public class OperLogServiceImpl extends AbstractCRUDServiceImpl<OperLogDao,OperLogEntity,Long> implements OperLogService {
@Override
public void saveCreateOperLog(HttpServletRequest request, IUser user, String result) {
JSONObject jsonObject = JSONObject.parseObject(result);
Map<String, Object> model = jsonObject.get(BaseController.KEY_RESULT_DATA) == null ? new HashMap<>() : (Map<String, Object>) jsonObject.get(BaseController.KEY_RESULT_DATA);
this.insertOperLog(request, user, null, null, OperTypeEnum.SAVE, jsonObject.get(BaseController.KEY_RESULT_MSG).toString(), model.get("id") == null ? "" : model.get("id").toString());
}
@Override
public void saveUpdateOperLog(HttpServletRequest request, IUser user, BaseEntity oldEntity, BaseEntity newEntity) {
this.insertOperLog(request, user, oldEntity, newEntity, OperTypeEnum.UPDATE, null, null);
}
@Override
public void saveDeleteOperLog(HttpServletRequest request, IUser user, String result, String id) {
JSONObject jsonObject = JSONObject.parseObject(result);
Map<String, Object> model = (Map<String, Object>) jsonObject.get(BaseController.KEY_RESULT_DATA);
this.insertOperLog(request, user, null, null, OperTypeEnum.DELETE, jsonObject.get(BaseController.KEY_RESULT_MSG).toString(), id);
}
@Override
public void saveOperLog(HttpServletRequest request, IUser user, String content, String id) {
this.insertOperLog(request, user, null, null, OperTypeEnum.OTHER, content, id);
}
@Override
public void insertOperLog(HttpServletRequest request, IUser user, BaseEntity oldEntity, BaseEntity newEntity, OperTypeEnum operType, String content, String id) {
OperLogEntity operLogEntity = new OperLogEntity();
operLogEntity.setIp(HttpUtil.getRequestIP(request));
operLogEntity.setLogDate(new Date());
operLogEntity.setPlatformMark(GlobalSysInfo.getPropertyValue(SysConstains.PROP_PLATFORM_MARK));
operLogEntity.setOperType(operType.getValue());
operLogEntity.setRequestUrl(request.getRequestURI());
if (user != null) {
operLogEntity.setLoginName(user.getLoginName());
operLogEntity.setUserId(user.getId());
operLogEntity.setUserName(user.getRealName());
}
switch (operType) {
case SAVE:
formatterLogContent(operLogEntity, content, id, operType);
break;
case UPDATE:
formatterLogContent(operLogEntity, oldEntity, newEntity);
break;
case DELETE:
formatterLogContent(operLogEntity, content, id, operType);
break;
default:
operLogEntity.setOperType(OperTypeEnum.UPDATE.getValue());
operLogEntity.setContent(StringUtils.isBlank(id) ? content : content + "id:" + id);
break;
}
super.save(operLogEntity, null);
}
@Override
public void insertOperLog(String ip,String requestUrl,Long userId, String userName, String loginName,String content){
OperLogEntity operLogEntity = new OperLogEntity();
operLogEntity.setIp(ip);
operLogEntity.setLogDate(new Date());
operLogEntity.setPlatformMark(GlobalSysInfo.getPropertyValue(SysConstains.PROP_PLATFORM_MARK));
//operLogEntity.setOperType(operType.getValue());
operLogEntity.setRequestUrl(requestUrl);
operLogEntity.setLoginName(loginName);
operLogEntity.setUserId(userId);
operLogEntity.setUserName(userName);
operLogEntity.setContent(content);
save(operLogEntity, null);
}
private void formatterLogContent(OperLogEntity operLogEntity, String content, String id, OperTypeEnum operType) {
if (operType == OperTypeEnum.SAVE) {
content = operLogEntity.getUserName() + "在" + content + "中新增一条数据" ;
} else if (operType == OperTypeEnum.DELETE) {
content = operLogEntity.getUserName() + "在" + content + ",id为:" + id;
}
content += StringUtils.isBlank("id") ? "":",id为:" + id;
operLogEntity.setContent(content);
}
private void formatterLogContent(OperLogEntity operLogEntity, BaseEntity oldEntity, BaseEntity newEntity) {
if (oldEntity == null || newEntity == null) {
return;
}
StringBuilder content = new StringBuilder();
Class clazz = oldEntity.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
try {
Object oldValue = field.get(oldEntity);
Object newValue = field.get(newEntity);
if (String.valueOf(oldValue).equals(String.valueOf(newValue))) {
continue;
}
content.append(field.getName() + "由:" + oldValue + "变更为:" + newValue + ";");
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
if (content.length() == 0) {
content.append("无内容变更");
}
operLogEntity.setContent(content.toString());
}
}
\ No newline at end of file
/**
* 文件:OperLogController.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.oper.web;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.base.system.oper.model.OperLogEntity;
import com.mortals.xhx.base.system.oper.service.OperLogService;
import com.mortals.xhx.common.code.OperTypeEnum;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* <p>Title: 操作日志</p>
* <p>Description: OperLogController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@RestController
@RequestMapping("oper/log")
public class OperLogController extends BaseCRUDJsonMappingController<OperLogService,OperLogForm,OperLogEntity,Long> {
public OperLogController(){
super.setFormClass(OperLogForm.class);
super.setModuleDesc("操作日志");
}
@Override
protected void init(HttpServletRequest request, HttpServletResponse response, OperLogForm form,
Map<String, Object> model, Context context) {
Map<String, Object> status = new HashMap<String, Object>(1);
// 返回日志类型
status.put("operType", OperTypeEnum.getEnumMap());
model.put(KEY_RESULT_DICT, status);
super.init(request, response, form, model, context);
}
@Override
protected void doListBefore(HttpServletRequest request, HttpServletResponse response, OperLogForm form, Map<String, Object> model, Context context) throws AppException {
form.getQuery().setOrderColList(new ArrayList<OrderCol>() {
{
add(new OrderCol("a.logDate", "desc"));
}
});
}
}
\ No newline at end of file
/**
* 文件:OperLogForm.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.oper.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.base.system.oper.model.OperLogEntity;
import com.mortals.xhx.base.system.oper.model.OperLogQuery;
/**
* <p>Title: 操作日志</p>
* <p>Description: OperLogForm </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class OperLogForm extends BaseCRUDFormLong<OperLogEntity> {
private OperLogEntity entity = new OperLogEntity();
private OperLogQuery query = new OperLogQuery();
public OperLogForm(){
}
@Override
public OperLogEntity getEntity() {
return entity;
}
public void setEntity(OperLogEntity entity) {
this.entity = entity;
}
@Override
public OperLogQuery getQuery() {
return query;
}
public void setQuery(OperLogQuery query) {
this.query = query;
}
}
\ No newline at end of file
/**
* 文件:TableIndexDao.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.table.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.base.system.table.model.TableIndexEntity;
/**
* <p>Title: 分表索引信息</p>
* <p>Description: TableIndexDao DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface TableIndexDao extends ICRUDDao<TableIndexEntity,Long> {
}
\ No newline at end of file
/**
* 文件:TableIndexDaoImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.table.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.base.system.table.dao.TableIndexDao;
import com.mortals.xhx.base.system.table.model.TableIndexEntity;
import org.springframework.stereotype.Repository;
/**
* <p>Title: 分表索引信息</p>
* <p>Description: TableIndexDaoImpl DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Repository("tableIndexDao")
public class TableIndexDaoImpl extends BaseCRUDDaoMybatis<TableIndexEntity,Long> implements TableIndexDao {
}
\ No newline at end of file
/**
* 文件:TableIndexEntity.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.table.model;
import com.mortals.framework.model.BaseEntityLong;
import java.util.Date;
/**
* <p>Title: 分表索引信息</p>
* <p>Description: TableIndexEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class TableIndexEntity extends BaseEntityLong{
private static final long serialVersionUID = 1547777703369L;
/** 表名称 */
private String tableName;
/** 表标识 */
private String tableMark;
/** 创建时间 */
private Date createTime;
public TableIndexEntity(){
}
/**
* 获取 表名称
* @return tableName
*/
public String getTableName(){
return this.tableName;
}
/**
* 设置 表名称
* @param tableName
*/
public void setTableName(String tableName){
this.tableName = tableName;
}
/**
* 获取 表标识
* @return tableMark
*/
public String getTableMark(){
return this.tableMark;
}
/**
* 设置 表标识
* @param tableMark
*/
public void setTableMark(String tableMark){
this.tableMark = tableMark;
}
/**
* 获取 创建时间
* @return createTime
*/
public Date getCreateTime(){
return this.createTime;
}
/**
* 设置 创建时间
* @param createTime
*/
public void setCreateTime(Date createTime){
this.createTime = createTime;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof TableIndexEntity) {
TableIndexEntity tmp = (TableIndexEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append("id:").append(getId())
.append(",tableName:").append(getTableName())
.append(",tableMark:").append(getTableMark())
.append(",createTime:").append(getCreateTime());
return sb.toString();
}
public void initAttrValue(){
this.tableName = null;
this.tableMark = null;
this.createTime = null;
}
}
\ No newline at end of file
/**
* 文件:TableIndexQuery.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.table.model;
import java.util.List;
/**
* <p>Title: 分表索引信息</p>
* <p>Description: TableIndexQuery </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class TableIndexQuery extends TableIndexEntity{
private static final long serialVersionUID = 1547777703369L;
/** 开始 菜单ID,主键,自增长 */
private Long idStart;
/** 结束 菜单ID,主键,自增长 */
private Long idEnd;
/** 增加 菜单ID,主键,自增长 */
private Long idIncrement;
/** 菜单ID,主键,自增长 */
private List<Long> idList;
/** 表名称 */
private List<String> tableNameList;
/** 表标识 */
private List<String> tableMarkList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
public TableIndexQuery(){
}
/**
* 获取 开始 菜单ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 菜单ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 菜单ID,主键,自增长
* @return idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 菜单ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 菜单ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 菜单ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 菜单ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 菜单ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 表名称
* @return tableNameList
*/
public List<String> getTableNameList(){
return this.tableNameList;
}
/**
* 设置 表名称
* @param tableNameList
*/
public void setTableNameList(List<String> tableNameList){
this.tableNameList = tableNameList;
}
/**
* 获取 表标识
* @return tableMarkList
*/
public List<String> getTableMarkList(){
return this.tableMarkList;
}
/**
* 设置 表标识
* @param tableMarkList
*/
public void setTableMarkList(List<String> tableMarkList){
this.tableMarkList = tableMarkList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
}
\ No newline at end of file
/**
* 文件:TableIndexService.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.table.service;
import com.mortals.framework.dao.ICRUDSubmeterDao;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.TableParam;
import com.mortals.framework.service.ICRUDService;
import com.mortals.framework.service.IManagerService;
import com.mortals.framework.service.ITaskExcuteService;
import com.mortals.xhx.base.system.table.model.TableIndexEntity;
import java.util.Set;
/**
* <p>Title: 分表索引信息</p>
* <p>Description: TableIndexService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface TableIndexService extends ICRUDService<TableIndexEntity,Long> , ITaskExcuteService, IManagerService {
/**
* 查询上个月创建的表集合
*
* @return
* @throws AppException
*/
Set<String> findPrevMonthTables() throws AppException;
/**
* 查询最近3个月创建的表集合
*
* @return
* @throws AppException
*/
Set<String> findThreeMonthTables() throws AppException;
/**
* 保存表信息
*
* @param tableName
* @param tableMark
* @return
* @throws AppException
*/
int saveTableName(String tableName, String tableMark) throws AppException;
/**
* 创建表
*
* @param submeterDao
* @param param
* @return
* @throws AppException
*/
boolean createTable(ICRUDSubmeterDao submeterDao, TableParam param) throws AppException;
}
\ No newline at end of file
/**
* 文件:TableIndexServiceImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.table.service.impl;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.dao.ICRUDSubmeterDao;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.TableParam;
import com.mortals.framework.service.ITask;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.DateUtils;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.table.dao.TableIndexDao;
import com.mortals.xhx.base.system.table.model.TableIndexEntity;
import com.mortals.xhx.base.system.table.model.TableIndexQuery;
import com.mortals.xhx.base.system.table.service.TableIndexService;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>Title: 分表索引信息</p>
* <p>Description: TableIndexServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Service("tableIndexService")
public class TableIndexServiceImpl extends AbstractCRUDServiceImpl<TableIndexDao,TableIndexEntity,Long> implements TableIndexService {
/**
* 查询最近1个月创建的表集合
* @return
*/
public Set<String> findLastMonthTables() {
Set<String> retList = new HashSet<String>();
try {
TableIndexQuery params = new TableIndexQuery();
params.setCreateTimeStart(DateUtils.addMonth(new Date(), -1, "yyyy-MM-dd"));
List<TableIndexEntity> list = dao.getList(params);
for (TableIndexEntity entity : list) {
if (StringUtils.isNotEmpty(entity.getTableName())) {
retList.add(entity.getTableName());
}
}
} catch (Exception e) {
log.error("查询分表索引异常-->" + e.getMessage());
}
return retList;
}
@Override
public Set<String> findPrevMonthTables() throws AppException {
Set<String> retList = new HashSet<String>();
try {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, -1);
String startTime = DateUtils.getDateTime(cal.getTime(), "yyyy-MM-dd");
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
String endTime = DateUtils.getDateTime(cal.getTime(), "yyyy-MM-dd");
TableIndexQuery params = new TableIndexQuery();
params.setCreateTimeStart(startTime);
params.setCreateTimeEnd(endTime);
List<TableIndexEntity> list = dao.getList(params);
for (TableIndexEntity entity : list) {
if (StringUtils.isNotEmpty(entity.getTableName())) {
retList.add(entity.getTableName());
}
}
} catch (Exception e) {
log.error("查询分表索引异常-->" + e.getMessage());
}
return retList;
}
@Override
public Set<String> findThreeMonthTables() throws AppException {
Set<String> retList = new HashSet<String>();
try {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, -3);
String startTime = DateUtils.getDateTime(cal.getTime(), "yyyy-MM-dd");
TableIndexQuery params = new TableIndexQuery();
params.setCreateTimeStart(startTime);
List<TableIndexEntity> list = dao.getList(params);
for (TableIndexEntity entity : list) {
if (StringUtils.isNotEmpty(entity.getTableName())) {
retList.add(entity.getTableName());
}
}
} catch (Exception e) {
log.error("查询分表索引异常-->" + e.getMessage());
}
return retList;
}
@Override
public int saveTableName(String tableName, String tableMark) throws AppException {
TableIndexEntity table = new TableIndexEntity();
table.setTableName(tableName);
table.setTableMark(tableMark);
table.setCreateTime(new Date());
return dao.insert(table);
}
@Override
public boolean createTable(ICRUDSubmeterDao submeterDao, TableParam param) {
boolean ret = false;
TableParam retParam = null;
try {
retParam = submeterDao.createTable(param);
if (retParam != null && retParam.tableMap != null && retParam.tableMap.size() > 0) {
log.info("创建表-->" + retParam.tableMap.keySet());
}
} catch (Exception e) {
log.error("执行创建表任务异常-->" + submeterDao, e);
}
if (retParam != null && retParam.tableMap != null && retParam.tableMap.size() > 0) {
TableIndexQuery condition = new TableIndexQuery();
condition.setTableNameList(Arrays.asList(retParam.tableMap.keySet().toArray(new String[]{})));
Set<String> tableRecords = this.find(condition, null).stream().map(t -> t.getTableName()).collect(Collectors.toSet());
Date currDate = new Date();
for (Map.Entry<String, String> ee : retParam.tableMap.entrySet()) {
String tableName = ee.getKey();
if(tableRecords.contains(tableName)) {
continue;
}
String tableMark = ee.getValue();
try {
TableIndexEntity table = new TableIndexEntity();
table.setTableName(tableName);
table.setTableMark(tableMark);
table.setCreateTime(currDate);
dao.insert(table);
ret = true;
} catch (Exception e) {
log.error("保存分表索引数据异常,原因:" + e.getMessage());
}
}
}
return ret;
}
@SuppressWarnings("rawtypes")
private void createTable() throws AppException {
log.info("执行表创建服务...");
Map<String, ICRUDSubmeterDao> map = GlobalSysInfo.getBeansByType(ICRUDSubmeterDao.class);
if (map == null || map.isEmpty()) {
return;
}
Date currDate = new Date();
Set<String> existsTables = this.findLastMonthTables();
TableParam param = new TableParam();
param.unionTime = currDate;
param.filterTables = existsTables;
param.isCreateTable = true;
for (Map.Entry<String, ICRUDSubmeterDao> entry : map.entrySet()) {
this.createTable(entry.getValue(), param);
}
log.info("表创建完成!");
}
@Override
public void excuteTask(ITask task) throws AppException {
this.createTable();
}
@Override
public void stopTask(ITask task) throws AppException {
}
@Override
public void startService() throws AppException {
this.createTable();
}
@Override
public void stopService() throws AppException {
}
}
\ No newline at end of file
/**
* 文件:TableIndexController.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.table.web;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.base.system.table.model.TableIndexEntity;
import com.mortals.xhx.base.system.table.service.TableIndexService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>Title: 分表索引信息</p>
* <p>Description: TableIndexController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@RestController
@RequestMapping("table/index")
public class TableIndexController extends BaseCRUDJsonMappingController<TableIndexService, TableIndexForm,TableIndexEntity,Long> {
public TableIndexController(){
super.setFormClass(TableIndexForm.class);
super.setModuleDesc("分表索引信息");
}
}
\ No newline at end of file
/**
* 文件:TableIndexForm.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.table.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.base.system.table.model.TableIndexEntity;
import com.mortals.xhx.base.system.table.model.TableIndexQuery;
/**
* <p>Title: 分表索引信息</p>
* <p>Description: TableIndexForm </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class TableIndexForm extends BaseCRUDFormLong<TableIndexEntity> {
private TableIndexEntity entity = new TableIndexEntity();
private TableIndexQuery query = new TableIndexQuery();
public TableIndexForm(){
}
@Override
public TableIndexEntity getEntity() {
return entity;
}
public void setEntity(TableIndexEntity entity) {
this.entity = entity;
}
@Override
public TableIndexQuery getQuery() {
return query;
}
public void setQuery(TableIndexQuery query) {
this.query = query;
}
}
\ No newline at end of file
/**
* 文件:TaskDao.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.task.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.base.system.task.model.TaskEntity;
/**
* <p>Title: 任务信息</p>
* <p>Description: TaskDao DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface TaskDao extends ICRUDDao<TaskEntity,Long> {
}
\ No newline at end of file
/**
* 文件:TaskDaoImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.task.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.base.system.task.dao.TaskDao;
import com.mortals.xhx.base.system.task.model.TaskEntity;
import org.springframework.stereotype.Repository;
/**
* <p>Title: 任务信息</p>
* <p>Description: TaskDaoImpl DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Repository("taskDao")
public class TaskDaoImpl extends BaseCRUDDaoMybatis<TaskEntity,Long> implements TaskDao {
}
\ No newline at end of file
/**
* 文件:TaskEntity.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.task.model;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.framework.service.ITask;
import java.util.Date;
/**
* <p>Title: 任务信息</p>
* <p>Description: TaskEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class TaskEntity extends BaseEntityLong implements ITask{
private static final long serialVersionUID = 1547777703372L;
/** 任务名称 */
private String name;
/** 任务关键字,区分任务执行流程 */
private String taskKey;
/** 任务状态,0:未启动,1:执行中,默认0 */
private Integer status;
/** 任务执行服务 */
private String excuteService;
/** 任务执行参数 */
private String excuteParam;
/** 任务执行主机,为空表示不限制任务的执行主机,多个用逗号分隔 */
private String excuteHost;
/** 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1 */
private Integer excuteStrategy;
/** 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0 */
private Integer excuteDate;
/** 执行时间,格式:HH:mm,默认:00:00 */
private String excuteTime;
/** 备注 */
private String remark;
/** 最后执行主机 */
private String lastExcuteHost;
/** 最后执行时间 */
private Date lastExcuteTime;
/** 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0 */
private Integer interimExcuteStatus;
/** 创建时间 */
private Date createTime;
/** 创建用户 */
private Long createUserId;
/** 创建用户名称 */
private String createUserName;
public TaskEntity(){
}
/**
* 获取 任务名称
* @return name
*/
public String getName(){
return this.name;
}
/**
* 设置 任务名称
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 任务关键字,区分任务执行流程
* @return taskKey
*/
public String getTaskKey(){
return this.taskKey;
}
/**
* 设置 任务关键字,区分任务执行流程
* @param taskKey
*/
public void setTaskKey(String taskKey){
this.taskKey = taskKey;
}
/**
* 获取 任务状态,0:未启动,1:执行中,默认0
* @return status
*/
public Integer getStatus(){
return this.status;
}
/**
* 设置 任务状态,0:未启动,1:执行中,默认0
* @param status
*/
public void setStatus(Integer status){
this.status = status;
}
/**
* 获取 任务执行服务
* @return excuteService
*/
public String getExcuteService(){
return this.excuteService;
}
/**
* 设置 任务执行服务
* @param excuteService
*/
public void setExcuteService(String excuteService){
this.excuteService = excuteService;
}
/**
* 获取 任务执行参数
* @return excuteParam
*/
public String getExcuteParam(){
return this.excuteParam;
}
/**
* 设置 任务执行参数
* @param excuteParam
*/
public void setExcuteParam(String excuteParam){
this.excuteParam = excuteParam;
}
/**
* 获取 任务执行主机,为空表示不限制任务的执行主机,多个用逗号分隔
* @return excuteHost
*/
public String getExcuteHost(){
return this.excuteHost;
}
/**
* 设置 任务执行主机,为空表示不限制任务的执行主机,多个用逗号分隔
* @param excuteHost
*/
public void setExcuteHost(String excuteHost){
this.excuteHost = excuteHost;
}
/**
* 获取 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @return excuteStrategy
*/
public Integer getExcuteStrategy(){
return this.excuteStrategy;
}
/**
* 设置 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @param excuteStrategy
*/
public void setExcuteStrategy(Integer excuteStrategy){
this.excuteStrategy = excuteStrategy;
}
/**
* 获取 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @return excuteDate
*/
public Integer getExcuteDate(){
return this.excuteDate;
}
/**
* 设置 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @param excuteDate
*/
public void setExcuteDate(Integer excuteDate){
this.excuteDate = excuteDate;
}
/**
* 获取 执行时间,格式:HH:mm,默认:00:00
* @return excuteTime
*/
public String getExcuteTime(){
return this.excuteTime;
}
/**
* 设置 执行时间,格式:HH:mm,默认:00:00
* @param excuteTime
*/
public void setExcuteTime(String excuteTime){
this.excuteTime = excuteTime;
}
/**
* 获取 备注
* @return remark
*/
public String getRemark(){
return this.remark;
}
/**
* 设置 备注
* @param remark
*/
public void setRemark(String remark){
this.remark = remark;
}
/**
* 获取 最后执行主机
* @return lastExcuteHost
*/
public String getLastExcuteHost(){
return this.lastExcuteHost;
}
/**
* 设置 最后执行主机
* @param lastExcuteHost
*/
public void setLastExcuteHost(String lastExcuteHost){
this.lastExcuteHost = lastExcuteHost;
}
/**
* 获取 最后执行时间
* @return lastExcuteTime
*/
public Date getLastExcuteTime(){
return this.lastExcuteTime;
}
/**
* 设置 最后执行时间
* @param lastExcuteTime
*/
public void setLastExcuteTime(Date lastExcuteTime){
this.lastExcuteTime = lastExcuteTime;
}
/**
* 获取 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @return interimExcuteStatus
*/
public Integer getInterimExcuteStatus(){
return this.interimExcuteStatus;
}
/**
* 设置 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @param interimExcuteStatus
*/
public void setInterimExcuteStatus(Integer interimExcuteStatus){
this.interimExcuteStatus = interimExcuteStatus;
}
/**
* 获取 创建时间
* @return createTime
*/
public Date getCreateTime(){
return this.createTime;
}
/**
* 设置 创建时间
* @param createTime
*/
public void setCreateTime(Date createTime){
this.createTime = createTime;
}
/**
* 获取 创建用户
* @return createUserId
*/
public Long getCreateUserId(){
return this.createUserId;
}
/**
* 设置 创建用户
* @param createUserId
*/
public void setCreateUserId(Long createUserId){
this.createUserId = createUserId;
}
/**
* 获取 创建用户名称
* @return createUserName
*/
public String getCreateUserName(){
return this.createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof TaskEntity) {
TaskEntity tmp = (TaskEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append("id:").append(getId())
.append(",name:").append(getName())
.append(",taskKey:").append(getTaskKey())
.append(",status:").append(getStatus())
.append(",excuteService:").append(getExcuteService())
.append(",excuteParam:").append(getExcuteParam())
.append(",excuteHost:").append(getExcuteHost())
.append(",excuteStrategy:").append(getExcuteStrategy())
.append(",excuteDate:").append(getExcuteDate())
.append(",excuteTime:").append(getExcuteTime())
.append(",remark:").append(getRemark())
.append(",lastExcuteHost:").append(getLastExcuteHost())
.append(",lastExcuteTime:").append(getLastExcuteTime())
.append(",interimExcuteStatus:").append(getInterimExcuteStatus())
.append(",createTime:").append(getCreateTime())
.append(",createUserId:").append(getCreateUserId())
.append(",createUserName:").append(getCreateUserName());
return sb.toString();
}
public void initAttrValue(){
this.name = null;
this.taskKey = null;
this.status = 0;
this.excuteService = null;
this.excuteParam = null;
this.excuteHost = null;
this.excuteStrategy = 1;
this.excuteDate = 0;
this.excuteTime = "00";
this.remark = null;
this.lastExcuteHost = null;
this.lastExcuteTime = null;
this.interimExcuteStatus = 0;
this.createTime = null;
this.createUserId = null;
this.createUserName = null;
}
}
\ No newline at end of file
/**
* 文件:TaskQuery.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.task.model;
import java.util.List;
/**
* <p>Title: 任务信息</p>
* <p>Description: TaskQuery </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class TaskQuery extends TaskEntity{
private static final long serialVersionUID = 1547777703373L;
/** 开始 序号,主键,自增长 */
private Long idStart;
/** 结束 序号,主键,自增长 */
private Long idEnd;
/** 增加 序号,主键,自增长 */
private Long idIncrement;
/** 序号,主键,自增长 */
private List<Long> idList;
/** 任务名称 */
private List<String> nameList;
/** 任务关键字,区分任务执行流程 */
private List<String> taskKeyList;
/** 开始 任务状态,0:未启动,1:执行中,默认0 */
private Integer statusStart;
/** 结束 任务状态,0:未启动,1:执行中,默认0 */
private Integer statusEnd;
/** 增加 任务状态,0:未启动,1:执行中,默认0 */
private Integer statusIncrement;
/** 任务状态,0:未启动,1:执行中,默认0 */
private List<Integer> statusList;
/** 任务执行服务 */
private List<String> excuteServiceList;
/** 任务执行参数 */
private List<String> excuteParamList;
/** 任务执行主机,为空表示不限制任务的执行主机,多个用逗号分隔 */
private List<String> excuteHostList;
/** 开始 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1 */
private Integer excuteStrategyStart;
/** 结束 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1 */
private Integer excuteStrategyEnd;
/** 增加 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1 */
private Integer excuteStrategyIncrement;
/** 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1 */
private List<Integer> excuteStrategyList;
/** 开始 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0 */
private Integer excuteDateStart;
/** 结束 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0 */
private Integer excuteDateEnd;
/** 增加 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0 */
private Integer excuteDateIncrement;
/** 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0 */
private List<Integer> excuteDateList;
/** 执行时间,格式:HH:mm,默认:00:00 */
private List<String> excuteTimeList;
/** 备注 */
private List<String> remarkList;
/** 最后执行主机 */
private List<String> lastExcuteHostList;
/** 开始 最后执行时间 */
private String lastExcuteTimeStart;
/** 结束 最后执行时间 */
private String lastExcuteTimeEnd;
/** 开始 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0 */
private Integer interimExcuteStatusStart;
/** 结束 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0 */
private Integer interimExcuteStatusEnd;
/** 增加 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0 */
private Integer interimExcuteStatusIncrement;
/** 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0 */
private List<Integer> interimExcuteStatusList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户 */
private List<Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
public TaskQuery(){
}
/**
* 获取 开始 序号,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 序号,主键,自增长
* @return idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 序号,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 任务名称
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 任务名称
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 任务关键字,区分任务执行流程
* @return taskKeyList
*/
public List<String> getTaskKeyList(){
return this.taskKeyList;
}
/**
* 设置 任务关键字,区分任务执行流程
* @param taskKeyList
*/
public void setTaskKeyList(List<String> taskKeyList){
this.taskKeyList = taskKeyList;
}
/**
* 获取 开始 任务状态,0:未启动,1:执行中,默认0
* @return statusStart
*/
public Integer getStatusStart(){
return this.statusStart;
}
/**
* 设置 开始 任务状态,0:未启动,1:执行中,默认0
* @param statusStart
*/
public void setStatusStart(Integer statusStart){
this.statusStart = statusStart;
}
/**
* 获取 结束 任务状态,0:未启动,1:执行中,默认0
* @return statusEnd
*/
public Integer getStatusEnd(){
return this.statusEnd;
}
/**
* 设置 结束 任务状态,0:未启动,1:执行中,默认0
* @param statusEnd
*/
public void setStatusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
}
/**
* 获取 增加 任务状态,0:未启动,1:执行中,默认0
* @return statusIncrement
*/
public Integer getStatusIncrement(){
return this.statusIncrement;
}
/**
* 设置 增加 任务状态,0:未启动,1:执行中,默认0
* @param statusIncrement
*/
public void setStatusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
}
/**
* 获取 任务状态,0:未启动,1:执行中,默认0
* @return statusList
*/
public List<Integer> getStatusList(){
return this.statusList;
}
/**
* 设置 任务状态,0:未启动,1:执行中,默认0
* @param statusList
*/
public void setStatusList(List<Integer> statusList){
this.statusList = statusList;
}
/**
* 获取 任务执行服务
* @return excuteServiceList
*/
public List<String> getExcuteServiceList(){
return this.excuteServiceList;
}
/**
* 设置 任务执行服务
* @param excuteServiceList
*/
public void setExcuteServiceList(List<String> excuteServiceList){
this.excuteServiceList = excuteServiceList;
}
/**
* 获取 任务执行参数
* @return excuteParamList
*/
public List<String> getExcuteParamList(){
return this.excuteParamList;
}
/**
* 设置 任务执行参数
* @param excuteParamList
*/
public void setExcuteParamList(List<String> excuteParamList){
this.excuteParamList = excuteParamList;
}
/**
* 获取 任务执行主机,为空表示不限制任务的执行主机,多个用逗号分隔
* @return excuteHostList
*/
public List<String> getExcuteHostList(){
return this.excuteHostList;
}
/**
* 设置 任务执行主机,为空表示不限制任务的执行主机,多个用逗号分隔
* @param excuteHostList
*/
public void setExcuteHostList(List<String> excuteHostList){
this.excuteHostList = excuteHostList;
}
/**
* 获取 开始 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @return excuteStrategyStart
*/
public Integer getExcuteStrategyStart(){
return this.excuteStrategyStart;
}
/**
* 设置 开始 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @param excuteStrategyStart
*/
public void setExcuteStrategyStart(Integer excuteStrategyStart){
this.excuteStrategyStart = excuteStrategyStart;
}
/**
* 获取 结束 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @return excuteStrategyEnd
*/
public Integer getExcuteStrategyEnd(){
return this.excuteStrategyEnd;
}
/**
* 设置 结束 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @param excuteStrategyEnd
*/
public void setExcuteStrategyEnd(Integer excuteStrategyEnd){
this.excuteStrategyEnd = excuteStrategyEnd;
}
/**
* 获取 增加 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @return excuteStrategyIncrement
*/
public Integer getExcuteStrategyIncrement(){
return this.excuteStrategyIncrement;
}
/**
* 设置 增加 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @param excuteStrategyIncrement
*/
public void setExcuteStrategyIncrement(Integer excuteStrategyIncrement){
this.excuteStrategyIncrement = excuteStrategyIncrement;
}
/**
* 获取 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @return excuteStrategyList
*/
public List<Integer> getExcuteStrategyList(){
return this.excuteStrategyList;
}
/**
* 设置 执行策略,1:按日,2:按周,3:按月,4:按间隔时间,默认1
* @param excuteStrategyList
*/
public void setExcuteStrategyList(List<Integer> excuteStrategyList){
this.excuteStrategyList = excuteStrategyList;
}
/**
* 获取 开始 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @return excuteDateStart
*/
public Integer getExcuteDateStart(){
return this.excuteDateStart;
}
/**
* 设置 开始 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @param excuteDateStart
*/
public void setExcuteDateStart(Integer excuteDateStart){
this.excuteDateStart = excuteDateStart;
}
/**
* 获取 结束 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @return excuteDateEnd
*/
public Integer getExcuteDateEnd(){
return this.excuteDateEnd;
}
/**
* 设置 结束 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @param excuteDateEnd
*/
public void setExcuteDateEnd(Integer excuteDateEnd){
this.excuteDateEnd = excuteDateEnd;
}
/**
* 获取 增加 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @return excuteDateIncrement
*/
public Integer getExcuteDateIncrement(){
return this.excuteDateIncrement;
}
/**
* 设置 增加 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @param excuteDateIncrement
*/
public void setExcuteDateIncrement(Integer excuteDateIncrement){
this.excuteDateIncrement = excuteDateIncrement;
}
/**
* 获取 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @return excuteDateList
*/
public List<Integer> getExcuteDateList(){
return this.excuteDateList;
}
/**
* 设置 执行日期,按日:则为0;按周:则为1-7;按月:则为:1-31;按间隔时间:则为间隔时间,单位:秒;默认0
* @param excuteDateList
*/
public void setExcuteDateList(List<Integer> excuteDateList){
this.excuteDateList = excuteDateList;
}
/**
* 获取 执行时间,格式:HH:mm,默认:00:00
* @return excuteTimeList
*/
public List<String> getExcuteTimeList(){
return this.excuteTimeList;
}
/**
* 设置 执行时间,格式:HH:mm,默认:00:00
* @param excuteTimeList
*/
public void setExcuteTimeList(List<String> excuteTimeList){
this.excuteTimeList = excuteTimeList;
}
/**
* 获取 备注
* @return remarkList
*/
public List<String> getRemarkList(){
return this.remarkList;
}
/**
* 设置 备注
* @param remarkList
*/
public void setRemarkList(List<String> remarkList){
this.remarkList = remarkList;
}
/**
* 获取 最后执行主机
* @return lastExcuteHostList
*/
public List<String> getLastExcuteHostList(){
return this.lastExcuteHostList;
}
/**
* 设置 最后执行主机
* @param lastExcuteHostList
*/
public void setLastExcuteHostList(List<String> lastExcuteHostList){
this.lastExcuteHostList = lastExcuteHostList;
}
/**
* 获取 开始 最后执行时间
* @return lastExcuteTimeStart
*/
public String getLastExcuteTimeStart(){
return this.lastExcuteTimeStart;
}
/**
* 设置 开始 最后执行时间
* @param lastExcuteTimeStart
*/
public void setLastExcuteTimeStart(String lastExcuteTimeStart){
this.lastExcuteTimeStart = lastExcuteTimeStart;
}
/**
* 获取 结束 最后执行时间
* @return lastExcuteTimeEnd
*/
public String getLastExcuteTimeEnd(){
return this.lastExcuteTimeEnd;
}
/**
* 设置 结束 最后执行时间
* @param lastExcuteTimeEnd
*/
public void setLastExcuteTimeEnd(String lastExcuteTimeEnd){
this.lastExcuteTimeEnd = lastExcuteTimeEnd;
}
/**
* 获取 开始 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @return interimExcuteStatusStart
*/
public Integer getInterimExcuteStatusStart(){
return this.interimExcuteStatusStart;
}
/**
* 设置 开始 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @param interimExcuteStatusStart
*/
public void setInterimExcuteStatusStart(Integer interimExcuteStatusStart){
this.interimExcuteStatusStart = interimExcuteStatusStart;
}
/**
* 获取 结束 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @return interimExcuteStatusEnd
*/
public Integer getInterimExcuteStatusEnd(){
return this.interimExcuteStatusEnd;
}
/**
* 设置 结束 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @param interimExcuteStatusEnd
*/
public void setInterimExcuteStatusEnd(Integer interimExcuteStatusEnd){
this.interimExcuteStatusEnd = interimExcuteStatusEnd;
}
/**
* 获取 增加 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @return interimExcuteStatusIncrement
*/
public Integer getInterimExcuteStatusIncrement(){
return this.interimExcuteStatusIncrement;
}
/**
* 设置 增加 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @param interimExcuteStatusIncrement
*/
public void setInterimExcuteStatusIncrement(Integer interimExcuteStatusIncrement){
this.interimExcuteStatusIncrement = interimExcuteStatusIncrement;
}
/**
* 获取 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @return interimExcuteStatusList
*/
public List<Integer> getInterimExcuteStatusList(){
return this.interimExcuteStatusList;
}
/**
* 设置 临时执行状态,0:未启用,1:立即执行并保留,2:立即执行并删除,默认0
* @param interimExcuteStatusList
*/
public void setInterimExcuteStatusList(List<Integer> interimExcuteStatusList){
this.interimExcuteStatusList = interimExcuteStatusList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
}
\ No newline at end of file
/**
* 文件:TaskService.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.task.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.base.system.task.model.TaskEntity;
/**
* <p>Title: 任务信息</p>
* <p>Description: TaskService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface TaskService extends ICRUDService<TaskEntity,Long> {
boolean doForceUpdateTaskLock(TaskEntity task);
boolean doForceUpdateTaskUnLock(TaskEntity task);
boolean doForceUpdateTaskUnLock(String excuteHost);
}
\ No newline at end of file
/**
* 文件:TaskServiceImpl.java 版本:1.0.0 日期: Copyright &reg; All right reserved.
*/
package com.mortals.xhx.base.system.task.service.impl;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.common.code.ExcuteStatus;
import com.mortals.framework.common.code.TaskExcuteStrategy;
import com.mortals.framework.common.code.TaskInterimExcuteStatus;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ITaskExcuteService;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.springcloud.service.IApplicationStartedService;
import com.mortals.framework.util.DateUtils;
import com.mortals.framework.util.StringUtils;
import com.mortals.framework.util.SystemUtil;
import com.mortals.xhx.base.system.task.dao.TaskDao;
import com.mortals.xhx.base.system.task.model.TaskEntity;
import com.mortals.xhx.base.system.task.model.TaskQuery;
import com.mortals.xhx.base.system.task.service.TaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* <p>
* Title: 任务信息
* </p>
* <p>
* Description: TaskServiceImpl service接口
* </p>
* <p>
* Copyright: Copyright &reg;
* </p>
* <p>
* Company:
* </p>
*
* @author
* @version 1.0.0
*/
@Service("taskService")
public class TaskServiceImpl extends AbstractCRUDServiceImpl<TaskDao, TaskEntity, Long>
implements TaskService, IApplicationStartedService {//
private boolean isStop = false;
/** 休眠时间 */
private long sleepTime = 1000;
private boolean isUnlockSuccess = true;
private TaskEntity prevTask = null;
private Thread thread = null;
/** 日志打印时间,key:任务ID,value:最后一次打印日志时间 */
private Map<Long, Long> printLogTime = new HashMap<Long, Long>();
@Autowired(required=false)
private TaskService taskService;
public boolean doForceUpdateTaskLock(TaskEntity task) throws AppException {
if (task == null) {
return false;
}
Map<String, Object> data = new HashMap<String, Object>();
data.put("status", ExcuteStatus.RUNNING.getValue());
data.put("lastExcuteHost", task.getLastExcuteHost());
Map<String, Object> condition = new HashMap<String, Object>();
condition.put("status", ExcuteStatus.WAIT_RUN.getValue());
condition.put("id", task.getId());
int ret = dao.update(data, condition);
return ret > 0 ? true : false;
}
public boolean doForceUpdateTaskUnLock(TaskEntity task) throws AppException {
int ret = 0;
if (task.getInterimExcuteStatus() == TaskInterimExcuteStatus.IMMEDIATE_EXECUTION_BEFORE_DELETE.getValue()) {
ret = dao.delete(task.getId());
} else {
Map<String, Object> data = new HashMap<String, Object>();
data.put("status", ExcuteStatus.WAIT_RUN.getValue());
data.put("interimExcuteStatus", TaskInterimExcuteStatus.UNUSE.getValue());
if (task.getLastExcuteTime() != null) {
data.put("lastExcuteTime", task.getLastExcuteTime());
}
Map<String, Object> condition = new HashMap<String, Object>();
condition.put("status", ExcuteStatus.RUNNING.getValue());
condition.put("id", task.getId());
ret = this.dao.update(data, condition);
}
return ret > 0 ? true : false;
}
public boolean doForceUpdateTaskUnLock(String excuteHost) throws AppException {
if (StringUtils.isEmpty(excuteHost)) {
return false;
}
Map<String, Object> data = new HashMap<String, Object>();
data.put("status", ExcuteStatus.WAIT_RUN.getValue());
Map<String, Object> condition = new HashMap<String, Object>();
condition.put("lastExcuteHost", excuteHost);
int ret = this.dao.update(data, condition);
return ret > 0 ? true : false;
}
private int converTime(String time) {
if (StringUtils.isEmpty(time)) {
return 0;
}
String[] times = time.trim().split(":");
StringBuffer ret = new StringBuffer();
for (String tt : times) {
tt = StringUtils.trim(tt);
while (tt.length() < 2) {
tt = "0" + tt;
}
ret.append(tt);
}
return Integer.parseInt(ret.toString());
}
private boolean checkPrintLog(TaskEntity task) {
if (task == null) {
return true;
}
int strategy = task.getExcuteStrategy() == null ? -1 : task.getExcuteStrategy();
if (strategy == TaskExcuteStrategy.INTERVAL.getValue())// 按间隔时间
{
long currTime = System.currentTimeMillis();
Long lastPrintTime = printLogTime.get(task.getId());
if (lastPrintTime == null || lastPrintTime.longValue() == 0
|| (currTime - lastPrintTime.longValue()) >= 600000) {
printLogTime.put(task.getId(), currTime);
return true;
}
return false;
}
return true;
}
@Override
public int getOrder() {
return 100;
}
@Override
public void start() throws AppException {
final String localIp = SystemUtil.getLocalHostIp();
log.info("任务执行线程启动...-->" + localIp);
thread = new Thread(() -> {
// 将本机上次执行而未完成的任务状态变更
try {
taskService.doForceUpdateTaskUnLock(localIp);
} catch (Throwable e) {
log.error("释放上次执行而未完成的任务锁失败-->" + localIp, e);
}
int threadSize = 10;
ExecutorService executorService = Executors.newFixedThreadPool(threadSize);
while (!isStop) {
if (!isUnlockSuccess && prevTask != null) {
try {
taskService.doForceUpdateTaskUnLock(prevTask);
isUnlockSuccess = true;
prevTask = null;
} catch (Throwable e) {
isUnlockSuccess = false;
if (checkPrintLog(prevTask)) {
log.error("释放任务锁失败-->" + prevTask, e);
}
try {
Thread.sleep(sleepTime);
} catch (Throwable ex) {
}
continue;
}
}
Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_MONTH);
int week = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (week == 0) {
week = 7;
}
int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int currTime = converTime(cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE));
try {
TaskQuery params = new TaskQuery();
params.setStatus(ExcuteStatus.WAIT_RUN.getValue());
List<TaskEntity> taskList = find(params, null);
if (taskList != null && taskList.size() > 0) {
final Date currDateTime = cal.getTime();
String currDateTimeStr = DateUtils.getDateTime(currDateTime, "yyyyMMddHHmm");
for (TaskEntity task : taskList) {
try {
String allowExcuteHost = task.getExcuteHost();
if (StringUtils.isNotEmpty(allowExcuteHost)
&& ("," + allowExcuteHost + ",").indexOf("," + localIp + ",") == -1) {
continue;
}
int strategy = task.getExcuteStrategy() == null ? -1 : task.getExcuteStrategy();
int excuteDate = task.getExcuteDate() == null ? -1 : task.getExcuteDate();
int interimExcuteStatus = task.getInterimExcuteStatus() == null ? -1
: task.getInterimExcuteStatus();
int excuteTime = converTime(task.getExcuteTime());
Date lastExcuteTime = task.getLastExcuteTime();
String lastExcuteTimeStr = "";
if (lastExcuteTime != null) {
lastExcuteTimeStr = DateUtils.getDateTime(lastExcuteTime, "yyyyMMddHHmm");
}
if (interimExcuteStatus != TaskInterimExcuteStatus.UNUSE.getValue() // 启用立即执行
|| ((strategy == TaskExcuteStrategy.DAY.getValue() // 按天
|| (strategy == TaskExcuteStrategy.WEEK.getValue()
&& week == excuteDate)
// 按周
|| (strategy == TaskExcuteStrategy.MONTH.getValue()
&& (day == excuteDate
|| (excuteDate > maxDay && day == maxDay))))// 按月
&& (excuteTime == currTime
&& !lastExcuteTimeStr.equals(currDateTimeStr)) // 执行间隔最少为一天
) || (strategy == TaskExcuteStrategy.INTERVAL.getValue() // 按间隔时间
&& (lastExcuteTime == null || lastExcuteTime.getTime()
+ excuteDate * 1000 <= currDateTime.getTime()))) {
final boolean printLog = checkPrintLog(task);
Object excuteBean = GlobalSysInfo.getBeanByName(task.getExcuteService());
if (excuteBean == null || !(excuteBean instanceof ITaskExcuteService)) {
if (printLog) {
log.warn("未获取到服务执行组件,任务执行失败!-->" + task);
}
continue;
}
final ITaskExcuteService excuteService = (ITaskExcuteService) excuteBean;
task.setLastExcuteHost(localIp);
if (taskService.doForceUpdateTaskLock(task)) {
task.setStatus(ExcuteStatus.RUNNING.getValue());
final TaskEntity excuteTask = task;
executorService.execute(new Runnable() {
@Override
public void run() {
try {
if (printLog) {
log.info("开始执行任务...-->" + excuteTask);
}
long startTime = System.currentTimeMillis();
excuteService.excuteTask(excuteTask);
// 执行成功,更新执行时间
excuteTask.setLastExcuteTime(currDateTime);
if (printLog) {
log.info("任务执行完成,用时:"
+ ((System.currentTimeMillis() - startTime) / 1000) + "秒-->"
+ excuteTask);
}
} catch (Throwable e) {
if (printLog) {
log.error("执行任务失败-->" + excuteTask, e);
}
if (strategy == TaskExcuteStrategy.INTERVAL.getValue()) {
// 按间隔时间,更新执行时间,避免一直重复执行
excuteTask.setLastExcuteTime(currDateTime);
}
} finally {
try {
taskService.doForceUpdateTaskUnLock(excuteTask);
isUnlockSuccess = true;
prevTask = null;
} catch (Throwable e) {
isUnlockSuccess = false;
prevTask = excuteTask;
if (printLog) {
log.error("释放任务锁失败-->" + excuteTask, e);
}
}
}
}
});
}
}
} catch (Throwable e) {
log.error("执行任务失败-->" + task, e);
}
}
}
} catch (Throwable e) {
log.error("获取任务信息失败", e);
}
try {
Thread.sleep(sleepTime);
} catch (Throwable e) {
}
}
executorService.shutdown();
log.info("任务执行线程退出!");
});
// thread.start();
}
@Override
public void stop() throws AppException {
this.isStop = true;
if (thread != null) {
thread.interrupt();
}
}
}
\ No newline at end of file
package com.mortals.xhx.base.system.task.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ITaskExcuteService;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.task.model.TaskEntity;
import com.mortals.xhx.base.system.task.model.TaskQuery;
import com.mortals.xhx.base.system.task.service.TaskService;
import com.mortals.xhx.common.code.DataSatusEnum;
import com.mortals.xhx.common.code.TaskExcuteStatusEnum;
import com.mortals.xhx.common.code.TaskExcuteStrategyEnum;
import com.mortals.xhx.common.code.TaskInterimExcuteStatusEnum;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* 任务信息
*
* @author: zxfei
* @date: 2022/5/7 15:39
*/
@RestController
@RequestMapping("task")
public class TaskController extends BaseCRUDJsonBodyMappingController<TaskService, TaskEntity, Long> {
public TaskController() {
super.setFormClass(TaskForm.class);
super.setModuleDesc("任务信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
Map<String, Object> status = new HashMap<String, Object>();
status.put("status", TaskExcuteStatusEnum.getEnumMap());
status.put("excuteStrategy", TaskExcuteStrategyEnum.getEnumMap());
status.put("interimExcuteStatus", TaskInterimExcuteStatusEnum.getEnumMap());
Map<String, ITaskExcuteService> serviceMap = GlobalSysInfo.getBeansByType(ITaskExcuteService.class);
Map<String, Object> serviceList = new HashMap<String, Object>();
if (serviceMap != null) {
try {
serviceMap.forEach((k, v) -> {
if (null != v) {
serviceList.put(k, k);
}
});
} catch (Exception ex) {
log.error("", ex);
}
}
model.put("excuteService", serviceList);
model.put(KEY_RESULT_DICT, status);
}
/**
* 改变状态
*/
@RequestMapping(value = "change/status")
public String changeStatus(TaskQuery query) {
JSONObject ret = new JSONObject();
Context context = getContext();
try {
TaskEntity entity = this.service.get(query.getId(), context);// .doSubmitAudit(form.getEntity(),
// context);
if (null == entity) {
throw new AppException("任务不存在!");
}
if (null == query.getStatus()) {
throw new AppException("任务状态不能为空!");
}
if (query.getStatus() != DataSatusEnum.ENABLE.getValue()
&& query.getStatus() != DataSatusEnum.DISENABLE.getValue()) {
throw new AppException("非法任务状态!");
}
String busiDesc = DataSatusEnum.getByValue(query.getStatus()).getDesc();
entity.setStatus(query.getStatus());
this.service.update(entity, context);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, busiDesc + "成功");
recordSysLog(request, busiDesc + " 【成功】 [id:" + entity.getId() + "]");
} catch (Exception e) {
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
}
\ No newline at end of file
/**
* 文件:TaskForm.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.task.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.base.system.task.model.TaskEntity;
import com.mortals.xhx.base.system.task.model.TaskQuery;
/**
* <p>Title: 任务信息</p>
* <p>Description: TaskForm </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class TaskForm extends BaseCRUDFormLong<TaskEntity> {
private TaskEntity entity = new TaskEntity();
private TaskQuery query = new TaskQuery();
public TaskForm(){
}
@Override
public TaskEntity getEntity() {
return entity;
}
public void setEntity(TaskEntity entity) {
this.entity = entity;
}
@Override
public TaskQuery getQuery() {
return query;
}
public void setQuery(TaskQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.base.system.upload.service;
import com.mortals.framework.service.IService;
import com.mortals.framework.service.IUser;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* <p>Title: 上传文件</p>
* <p>Description: UploadService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
public interface UploadService extends IService {
/**
* 保存文件
*
* @param file
* @param prePath
* @param user
* @return 文件路径(非全路径)
*/
String saveFileUpload(MultipartFile file, String prePath, IUser user);
/**
* 获取文件全路径
*
* @param filePath
* @return
*/
String getFilePath(String filePath);
/**
* 通用下载请求
*
* @param fileName 文件名称
* @param delete 是否删除
*/
void fileDownload(String fileName, Boolean delete, HttpServletResponse response);
void preview(String fileName, HttpServletResponse response);
void uploadDownload(String fileName, HttpServletResponse response);
void deleteFile(String fileName);
}
\ No newline at end of file
package com.mortals.xhx.base.system.upload.service.impl;
import cn.hutool.core.io.FileUtil;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.IUser;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.UploadFileType;
import lombok.Getter;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Date;
/**
* <p>Title: 上传文件</p>
* <p>Description: UploadServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
@Service("uploadService")
public class UploadServiceImpl implements UploadService {
private static Log log = LogFactory.getLog(UploadServiceImpl.class);
@Value("${upload.path}")
@Getter
private String filePath;
@Override
public String saveFileUpload(MultipartFile tempFile, String prePath, IUser user) {
if (tempFile == null || tempFile.getSize() == 0) {
throw new AppException("没有要上传的文件!");
}
String fileName = tempFile.getOriginalFilename();
String extension = FilenameUtils.getExtension(fileName);
UploadFileType type = UploadFileType.getFileType(extension);
if (type.getMaxSize() != 0 && tempFile.getSize() > type.getMaxSize()) {
log.error("文件上传大小超过限制,当前文件---" + tempFile.getSize() + ",允许大小----------" + type.getMaxSize());
throw new AppException("文件上传大小超过限制!");
}
if (null != fileName && fileName.length() > 50) {
throw new AppException("文件名称过长,无法上传!");
}
String rootPath = this.filePath.endsWith("/") ? this.filePath : this.filePath + "/";
String filePath = rootPath + (StringUtils.isEmpty(prePath) ? "" : prePath + "/");
File pathDir = new File(filePath);
if (!pathDir.exists()) {
pathDir.mkdirs();
}
String newName = new Date().getTime() + "." + extension;
String filePathAll = filePath + newName;
File uploadFile = new File(filePathAll);
try {
log.info("文件正在储存,filepath:"+filePathAll);
tempFile.transferTo(uploadFile);
} catch (Exception e) {
throw new AppException(e.getMessage());
}
return (StringUtils.isEmpty(prePath) ? "" : prePath + "/") + newName;
}
@Override
public String getFilePath(String path) {
String filePath = this.filePath.endsWith("/") ? this.filePath : this.filePath + "/";
return filePath + path;
}
@Override
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response) {
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
String filePath = this.filePath + fileName;
try {
response.setContentType(MediaType.IMAGE_JPEG_VALUE);
setAttachmentResponseHeader(response, realFileName);
FileUtil.writeToStream(filePath, response.getOutputStream());
} catch (Exception e) {
log.error("下载文件失败", e);
}
}
@Override
public void preview(String fileName, HttpServletResponse response) {
String filePath = this.filePath+"/file/preview/" + fileName;
try {
response.setContentType(MediaType.IMAGE_JPEG_VALUE);
setAttachmentResponseHeader(response, fileName);
FileUtil.writeToStream(filePath, response.getOutputStream());
} catch (Exception e) {
log.error("下载文件失败", e);
}
}
/**
* 下载文件名重新编码
*
* @param response 响应对象
* @param realFileName 真实文件名
* @return
*/
public void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException
{
String percentEncodedFileName = percentEncode(realFileName);
StringBuilder contentDispositionValue = new StringBuilder();
contentDispositionValue.append("attachment; filename=")
.append(percentEncodedFileName)
.append(";")
.append("filename*=")
.append("utf-8''")
.append(percentEncodedFileName);
response.setHeader("Content-disposition", contentDispositionValue.toString());
}
/**
* 百分号编码工具方法
*
* @param s 需要百分号编码的字符串
* @return 百分号编码后的字符串
*/
public String percentEncode(String s) throws UnsupportedEncodingException
{
String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
return encode.replaceAll("\\+", "%20");
}
@Override
public void uploadDownload(String fileName, HttpServletResponse response) {
String filePath = this.filePath+ fileName;
try {
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
setAttachmentResponseHeader(response, fileName);
FileUtil.writeToStream(filePath, response.getOutputStream());
} catch (Exception e) {
log.error("下载文件失败", e);
}
}
@Override
public void deleteFile(String fileName) {
String filePath = this.filePath+ fileName;
try {
FileUtil.del(filePath);
} catch (Exception e) {
log.error("下载文件失败", e);
}
}
}
\ No newline at end of file
package com.mortals.xhx.base.system.upload.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseController;
import com.mortals.xhx.base.system.upload.service.UploadService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
/**
* 上传文件
*
* @author: zxfei
* @date: 2021/11/30 10:06
*/
@RestController
@RequestMapping("file")
public class UploadController extends BaseController {
@Resource
private UploadService uploadService;
@RequestMapping(value = "upload")
public String doFileUpload(HttpServletRequest request, UploadForm form) {
Map<String, Object> model = new HashMap<>();
String jsonStr = "";
try {
String filePath = uploadService.saveFileUpload(form.getUploadFile(), form.getPrePath(), getCurUser());
model.put("url", filePath);
model.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
jsonStr = JSONObject.toJSONString(model);
} catch (AppException e) {
log.debug(e);
model.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
model.put(KEY_RESULT_MSG, e.getMessage());
jsonStr = JSONObject.toJSONString(model);
} catch (Exception e) {
doException(request, "上传文件", new HashMap<>(3), e);
model.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
model.put(KEY_RESULT_MSG, "文件上传失败");
jsonStr = JSONObject.toJSONString(model);
}
return jsonStr;
}
@RequestMapping(value = "commonupload")
public String doFileUpload(MultipartFile file, @RequestParam(value = "prePath",defaultValue = "file/fileupload") String prePath) {
Map<String, Object> model = new HashMap<>();
String jsonStr = "";
try {
String filePath = uploadService.saveFileUpload(file, prePath, getCurUser());
model.put("url", filePath);
model.put("fileName", file.getOriginalFilename());
model.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
jsonStr = JSONObject.toJSONString(model);
} catch (AppException e) {
log.debug(e);
model.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
model.put(KEY_RESULT_MSG, e.getMessage());
jsonStr = JSONObject.toJSONString(model);
} catch (Exception e) {
doException(request, "上传文件", new HashMap<>(3), e);
model.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
model.put(KEY_RESULT_MSG, "文件上传失败");
jsonStr = JSONObject.toJSONString(model);
}
return jsonStr;
}
/**
* 通用下载请求
*
* @param fileName 文件名称
* @param delete 是否删除
*/
@GetMapping("common/download")
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response) {
try {
uploadService.fileDownload(fileName, delete, response);
} catch (Exception e) {
log.error("下载文件失败", e);
}
}
/**
* 图片预览 (PathVariable)
*
* @param fileName 文件名称
*/
@GetMapping("preview/{fileName}")
public void preView(@PathVariable(value="fileName") String fileName, HttpServletResponse response) {
try {
uploadService.preview(fileName, response);
} catch (Exception e) {
log.error("下载文件失败:", e);
}
}
/**
* 通用文件下载
*
* @param fileName 文件名称
*/
@GetMapping("fileupload/{fileName}")
public void fileupload(@PathVariable(value="fileName") String fileName, HttpServletResponse response) {
try {
uploadService.uploadDownload(fileName, response);
} catch (Exception e) {
log.error("下载文件失败:", e);
}
}
}
\ No newline at end of file
package com.mortals.xhx.base.system.upload.web;
import com.mortals.framework.web.BaseForm;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>Title: 上传文件</p>
* <p>Description: UploadForm </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
public class UploadForm extends BaseForm {
private MultipartFile uploadFile;
private MultipartFile[] uploadMutiFile;
private String prePath;
public UploadForm() {
}
public MultipartFile getUploadFile() {
return uploadFile;
}
public void setUploadFile(MultipartFile uploadFile) {
this.uploadFile = uploadFile;
}
public MultipartFile[] getUploadMutiFile() {
return uploadMutiFile;
}
public void setUploadMutiFile(MultipartFile[] uploadMutiFile) {
this.uploadMutiFile = uploadMutiFile;
}
public String getPrePath() {
return prePath;
}
public void setPrePath(String prePath) {
this.prePath = prePath;
}
}
\ No newline at end of file
/**
* 文件:ValidCodeDao.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.valid.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.base.system.valid.model.ValidCodeEntity;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeDao DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface ValidCodeDao extends ICRUDDao<ValidCodeEntity,Long> {
}
\ No newline at end of file
/**
* 文件:ValidCodeDaoImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.valid.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.base.system.valid.dao.ValidCodeDao;
import com.mortals.xhx.base.system.valid.model.ValidCodeEntity;
import org.springframework.stereotype.Repository;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeDaoImpl DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Repository("validCodeDao")
public class ValidCodeDaoImpl extends BaseCRUDDaoMybatis<ValidCodeEntity,Long> implements ValidCodeDao {
}
\ No newline at end of file
/**
* 文件:ValidCodeEntity.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.valid.model;
import com.mortals.framework.model.BaseEntityLong;
import java.util.Date;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class ValidCodeEntity extends BaseEntityLong{
private static final long serialVersionUID = 1547777703382L;
/** 验证码 */
private String code;
/** 校验地址,email校验使用 */
private String url;
/** 校验手机号 */
private String mobile;
/** 校验邮箱 */
private String email;
/** 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0 */
private Integer type;
/** 会话ID */
private String sessionId;
/** IP地址 */
private String ip;
/** 创建时间 */
private Date createTime;
/** 失效时间 */
private Date lapseTime;
public ValidCodeEntity(){
}
/**
* 获取 验证码
* @return code
*/
public String getCode(){
return this.code;
}
/**
* 设置 验证码
* @param code
*/
public void setCode(String code){
this.code = code;
}
/**
* 获取 校验地址,email校验使用
* @return url
*/
public String getUrl(){
return this.url;
}
/**
* 设置 校验地址,email校验使用
* @param url
*/
public void setUrl(String url){
this.url = url;
}
/**
* 获取 校验手机号
* @return mobile
*/
public String getMobile(){
return this.mobile;
}
/**
* 设置 校验手机号
* @param mobile
*/
public void setMobile(String mobile){
this.mobile = mobile;
}
/**
* 获取 校验邮箱
* @return email
*/
public String getEmail(){
return this.email;
}
/**
* 设置 校验邮箱
* @param email
*/
public void setEmail(String email){
this.email = email;
}
/**
* 获取 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @return type
*/
public Integer getType(){
return this.type;
}
/**
* 设置 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @param type
*/
public void setType(Integer type){
this.type = type;
}
/**
* 获取 会话ID
* @return sessionId
*/
public String getSessionId(){
return this.sessionId;
}
/**
* 设置 会话ID
* @param sessionId
*/
public void setSessionId(String sessionId){
this.sessionId = sessionId;
}
/**
* 获取 IP地址
* @return ip
*/
public String getIp(){
return this.ip;
}
/**
* 设置 IP地址
* @param ip
*/
public void setIp(String ip){
this.ip = ip;
}
/**
* 获取 创建时间
* @return createTime
*/
public Date getCreateTime(){
return this.createTime;
}
/**
* 设置 创建时间
* @param createTime
*/
public void setCreateTime(Date createTime){
this.createTime = createTime;
}
/**
* 获取 失效时间
* @return lapseTime
*/
public Date getLapseTime(){
return this.lapseTime;
}
/**
* 设置 失效时间
* @param lapseTime
*/
public void setLapseTime(Date lapseTime){
this.lapseTime = lapseTime;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof ValidCodeEntity) {
ValidCodeEntity tmp = (ValidCodeEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append("id:").append(getId())
.append(",code:").append(getCode())
.append(",url:").append(getUrl())
.append(",mobile:").append(getMobile())
.append(",email:").append(getEmail())
.append(",type:").append(getType())
.append(",sessionId:").append(getSessionId())
.append(",ip:").append(getIp())
.append(",createTime:").append(getCreateTime())
.append(",lapseTime:").append(getLapseTime());
return sb.toString();
}
public void initAttrValue(){
this.code = null;
this.url = null;
this.mobile = null;
this.email = null;
this.type = 0;
this.sessionId = null;
this.ip = null;
this.createTime = null;
this.lapseTime = null;
}
}
\ No newline at end of file
/**
* 文件:ValidCodeQuery.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.valid.model;
import java.util.List;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeQuery </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class ValidCodeQuery extends ValidCodeEntity{
private static final long serialVersionUID = 1547777703382L;
/** 开始 菜单ID,主键,自增长 */
private Long idStart;
/** 结束 菜单ID,主键,自增长 */
private Long idEnd;
/** 增加 菜单ID,主键,自增长 */
private Long idIncrement;
/** 菜单ID,主键,自增长 */
private List<Long> idList;
/** 验证码 */
private List<String> codeList;
/** 校验地址,email校验使用 */
private List<String> urlList;
/** 校验手机号 */
private List<String> mobileList;
/** 校验邮箱 */
private List<String> emailList;
/** 开始 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0 */
private Integer typeStart;
/** 结束 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0 */
private Integer typeEnd;
/** 增加 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0 */
private Integer typeIncrement;
/** 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0 */
private List<Integer> typeList;
/** 会话ID */
private List<String> sessionIdList;
/** IP地址 */
private List<String> ipList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 失效时间 */
private String lapseTimeStart;
/** 结束 失效时间 */
private String lapseTimeEnd;
public ValidCodeQuery(){
}
/**
* 获取 开始 菜单ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 菜单ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 菜单ID,主键,自增长
* @return idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 菜单ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 菜单ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 菜单ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 菜单ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 菜单ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 验证码
* @return codeList
*/
public List<String> getCodeList(){
return this.codeList;
}
/**
* 设置 验证码
* @param codeList
*/
public void setCodeList(List<String> codeList){
this.codeList = codeList;
}
/**
* 获取 校验地址,email校验使用
* @return urlList
*/
public List<String> getUrlList(){
return this.urlList;
}
/**
* 设置 校验地址,email校验使用
* @param urlList
*/
public void setUrlList(List<String> urlList){
this.urlList = urlList;
}
/**
* 获取 校验手机号
* @return mobileList
*/
public List<String> getMobileList(){
return this.mobileList;
}
/**
* 设置 校验手机号
* @param mobileList
*/
public void setMobileList(List<String> mobileList){
this.mobileList = mobileList;
}
/**
* 获取 校验邮箱
* @return emailList
*/
public List<String> getEmailList(){
return this.emailList;
}
/**
* 设置 校验邮箱
* @param emailList
*/
public void setEmailList(List<String> emailList){
this.emailList = emailList;
}
/**
* 获取 开始 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @return typeStart
*/
public Integer getTypeStart(){
return this.typeStart;
}
/**
* 设置 开始 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @param typeStart
*/
public void setTypeStart(Integer typeStart){
this.typeStart = typeStart;
}
/**
* 获取 结束 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @return typeEnd
*/
public Integer getTypeEnd(){
return this.typeEnd;
}
/**
* 设置 结束 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @param typeEnd
*/
public void setTypeEnd(Integer typeEnd){
this.typeEnd = typeEnd;
}
/**
* 获取 增加 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @return typeIncrement
*/
public Integer getTypeIncrement(){
return this.typeIncrement;
}
/**
* 设置 增加 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @param typeIncrement
*/
public void setTypeIncrement(Integer typeIncrement){
this.typeIncrement = typeIncrement;
}
/**
* 获取 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @return typeList
*/
public List<Integer> getTypeList(){
return this.typeList;
}
/**
* 设置 校验方式,0:图片校验,1:手机校验,2:邮箱校验,默认0
* @param typeList
*/
public void setTypeList(List<Integer> typeList){
this.typeList = typeList;
}
/**
* 获取 会话ID
* @return sessionIdList
*/
public List<String> getSessionIdList(){
return this.sessionIdList;
}
/**
* 设置 会话ID
* @param sessionIdList
*/
public void setSessionIdList(List<String> sessionIdList){
this.sessionIdList = sessionIdList;
}
/**
* 获取 IP地址
* @return ipList
*/
public List<String> getIpList(){
return this.ipList;
}
/**
* 设置 IP地址
* @param ipList
*/
public void setIpList(List<String> ipList){
this.ipList = ipList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 失效时间
* @return lapseTimeStart
*/
public String getLapseTimeStart(){
return this.lapseTimeStart;
}
/**
* 设置 开始 失效时间
* @param lapseTimeStart
*/
public void setLapseTimeStart(String lapseTimeStart){
this.lapseTimeStart = lapseTimeStart;
}
/**
* 获取 结束 失效时间
* @return lapseTimeEnd
*/
public String getLapseTimeEnd(){
return this.lapseTimeEnd;
}
/**
* 设置 结束 失效时间
* @param lapseTimeEnd
*/
public void setLapseTimeEnd(String lapseTimeEnd){
this.lapseTimeEnd = lapseTimeEnd;
}
}
\ No newline at end of file
/**
* 文件:ValidCodeService.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.valid.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.base.system.valid.model.ValidCodeEntity;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface ValidCodeService extends ICRUDService<ValidCodeEntity,Long> {
/**
* 创建图片校验码
* @param sessionId
* @param ip
* @return
* @throws AppException
*/
public String createImageValidCode(String sessionId, String ip) throws AppException;
/**
* 校验图片校验码
* @param sessionId
* @param ip
* @param code
* @return
* @throws AppException
*/
public boolean doCheckImageValidCode(String sessionId, String ip, String code) throws AppException;
/**
* 创建短信校验码
* @param sessionId
* @param ip
* @param mobile
* @return
* @throws AppException
*/
public boolean createSmsValidCode(String sessionId, String ip, String mobile) throws AppException;
/**
* 校验短信校验码
* @param sessionId
* @param ip
* @param mobile
* @param code
* @return
* @throws AppException
*/
public boolean doCheckSmsValidCode(String sessionId, String ip, String mobile, String code) throws AppException;
}
\ No newline at end of file
/**
* 文件:ValidCodeServiceImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.valid.service.impl;
import com.mortals.framework.common.code.ValidCodeType;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.SecurityCode;
import com.mortals.xhx.base.system.valid.dao.ValidCodeDao;
import com.mortals.xhx.base.system.valid.model.ValidCodeEntity;
import com.mortals.xhx.base.system.valid.model.ValidCodeQuery;
import com.mortals.xhx.base.system.valid.service.ValidCodeService;
import org.springframework.stereotype.Service;
import java.util.Calendar;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Service("validCodeService")
public class ValidCodeServiceImpl extends AbstractCRUDServiceImpl<ValidCodeDao,ValidCodeEntity,Long> implements ValidCodeService {
@Override
public String createImageValidCode(String sessionId, String ip) throws AppException {
String code = SecurityCode.getSecurityCode();
Calendar cal = Calendar.getInstance();
ValidCodeEntity entity = new ValidCodeEntity();
entity.setType(ValidCodeType.IMAGE.getValue());
entity.setCode(code);
entity.setSessionId(sessionId);
entity.setIp(ip);
entity.setCreateTime(cal.getTime());
cal.add(Calendar.MINUTE, 10);
entity.setLapseTime(cal.getTime());
dao.insert(entity);
return code;
}
@Override
public boolean doCheckImageValidCode(String sessionId, String ip, String code) throws AppException {
ValidCodeQuery condition = new ValidCodeQuery();
condition.setSessionId(sessionId);
condition.setCode(code);
int result = dao.delete(condition);
return result > 0;
}
@Override
public boolean createSmsValidCode(String sessionId, String ip, String mobile) throws AppException {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean doCheckSmsValidCode(String sessionId, String ip, String mobile, String code) throws AppException {
// TODO Auto-generated method stub
return false;
}
}
\ No newline at end of file
package com.mortals.xhx.base.system.valid.web;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonMappingController;
import com.mortals.xhx.base.system.valid.model.ValidCodeEntity;
import com.mortals.xhx.base.system.valid.service.ValidCodeService;
import com.mortals.xhx.common.code.ValidCodeType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeController </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@RestController
@RequestMapping("validcode")
public class ValidCodeController extends BaseCRUDJsonMappingController<ValidCodeService,ValidCodeForm,ValidCodeEntity,Long> {
public ValidCodeController(){
super.setFormClass(ValidCodeForm.class);
super.setModuleDesc("验证码信息");
}
@Override
protected void init(HttpServletRequest request, HttpServletResponse response, ValidCodeForm form,
Map<String, Object> model, Context context) {
Map<String,Object> status = new HashMap<String,Object>();
status.put("type", ValidCodeType.getEnumMap());
model.put(KEY_RESULT_DICT,status);
super.init(request, response, form, model, context);
}
}
\ No newline at end of file
/**
* 文件:ValidCodeForm.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.valid.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.base.system.valid.model.ValidCodeEntity;
import com.mortals.xhx.base.system.valid.model.ValidCodeQuery;
/**
* <p>Title: 验证码信息</p>
* <p>Description: ValidCodeForm </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class ValidCodeForm extends BaseCRUDFormLong<ValidCodeEntity> {
private ValidCodeEntity entity = new ValidCodeEntity();
private ValidCodeQuery query = new ValidCodeQuery();
public ValidCodeForm() {
}
@Override
public ValidCodeEntity getEntity() {
return entity;
}
public void setEntity(ValidCodeEntity entity) {
this.entity = entity;
}
@Override
public ValidCodeQuery getQuery() {
return query;
}
public void setQuery(ValidCodeQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)枚举类
*
* @author zxfei
*/
public enum AuthTypeEnum {
无限制(0, "无限制"),
无需登录查看(1, "无需登录查看"),
需要登录查看(2, "需要登录查看"),
需要角色权限查看(3, "需要角色权限查看");
private Integer value;
private String desc;
AuthTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static AuthTypeEnum getByValue(Integer value) {
for (AuthTypeEnum authTypeEnum : AuthTypeEnum.values()) {
if (authTypeEnum.getValue() == value) {
return authTypeEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (AuthTypeEnum item : AuthTypeEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 执行策略(1.按日,2.按周,3.按月,4.按间隔时间)枚举类
*
* @author zxfei
*/
public enum ExcuteStrategyEnum {
按日(1, "按日"),
按周(2, "按周"),
按月(3, "按月"),
按间隔时间(4, "按间隔时间");
private Integer value;
private String desc;
ExcuteStrategyEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static ExcuteStrategyEnum getByValue(Integer value) {
for (ExcuteStrategyEnum excuteStrategyEnum : ExcuteStrategyEnum.values()) {
if (excuteStrategyEnum.getValue() == value) {
return excuteStrategyEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (ExcuteStrategyEnum item : ExcuteStrategyEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 临时执行状态,(0.未启用,1.立即执行并保留,2.立即执行并删除)枚举类
*
* @author zxfei
*/
public enum InterimExcuteStatusEnum {
未启用(0, "未启用"),
立即执行并保留(1, "立即执行并保留"),
立即执行并删除(2, "立即执行并删除");
private Integer value;
private String desc;
InterimExcuteStatusEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static InterimExcuteStatusEnum getByValue(Integer value) {
for (InterimExcuteStatusEnum interimExcuteStatusEnum : InterimExcuteStatusEnum.values()) {
if (interimExcuteStatusEnum.getValue() == value) {
return interimExcuteStatusEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (InterimExcuteStatusEnum item : InterimExcuteStatusEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 资源类型(0.系统资源,1.开放资源)枚举类
*
* @author zxfei
*/
public enum SourceTypeEnum {
系统资源(0, "系统资源"),
开放资源(1, "开放资源");
private Integer value;
private String desc;
SourceTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static SourceTypeEnum getByValue(Integer value) {
for (SourceTypeEnum sourceTypeEnum : SourceTypeEnum.values()) {
if (sourceTypeEnum.getValue() == value) {
return sourceTypeEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (SourceTypeEnum item : SourceTypeEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)枚举类
*
* @author zxfei
*/
public enum UserTypeEnum {
系统用户(0, "系统用户"),
代理商用户(1, "代理商用户"),
品牌商用户(2, "品牌商用户");
private Integer value;
private String desc;
UserTypeEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static UserTypeEnum getByValue(Integer value) {
for (UserTypeEnum userTypeEnum : UserTypeEnum.values()) {
if (userTypeEnum.getValue() == value) {
return userTypeEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (UserTypeEnum item : UserTypeEnum.values()) {
try {
boolean hasE = false;
for (Integer e : eItem) {
if (item.getValue() == e) {
hasE = true;
break;
}
}
if (!hasE) {
resultMap.put(item.getValue() + "", item.getDesc());
}
} catch (Exception ex) {
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.module.menu.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.menu.model.MenuEntity;
import java.util.List;
/**
* 菜单信息业务Dao
* 菜单信息业务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface MenuDao extends ICRUDDao<MenuEntity,Long>{
}
package com.mortals.xhx.module.menu.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.menu.dao.MenuDao;
import com.mortals.xhx.module.menu.model.MenuEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 菜单信息业务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("menuDao")
public class MenuDaoImpl extends BaseCRUDDaoMybatis<MenuEntity,Long> implements MenuDao {
}
package com.mortals.xhx.module.menu.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.menu.model.vo.MenuVo;
/**
* 菜单信息业务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class MenuEntity extends MenuVo {
private static final long serialVersionUID = 1L;
/**
* 菜单名称
*/
private String name;
/**
* 连接地址
*/
private String url;
/**
* 父菜单ID,一级菜单的该字段值为-1
*/
private Long parentId;
/**
* 排序编号
*/
private Long orderId;
/**
* 菜单状态,0:禁用,1:启用,默认1
*/
private Integer status;
/**
* 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
*/
private Integer linkType;
/**
* 分组编号,使用菜单分隔符按该值分隔,默认1
*/
private Long groupId;
/**
*
*/
private String groupName;
/**
* 主菜单图标,主菜单图标的css样式名
*/
private String imgPath;
/**
* 按钮图标,按钮图标的css样式名
*/
private String buttonImgPath;
/**
* 常用菜单图标,常用菜单图标的css样式名
*/
private String imgCommPath;
/**
* 是否常用菜单,0:非常用,1:常用,默认0
*/
private Integer commMenu;
/**
* 菜单类型,0:主菜单,1:非主菜单,默认0
*/
private Integer menuType;
/**
* 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
*/
private Integer authType;
/**
* 创建用户名称
*/
private String createUserName;
public MenuEntity(){}
/**
* 获取 菜单名称
* @return String
*/
public String getName(){
return name;
}
/**
* 设置 菜单名称
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 连接地址
* @return String
*/
public String getUrl(){
return url;
}
/**
* 设置 连接地址
* @param url
*/
public void setUrl(String url){
this.url = url;
}
/**
* 获取 父菜单ID,一级菜单的该字段值为-1
* @return Long
*/
public Long getParentId(){
return parentId;
}
/**
* 设置 父菜单ID,一级菜单的该字段值为-1
* @param parentId
*/
public void setParentId(Long parentId){
this.parentId = parentId;
}
/**
* 获取 排序编号
* @return Long
*/
public Long getOrderId(){
return orderId;
}
/**
* 设置 排序编号
* @param orderId
*/
public void setOrderId(Long orderId){
this.orderId = orderId;
}
/**
* 获取 菜单状态,0:禁用,1:启用,默认1
* @return Integer
*/
public Integer getStatus(){
return status;
}
/**
* 设置 菜单状态,0:禁用,1:启用,默认1
* @param status
*/
public void setStatus(Integer status){
this.status = status;
}
/**
* 获取 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @return Integer
*/
public Integer getLinkType(){
return linkType;
}
/**
* 设置 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkType
*/
public void setLinkType(Integer linkType){
this.linkType = linkType;
}
/**
* 获取 分组编号,使用菜单分隔符按该值分隔,默认1
* @return Long
*/
public Long getGroupId(){
return groupId;
}
/**
* 设置 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupId
*/
public void setGroupId(Long groupId){
this.groupId = groupId;
}
/**
* 获取
* @return String
*/
public String getGroupName(){
return groupName;
}
/**
* 设置
* @param groupName
*/
public void setGroupName(String groupName){
this.groupName = groupName;
}
/**
* 获取 主菜单图标,主菜单图标的css样式名
* @return String
*/
public String getImgPath(){
return imgPath;
}
/**
* 设置 主菜单图标,主菜单图标的css样式名
* @param imgPath
*/
public void setImgPath(String imgPath){
this.imgPath = imgPath;
}
/**
* 获取 按钮图标,按钮图标的css样式名
* @return String
*/
public String getButtonImgPath(){
return buttonImgPath;
}
/**
* 设置 按钮图标,按钮图标的css样式名
* @param buttonImgPath
*/
public void setButtonImgPath(String buttonImgPath){
this.buttonImgPath = buttonImgPath;
}
/**
* 获取 常用菜单图标,常用菜单图标的css样式名
* @return String
*/
public String getImgCommPath(){
return imgCommPath;
}
/**
* 设置 常用菜单图标,常用菜单图标的css样式名
* @param imgCommPath
*/
public void setImgCommPath(String imgCommPath){
this.imgCommPath = imgCommPath;
}
/**
* 获取 是否常用菜单,0:非常用,1:常用,默认0
* @return Integer
*/
public Integer getCommMenu(){
return commMenu;
}
/**
* 设置 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenu
*/
public void setCommMenu(Integer commMenu){
this.commMenu = commMenu;
}
/**
* 获取 菜单类型,0:主菜单,1:非主菜单,默认0
* @return Integer
*/
public Integer getMenuType(){
return menuType;
}
/**
* 设置 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuType
*/
public void setMenuType(Integer menuType){
this.menuType = menuType;
}
/**
* 获取 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @return Integer
*/
public Integer getAuthType(){
return authType;
}
/**
* 设置 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authType
*/
public void setAuthType(Integer authType){
this.authType = authType;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof MenuEntity) {
MenuEntity tmp = (MenuEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",name:").append(getName());
sb.append(",url:").append(getUrl());
sb.append(",parentId:").append(getParentId());
sb.append(",orderId:").append(getOrderId());
sb.append(",status:").append(getStatus());
sb.append(",linkType:").append(getLinkType());
sb.append(",groupId:").append(getGroupId());
sb.append(",groupName:").append(getGroupName());
sb.append(",imgPath:").append(getImgPath());
sb.append(",buttonImgPath:").append(getButtonImgPath());
sb.append(",imgCommPath:").append(getImgCommPath());
sb.append(",commMenu:").append(getCommMenu());
sb.append(",menuType:").append(getMenuType());
sb.append(",authType:").append(getAuthType());
sb.append(",createUserName:").append(getCreateUserName());
return sb.toString();
}
public void initAttrValue(){
this.name = "";
this.url = "";
this.parentId = null;
this.orderId = null;
this.status = 1;
this.linkType = 0;
this.groupId = 1L;
this.groupName = "";
this.imgPath = "";
this.buttonImgPath = "";
this.imgCommPath = "";
this.commMenu = 0;
this.menuType = 0;
this.authType = 3;
this.createUserName = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.menu.model;
import java.util.List;
import com.mortals.xhx.module.menu.model.MenuEntity;
/**
* 菜单信息业务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class MenuQuery extends MenuEntity {
/** 开始 菜单ID,主键,自增长 */
private Long idStart;
/** 结束 菜单ID,主键,自增长 */
private Long idEnd;
/** 增加 菜单ID,主键,自增长 */
private Long idIncrement;
/** 菜单ID,主键,自增长列表 */
private List <Long> idList;
/** 菜单名称 */
private List<String> nameList;
/** 连接地址 */
private List<String> urlList;
/** 开始 父菜单ID,一级菜单的该字段值为-1 */
private Long parentIdStart;
/** 结束 父菜单ID,一级菜单的该字段值为-1 */
private Long parentIdEnd;
/** 增加 父菜单ID,一级菜单的该字段值为-1 */
private Long parentIdIncrement;
/** 父菜单ID,一级菜单的该字段值为-1列表 */
private List <Long> parentIdList;
/** 开始 排序编号 */
private Long orderIdStart;
/** 结束 排序编号 */
private Long orderIdEnd;
/** 增加 排序编号 */
private Long orderIdIncrement;
/** 排序编号列表 */
private List <Long> orderIdList;
/** 开始 菜单状态,0:禁用,1:启用,默认1 */
private Integer statusStart;
/** 结束 菜单状态,0:禁用,1:启用,默认1 */
private Integer statusEnd;
/** 增加 菜单状态,0:禁用,1:启用,默认1 */
private Integer statusIncrement;
/** 菜单状态,0:禁用,1:启用,默认1列表 */
private List <Integer> statusList;
/** 开始 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0 */
private Integer linkTypeStart;
/** 结束 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0 */
private Integer linkTypeEnd;
/** 增加 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0 */
private Integer linkTypeIncrement;
/** 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0列表 */
private List <Integer> linkTypeList;
/** 开始 分组编号,使用菜单分隔符按该值分隔,默认1 */
private Long groupIdStart;
/** 结束 分组编号,使用菜单分隔符按该值分隔,默认1 */
private Long groupIdEnd;
/** 增加 分组编号,使用菜单分隔符按该值分隔,默认1 */
private Long groupIdIncrement;
/** 分组编号,使用菜单分隔符按该值分隔,默认1列表 */
private List <Long> groupIdList;
/** */
private List<String> groupNameList;
/** 主菜单图标,主菜单图标的css样式名 */
private List<String> imgPathList;
/** 按钮图标,按钮图标的css样式名 */
private List<String> buttonImgPathList;
/** 常用菜单图标,常用菜单图标的css样式名 */
private List<String> imgCommPathList;
/** 开始 是否常用菜单,0:非常用,1:常用,默认0 */
private Integer commMenuStart;
/** 结束 是否常用菜单,0:非常用,1:常用,默认0 */
private Integer commMenuEnd;
/** 增加 是否常用菜单,0:非常用,1:常用,默认0 */
private Integer commMenuIncrement;
/** 是否常用菜单,0:非常用,1:常用,默认0列表 */
private List <Integer> commMenuList;
/** 开始 菜单类型,0:主菜单,1:非主菜单,默认0 */
private Integer menuTypeStart;
/** 结束 菜单类型,0:主菜单,1:非主菜单,默认0 */
private Integer menuTypeEnd;
/** 增加 菜单类型,0:主菜单,1:非主菜单,默认0 */
private Integer menuTypeIncrement;
/** 菜单类型,0:主菜单,1:非主菜单,默认0列表 */
private List <Integer> menuTypeList;
/** 开始 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看 */
private Integer authTypeStart;
/** 结束 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看 */
private Integer authTypeEnd;
/** 增加 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看 */
private Integer authTypeIncrement;
/** 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看列表 */
private List <Integer> authTypeList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户列表 */
private List <Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<MenuQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<MenuQuery> andConditionList;
public MenuQuery(){}
/**
* 获取 开始 菜单ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 菜单ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 菜单ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 菜单ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 菜单ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 菜单ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 菜单ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 菜单ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 菜单名称
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 菜单名称
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 连接地址
* @return urlList
*/
public List<String> getUrlList(){
return this.urlList;
}
/**
* 设置 连接地址
* @param urlList
*/
public void setUrlList(List<String> urlList){
this.urlList = urlList;
}
/**
* 获取 开始 父菜单ID,一级菜单的该字段值为-1
* @return parentIdStart
*/
public Long getParentIdStart(){
return this.parentIdStart;
}
/**
* 设置 开始 父菜单ID,一级菜单的该字段值为-1
* @param parentIdStart
*/
public void setParentIdStart(Long parentIdStart){
this.parentIdStart = parentIdStart;
}
/**
* 获取 结束 父菜单ID,一级菜单的该字段值为-1
* @return $parentIdEnd
*/
public Long getParentIdEnd(){
return this.parentIdEnd;
}
/**
* 设置 结束 父菜单ID,一级菜单的该字段值为-1
* @param parentIdEnd
*/
public void setParentIdEnd(Long parentIdEnd){
this.parentIdEnd = parentIdEnd;
}
/**
* 获取 增加 父菜单ID,一级菜单的该字段值为-1
* @return parentIdIncrement
*/
public Long getParentIdIncrement(){
return this.parentIdIncrement;
}
/**
* 设置 增加 父菜单ID,一级菜单的该字段值为-1
* @param parentIdIncrement
*/
public void setParentIdIncrement(Long parentIdIncrement){
this.parentIdIncrement = parentIdIncrement;
}
/**
* 获取 父菜单ID,一级菜单的该字段值为-1
* @return parentIdList
*/
public List<Long> getParentIdList(){
return this.parentIdList;
}
/**
* 设置 父菜单ID,一级菜单的该字段值为-1
* @param parentIdList
*/
public void setParentIdList(List<Long> parentIdList){
this.parentIdList = parentIdList;
}
/**
* 获取 开始 排序编号
* @return orderIdStart
*/
public Long getOrderIdStart(){
return this.orderIdStart;
}
/**
* 设置 开始 排序编号
* @param orderIdStart
*/
public void setOrderIdStart(Long orderIdStart){
this.orderIdStart = orderIdStart;
}
/**
* 获取 结束 排序编号
* @return $orderIdEnd
*/
public Long getOrderIdEnd(){
return this.orderIdEnd;
}
/**
* 设置 结束 排序编号
* @param orderIdEnd
*/
public void setOrderIdEnd(Long orderIdEnd){
this.orderIdEnd = orderIdEnd;
}
/**
* 获取 增加 排序编号
* @return orderIdIncrement
*/
public Long getOrderIdIncrement(){
return this.orderIdIncrement;
}
/**
* 设置 增加 排序编号
* @param orderIdIncrement
*/
public void setOrderIdIncrement(Long orderIdIncrement){
this.orderIdIncrement = orderIdIncrement;
}
/**
* 获取 排序编号
* @return orderIdList
*/
public List<Long> getOrderIdList(){
return this.orderIdList;
}
/**
* 设置 排序编号
* @param orderIdList
*/
public void setOrderIdList(List<Long> orderIdList){
this.orderIdList = orderIdList;
}
/**
* 获取 开始 菜单状态,0:禁用,1:启用,默认1
* @return statusStart
*/
public Integer getStatusStart(){
return this.statusStart;
}
/**
* 设置 开始 菜单状态,0:禁用,1:启用,默认1
* @param statusStart
*/
public void setStatusStart(Integer statusStart){
this.statusStart = statusStart;
}
/**
* 获取 结束 菜单状态,0:禁用,1:启用,默认1
* @return $statusEnd
*/
public Integer getStatusEnd(){
return this.statusEnd;
}
/**
* 设置 结束 菜单状态,0:禁用,1:启用,默认1
* @param statusEnd
*/
public void setStatusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
}
/**
* 获取 增加 菜单状态,0:禁用,1:启用,默认1
* @return statusIncrement
*/
public Integer getStatusIncrement(){
return this.statusIncrement;
}
/**
* 设置 增加 菜单状态,0:禁用,1:启用,默认1
* @param statusIncrement
*/
public void setStatusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
}
/**
* 获取 菜单状态,0:禁用,1:启用,默认1
* @return statusList
*/
public List<Integer> getStatusList(){
return this.statusList;
}
/**
* 设置 菜单状态,0:禁用,1:启用,默认1
* @param statusList
*/
public void setStatusList(List<Integer> statusList){
this.statusList = statusList;
}
/**
* 获取 开始 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @return linkTypeStart
*/
public Integer getLinkTypeStart(){
return this.linkTypeStart;
}
/**
* 设置 开始 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkTypeStart
*/
public void setLinkTypeStart(Integer linkTypeStart){
this.linkTypeStart = linkTypeStart;
}
/**
* 获取 结束 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @return $linkTypeEnd
*/
public Integer getLinkTypeEnd(){
return this.linkTypeEnd;
}
/**
* 设置 结束 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkTypeEnd
*/
public void setLinkTypeEnd(Integer linkTypeEnd){
this.linkTypeEnd = linkTypeEnd;
}
/**
* 获取 增加 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @return linkTypeIncrement
*/
public Integer getLinkTypeIncrement(){
return this.linkTypeIncrement;
}
/**
* 设置 增加 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkTypeIncrement
*/
public void setLinkTypeIncrement(Integer linkTypeIncrement){
this.linkTypeIncrement = linkTypeIncrement;
}
/**
* 获取 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @return linkTypeList
*/
public List<Integer> getLinkTypeList(){
return this.linkTypeList;
}
/**
* 设置 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkTypeList
*/
public void setLinkTypeList(List<Integer> linkTypeList){
this.linkTypeList = linkTypeList;
}
/**
* 获取 开始 分组编号,使用菜单分隔符按该值分隔,默认1
* @return groupIdStart
*/
public Long getGroupIdStart(){
return this.groupIdStart;
}
/**
* 设置 开始 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupIdStart
*/
public void setGroupIdStart(Long groupIdStart){
this.groupIdStart = groupIdStart;
}
/**
* 获取 结束 分组编号,使用菜单分隔符按该值分隔,默认1
* @return $groupIdEnd
*/
public Long getGroupIdEnd(){
return this.groupIdEnd;
}
/**
* 设置 结束 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupIdEnd
*/
public void setGroupIdEnd(Long groupIdEnd){
this.groupIdEnd = groupIdEnd;
}
/**
* 获取 增加 分组编号,使用菜单分隔符按该值分隔,默认1
* @return groupIdIncrement
*/
public Long getGroupIdIncrement(){
return this.groupIdIncrement;
}
/**
* 设置 增加 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupIdIncrement
*/
public void setGroupIdIncrement(Long groupIdIncrement){
this.groupIdIncrement = groupIdIncrement;
}
/**
* 获取 分组编号,使用菜单分隔符按该值分隔,默认1
* @return groupIdList
*/
public List<Long> getGroupIdList(){
return this.groupIdList;
}
/**
* 设置 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupIdList
*/
public void setGroupIdList(List<Long> groupIdList){
this.groupIdList = groupIdList;
}
/**
* 获取
* @return groupNameList
*/
public List<String> getGroupNameList(){
return this.groupNameList;
}
/**
* 设置
* @param groupNameList
*/
public void setGroupNameList(List<String> groupNameList){
this.groupNameList = groupNameList;
}
/**
* 获取 主菜单图标,主菜单图标的css样式名
* @return imgPathList
*/
public List<String> getImgPathList(){
return this.imgPathList;
}
/**
* 设置 主菜单图标,主菜单图标的css样式名
* @param imgPathList
*/
public void setImgPathList(List<String> imgPathList){
this.imgPathList = imgPathList;
}
/**
* 获取 按钮图标,按钮图标的css样式名
* @return buttonImgPathList
*/
public List<String> getButtonImgPathList(){
return this.buttonImgPathList;
}
/**
* 设置 按钮图标,按钮图标的css样式名
* @param buttonImgPathList
*/
public void setButtonImgPathList(List<String> buttonImgPathList){
this.buttonImgPathList = buttonImgPathList;
}
/**
* 获取 常用菜单图标,常用菜单图标的css样式名
* @return imgCommPathList
*/
public List<String> getImgCommPathList(){
return this.imgCommPathList;
}
/**
* 设置 常用菜单图标,常用菜单图标的css样式名
* @param imgCommPathList
*/
public void setImgCommPathList(List<String> imgCommPathList){
this.imgCommPathList = imgCommPathList;
}
/**
* 获取 开始 是否常用菜单,0:非常用,1:常用,默认0
* @return commMenuStart
*/
public Integer getCommMenuStart(){
return this.commMenuStart;
}
/**
* 设置 开始 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenuStart
*/
public void setCommMenuStart(Integer commMenuStart){
this.commMenuStart = commMenuStart;
}
/**
* 获取 结束 是否常用菜单,0:非常用,1:常用,默认0
* @return $commMenuEnd
*/
public Integer getCommMenuEnd(){
return this.commMenuEnd;
}
/**
* 设置 结束 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenuEnd
*/
public void setCommMenuEnd(Integer commMenuEnd){
this.commMenuEnd = commMenuEnd;
}
/**
* 获取 增加 是否常用菜单,0:非常用,1:常用,默认0
* @return commMenuIncrement
*/
public Integer getCommMenuIncrement(){
return this.commMenuIncrement;
}
/**
* 设置 增加 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenuIncrement
*/
public void setCommMenuIncrement(Integer commMenuIncrement){
this.commMenuIncrement = commMenuIncrement;
}
/**
* 获取 是否常用菜单,0:非常用,1:常用,默认0
* @return commMenuList
*/
public List<Integer> getCommMenuList(){
return this.commMenuList;
}
/**
* 设置 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenuList
*/
public void setCommMenuList(List<Integer> commMenuList){
this.commMenuList = commMenuList;
}
/**
* 获取 开始 菜单类型,0:主菜单,1:非主菜单,默认0
* @return menuTypeStart
*/
public Integer getMenuTypeStart(){
return this.menuTypeStart;
}
/**
* 设置 开始 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuTypeStart
*/
public void setMenuTypeStart(Integer menuTypeStart){
this.menuTypeStart = menuTypeStart;
}
/**
* 获取 结束 菜单类型,0:主菜单,1:非主菜单,默认0
* @return $menuTypeEnd
*/
public Integer getMenuTypeEnd(){
return this.menuTypeEnd;
}
/**
* 设置 结束 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuTypeEnd
*/
public void setMenuTypeEnd(Integer menuTypeEnd){
this.menuTypeEnd = menuTypeEnd;
}
/**
* 获取 增加 菜单类型,0:主菜单,1:非主菜单,默认0
* @return menuTypeIncrement
*/
public Integer getMenuTypeIncrement(){
return this.menuTypeIncrement;
}
/**
* 设置 增加 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuTypeIncrement
*/
public void setMenuTypeIncrement(Integer menuTypeIncrement){
this.menuTypeIncrement = menuTypeIncrement;
}
/**
* 获取 菜单类型,0:主菜单,1:非主菜单,默认0
* @return menuTypeList
*/
public List<Integer> getMenuTypeList(){
return this.menuTypeList;
}
/**
* 设置 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuTypeList
*/
public void setMenuTypeList(List<Integer> menuTypeList){
this.menuTypeList = menuTypeList;
}
/**
* 获取 开始 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @return authTypeStart
*/
public Integer getAuthTypeStart(){
return this.authTypeStart;
}
/**
* 设置 开始 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authTypeStart
*/
public void setAuthTypeStart(Integer authTypeStart){
this.authTypeStart = authTypeStart;
}
/**
* 获取 结束 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @return $authTypeEnd
*/
public Integer getAuthTypeEnd(){
return this.authTypeEnd;
}
/**
* 设置 结束 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authTypeEnd
*/
public void setAuthTypeEnd(Integer authTypeEnd){
this.authTypeEnd = authTypeEnd;
}
/**
* 获取 增加 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @return authTypeIncrement
*/
public Integer getAuthTypeIncrement(){
return this.authTypeIncrement;
}
/**
* 设置 增加 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authTypeIncrement
*/
public void setAuthTypeIncrement(Integer authTypeIncrement){
this.authTypeIncrement = authTypeIncrement;
}
/**
* 获取 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @return authTypeList
*/
public List<Integer> getAuthTypeList(){
return this.authTypeList;
}
/**
* 设置 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authTypeList
*/
public void setAuthTypeList(List<Integer> authTypeList){
this.authTypeList = authTypeList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 设置 菜单ID,主键,自增长
* @param id
*/
public MenuQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 菜单ID,主键,自增长
* @param idStart
*/
public MenuQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 菜单ID,主键,自增长
* @param idEnd
*/
public MenuQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 菜单ID,主键,自增长
* @param idIncrement
*/
public MenuQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 菜单ID,主键,自增长
* @param idList
*/
public MenuQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 菜单名称
* @param name
*/
public MenuQuery name(String name){
setName(name);
return this;
}
/**
* 设置 菜单名称
* @param nameList
*/
public MenuQuery nameList(List<String> nameList){
this.nameList = nameList;
return this;
}
/**
* 设置 连接地址
* @param url
*/
public MenuQuery url(String url){
setUrl(url);
return this;
}
/**
* 设置 连接地址
* @param urlList
*/
public MenuQuery urlList(List<String> urlList){
this.urlList = urlList;
return this;
}
/**
* 设置 父菜单ID,一级菜单的该字段值为-1
* @param parentId
*/
public MenuQuery parentId(Long parentId){
setParentId(parentId);
return this;
}
/**
* 设置 开始 父菜单ID,一级菜单的该字段值为-1
* @param parentIdStart
*/
public MenuQuery parentIdStart(Long parentIdStart){
this.parentIdStart = parentIdStart;
return this;
}
/**
* 设置 结束 父菜单ID,一级菜单的该字段值为-1
* @param parentIdEnd
*/
public MenuQuery parentIdEnd(Long parentIdEnd){
this.parentIdEnd = parentIdEnd;
return this;
}
/**
* 设置 增加 父菜单ID,一级菜单的该字段值为-1
* @param parentIdIncrement
*/
public MenuQuery parentIdIncrement(Long parentIdIncrement){
this.parentIdIncrement = parentIdIncrement;
return this;
}
/**
* 设置 父菜单ID,一级菜单的该字段值为-1
* @param parentIdList
*/
public MenuQuery parentIdList(List<Long> parentIdList){
this.parentIdList = parentIdList;
return this;
}
/**
* 设置 排序编号
* @param orderId
*/
public MenuQuery orderId(Long orderId){
setOrderId(orderId);
return this;
}
/**
* 设置 开始 排序编号
* @param orderIdStart
*/
public MenuQuery orderIdStart(Long orderIdStart){
this.orderIdStart = orderIdStart;
return this;
}
/**
* 设置 结束 排序编号
* @param orderIdEnd
*/
public MenuQuery orderIdEnd(Long orderIdEnd){
this.orderIdEnd = orderIdEnd;
return this;
}
/**
* 设置 增加 排序编号
* @param orderIdIncrement
*/
public MenuQuery orderIdIncrement(Long orderIdIncrement){
this.orderIdIncrement = orderIdIncrement;
return this;
}
/**
* 设置 排序编号
* @param orderIdList
*/
public MenuQuery orderIdList(List<Long> orderIdList){
this.orderIdList = orderIdList;
return this;
}
/**
* 设置 菜单状态,0:禁用,1:启用,默认1
* @param status
*/
public MenuQuery status(Integer status){
setStatus(status);
return this;
}
/**
* 设置 开始 菜单状态,0:禁用,1:启用,默认1
* @param statusStart
*/
public MenuQuery statusStart(Integer statusStart){
this.statusStart = statusStart;
return this;
}
/**
* 设置 结束 菜单状态,0:禁用,1:启用,默认1
* @param statusEnd
*/
public MenuQuery statusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
return this;
}
/**
* 设置 增加 菜单状态,0:禁用,1:启用,默认1
* @param statusIncrement
*/
public MenuQuery statusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
return this;
}
/**
* 设置 菜单状态,0:禁用,1:启用,默认1
* @param statusList
*/
public MenuQuery statusList(List<Integer> statusList){
this.statusList = statusList;
return this;
}
/**
* 设置 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkType
*/
public MenuQuery linkType(Integer linkType){
setLinkType(linkType);
return this;
}
/**
* 设置 开始 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkTypeStart
*/
public MenuQuery linkTypeStart(Integer linkTypeStart){
this.linkTypeStart = linkTypeStart;
return this;
}
/**
* 设置 结束 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkTypeEnd
*/
public MenuQuery linkTypeEnd(Integer linkTypeEnd){
this.linkTypeEnd = linkTypeEnd;
return this;
}
/**
* 设置 增加 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkTypeIncrement
*/
public MenuQuery linkTypeIncrement(Integer linkTypeIncrement){
this.linkTypeIncrement = linkTypeIncrement;
return this;
}
/**
* 设置 链接方式,0:普通,1:弹出,2:脚本(JavaScript),默认0
* @param linkTypeList
*/
public MenuQuery linkTypeList(List<Integer> linkTypeList){
this.linkTypeList = linkTypeList;
return this;
}
/**
* 设置 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupId
*/
public MenuQuery groupId(Long groupId){
setGroupId(groupId);
return this;
}
/**
* 设置 开始 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupIdStart
*/
public MenuQuery groupIdStart(Long groupIdStart){
this.groupIdStart = groupIdStart;
return this;
}
/**
* 设置 结束 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupIdEnd
*/
public MenuQuery groupIdEnd(Long groupIdEnd){
this.groupIdEnd = groupIdEnd;
return this;
}
/**
* 设置 增加 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupIdIncrement
*/
public MenuQuery groupIdIncrement(Long groupIdIncrement){
this.groupIdIncrement = groupIdIncrement;
return this;
}
/**
* 设置 分组编号,使用菜单分隔符按该值分隔,默认1
* @param groupIdList
*/
public MenuQuery groupIdList(List<Long> groupIdList){
this.groupIdList = groupIdList;
return this;
}
/**
* 设置
* @param groupName
*/
public MenuQuery groupName(String groupName){
setGroupName(groupName);
return this;
}
/**
* 设置
* @param groupNameList
*/
public MenuQuery groupNameList(List<String> groupNameList){
this.groupNameList = groupNameList;
return this;
}
/**
* 设置 主菜单图标,主菜单图标的css样式名
* @param imgPath
*/
public MenuQuery imgPath(String imgPath){
setImgPath(imgPath);
return this;
}
/**
* 设置 主菜单图标,主菜单图标的css样式名
* @param imgPathList
*/
public MenuQuery imgPathList(List<String> imgPathList){
this.imgPathList = imgPathList;
return this;
}
/**
* 设置 按钮图标,按钮图标的css样式名
* @param buttonImgPath
*/
public MenuQuery buttonImgPath(String buttonImgPath){
setButtonImgPath(buttonImgPath);
return this;
}
/**
* 设置 按钮图标,按钮图标的css样式名
* @param buttonImgPathList
*/
public MenuQuery buttonImgPathList(List<String> buttonImgPathList){
this.buttonImgPathList = buttonImgPathList;
return this;
}
/**
* 设置 常用菜单图标,常用菜单图标的css样式名
* @param imgCommPath
*/
public MenuQuery imgCommPath(String imgCommPath){
setImgCommPath(imgCommPath);
return this;
}
/**
* 设置 常用菜单图标,常用菜单图标的css样式名
* @param imgCommPathList
*/
public MenuQuery imgCommPathList(List<String> imgCommPathList){
this.imgCommPathList = imgCommPathList;
return this;
}
/**
* 设置 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenu
*/
public MenuQuery commMenu(Integer commMenu){
setCommMenu(commMenu);
return this;
}
/**
* 设置 开始 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenuStart
*/
public MenuQuery commMenuStart(Integer commMenuStart){
this.commMenuStart = commMenuStart;
return this;
}
/**
* 设置 结束 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenuEnd
*/
public MenuQuery commMenuEnd(Integer commMenuEnd){
this.commMenuEnd = commMenuEnd;
return this;
}
/**
* 设置 增加 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenuIncrement
*/
public MenuQuery commMenuIncrement(Integer commMenuIncrement){
this.commMenuIncrement = commMenuIncrement;
return this;
}
/**
* 设置 是否常用菜单,0:非常用,1:常用,默认0
* @param commMenuList
*/
public MenuQuery commMenuList(List<Integer> commMenuList){
this.commMenuList = commMenuList;
return this;
}
/**
* 设置 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuType
*/
public MenuQuery menuType(Integer menuType){
setMenuType(menuType);
return this;
}
/**
* 设置 开始 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuTypeStart
*/
public MenuQuery menuTypeStart(Integer menuTypeStart){
this.menuTypeStart = menuTypeStart;
return this;
}
/**
* 设置 结束 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuTypeEnd
*/
public MenuQuery menuTypeEnd(Integer menuTypeEnd){
this.menuTypeEnd = menuTypeEnd;
return this;
}
/**
* 设置 增加 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuTypeIncrement
*/
public MenuQuery menuTypeIncrement(Integer menuTypeIncrement){
this.menuTypeIncrement = menuTypeIncrement;
return this;
}
/**
* 设置 菜单类型,0:主菜单,1:非主菜单,默认0
* @param menuTypeList
*/
public MenuQuery menuTypeList(List<Integer> menuTypeList){
this.menuTypeList = menuTypeList;
return this;
}
/**
* 设置 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authType
*/
public MenuQuery authType(Integer authType){
setAuthType(authType);
return this;
}
/**
* 设置 开始 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authTypeStart
*/
public MenuQuery authTypeStart(Integer authTypeStart){
this.authTypeStart = authTypeStart;
return this;
}
/**
* 设置 结束 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authTypeEnd
*/
public MenuQuery authTypeEnd(Integer authTypeEnd){
this.authTypeEnd = authTypeEnd;
return this;
}
/**
* 设置 增加 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authTypeIncrement
*/
public MenuQuery authTypeIncrement(Integer authTypeIncrement){
this.authTypeIncrement = authTypeIncrement;
return this;
}
/**
* 设置 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看
* @param authTypeList
*/
public MenuQuery authTypeList(List<Integer> authTypeList){
this.authTypeList = authTypeList;
return this;
}
/**
* 设置 创建用户
* @param createUserId
*/
public MenuQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public MenuQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public MenuQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public MenuQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public MenuQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public MenuQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public MenuQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<MenuQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<MenuQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<MenuQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<MenuQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.menu.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.menu.model.MenuEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 菜单信息业务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class MenuVo extends BaseEntityLong {
private List<MenuEntity> childList = new ArrayList<MenuEntity>();
}
\ No newline at end of file
package com.mortals.xhx.module.menu.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.framework.service.IUser;
import com.mortals.xhx.module.menu.model.MenuEntity;
import java.util.List;
import java.util.Set;
/**
* MenuService
*
* 菜单信息业务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface MenuService extends ICRUDService<MenuEntity,Long>{
/**
* 获取所有可用菜单
*
* @return
* @throws AppException
*/
List<MenuEntity> findAllEnable() throws AppException;
/**
* 查询有权限的菜单
*
* @param user 当前用户
* @param urls 有权限的访问地址集合
* @return
* @throws AppException
*/
List<MenuEntity> findTreeMenu(IUser user, Set<String> urls) throws AppException;
/**
* 查看所有菜单
*
* @return
* @throws AppException
*/
List<MenuEntity> findTreeMenu() throws AppException;
/**
* 更新排列顺序
* @param id
* @param type
*/
void upOrDown(Long id, Integer type);
}
\ No newline at end of file
package com.mortals.xhx.module.menu.service.impl;
import com.mortals.framework.common.code.YesNo;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol;
import com.mortals.framework.service.IUser;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.menu.model.MenuQuery;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.menu.dao.MenuDao;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.menu.service.MenuService;
import java.util.*;
/**
* MenuService
* 菜单信息业务 service实现
*
* @author zxfei
* @date 2022-05-25
*/
@Service("menuService")
public class MenuServiceImpl extends AbstractCRUDServiceImpl<MenuDao, MenuEntity, Long> implements MenuService {
@Override
public List<MenuEntity> findAllEnable() throws AppException {
MenuQuery params = new MenuQuery();
params.setStatus(YesNo.YES.getValue());
params.setMenuType(0);//主菜单
List<OrderCol> orderColList = new ArrayList<OrderCol>();
orderColList.add(new OrderCol("parentId"));
orderColList.add(new OrderCol("orderId"));
params.setOrderColList(orderColList);
return dao.getList(params);
}
@Override
public List<MenuEntity> findTreeMenu(IUser user, Set<String> urls) throws AppException {
Set<Long> authIds = new HashSet<Long>();
Map<Long, MenuEntity> menuMap = new HashMap<Long, MenuEntity>();
List<MenuEntity> userModuleList = this.findAllEnable();
for (MenuEntity sysModule : userModuleList) {
if (sysModule == null) {
continue;
}
menuMap.put(sysModule.getId(), sysModule);
if (!user.isAdmin() && urls.contains(StringUtils.trim(sysModule.getUrl()))) {
authIds.add(sysModule.getId());
}
}
if (!user.isAdmin()) {
Long[] ids = authIds.toArray(new Long[authIds.size()]);
for (Long id : ids) {
MenuEntity menu = menuMap.get(id);
while (menu != null) {
authIds.add(menu.getId());
menu = menuMap.get(menu.getParentId());
}
}
}
List<MenuEntity> outlookBar = new ArrayList<MenuEntity>();
List<MenuEntity> norightList = new ArrayList<MenuEntity>();
for (MenuEntity sysModule : userModuleList) {
if (!user.isAdmin() && !authIds.contains(sysModule.getId())) {
norightList.add(sysModule);
continue;
}
if (sysModule.getParentId() == null || sysModule.getParentId().longValue() == 0) {
outlookBar.add(sysModule);
continue;
}
MenuEntity sysModuleParent = menuMap.get(sysModule.getParentId());
if (sysModuleParent != null) {
sysModuleParent.getChildList().add(sysModule);
}
}
return outlookBar;
}
public List<MenuEntity> findTreeMenu() throws AppException {
Map<Long, MenuEntity> menuMap = new HashMap<Long, MenuEntity>();
List<MenuEntity> userModuleList = this.findAllEnable();
for (MenuEntity sysModule : userModuleList) {
if (sysModule == null) {
continue;
}
menuMap.put(sysModule.getId(), sysModule);
}
List<MenuEntity> outlookBar = new ArrayList<MenuEntity>();
for (MenuEntity sysModule : userModuleList) {
if (sysModule.getParentId() == null || sysModule.getParentId().longValue() == 0) {
outlookBar.add(sysModule);
continue;
}
MenuEntity sysModuleParent = menuMap.get(sysModule.getParentId());
if (sysModuleParent != null) {
sysModuleParent.getChildList().add(sysModule);
}
}
return outlookBar;
}
@Override
public void upOrDown(Long id, Integer type) {
MenuQuery query = new MenuQuery();
query.setOrderColList(Arrays.asList(new OrderCol("orderId")));
query.setOrderKind(OrderCol.ASCENDING);
//判断移动的是一级菜单还是二级菜单
MenuEntity menuEntity = this.get(id);
if (menuEntity.getParentId() == 0) {
//一级菜单
query.setParentId(0L);
} else {
//二级菜单
query.setParentId(menuEntity.getParentId());
}
List<MenuEntity> list = this.find(query);
MenuEntity preEntity = null;
MenuEntity curEntity = null;
if (type == YesNoEnum.NO.getValue()) {
//up
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId().equals(id) && i > 0) {
curEntity = list.get(i);
preEntity = list.get(i - 1);
break;
}
}
} else {
//down
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId().equals(id) && i + 1 < list.size()) {
curEntity = list.get(i);
preEntity = list.get(i + 1);
break;
}
}
}
if (preEntity != null && curEntity != null) {
//交换
Long temp = preEntity.getOrderId();
preEntity.setOrderId(curEntity.getOrderId());
curEntity.setOrderId(temp);
this.update(preEntity);
this.update(curEntity);
}
}
@Override
protected void saveBefore(MenuEntity entity, Context context) throws AppException {
MenuQuery query = new MenuQuery();
query.setParentId(entity.getParentId());
Comparator<Long> comparator = Comparator.comparing(Long::longValue);
Optional<Long> maxOptional = this.find(query).stream().map(MenuEntity::getOrderId).filter(f->f!=9999).max(comparator);
maxOptional.ifPresent(e -> {
e=e+1;
entity.setOrderId(e);
});
super.saveBefore(entity, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.menu.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.*;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.menu.service.MenuService;
import com.mortals.xhx.module.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 菜单信息业务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("menu")
public class MenuController extends BaseCRUDJsonBodyMappingController<MenuService, MenuEntity, Long> {
@Autowired
private ParamService paramService;
public MenuController() {
super.setFormClass(MenuForm.class);
super.setModuleDesc("菜单信息业务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
Map<String, Object> status = new HashMap<String, Object>();
status.put("status", DataSatus.getEnumMap(DataSatus.CLOSE.getValue(), DataSatus.DELETE.getValue(), DataSatus.OVERDUE.getValue(), DataSatus.USEOUT.getValue()));
status.put("linkType", MenuLinkType.getEnumMap());
status.put("commMenu", MenuComm.getEnumMap());
status.put("menuType", MenuType.getEnumMap());
status.put("authType", MenuAuthType.getEnumMap());
model.put(KEY_RESULT_DICT, status);
super.init(model, context);
}
@Override
protected void doListBefore(MenuEntity query, Map<String, Object> model, Context context) throws AppException {
List<OrderCol> orderColList = new ArrayList<OrderCol>();
orderColList.add(new OrderCol("parentId"));
orderColList.add(new OrderCol("orderId"));
query.setOrderColList(orderColList);
super.doListBefore(query, model, context);
}
/**
* 改变状态
*/
@RequestMapping(value = "change/status")
public String changeStatus(@RequestParam(value = "id") Long id, @RequestParam(value = "status") Integer status) {
JSONObject ret = new JSONObject();
Context context = getContext();
try {
MenuEntity entity = this.service.get(id, context);//.doSubmitAudit(form.getEntity(), context);
if (null == entity) {
throw new AppException("菜单不存在!");
}
if (null == status) {
throw new AppException("菜单状态不能为空!");
}
if (status != DataSatus.ENABLE.getValue() && status != DataSatus.DISENABLE.getValue()) {
throw new AppException("非法菜单状态!");
}
String busiDesc = DataSatus.getByValue(status).getDesc();
entity.setStatus(status);
this.service.update(entity, context);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, busiDesc + "成功");
recordSysLog(request, busiDesc + " 【成功】 [id:" + entity.getId() + "]");
} catch (Exception e) {
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
/**
* 更换排序
*/
@PostMapping(value = "upOrDown")
public String upOrDownTopicList(@RequestParam(value = "id") Long id, @RequestParam(value = "type") Integer type) {
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
try {
this.service.upOrDown(id, type);
} catch (Exception e) {
log.error("更新错误", e);
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, e.getMessage());
}
return ret.toJSONString();
}
}
\ No newline at end of file
package com.mortals.xhx.module.menu.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.menu.model.MenuQuery;
/**
* Menu
*
* 菜单信息业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class MenuForm extends BaseCRUDFormLong<MenuEntity> {
private MenuEntity entity = new MenuEntity();
private MenuQuery query = new MenuQuery();
public MenuForm(){
}
@Override
public MenuEntity getEntity() {
return entity;
}
public void setMenu(MenuEntity entity) {
this.entity = entity;
}
@Override
public MenuQuery getQuery() {
return query;
}
public void setQuery(MenuQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.param.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.param.model.ParamEntity;
import java.util.List;
/**
* 参数信息业务Dao
* 参数信息业务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface ParamDao extends ICRUDDao<ParamEntity,Long>{
}
package com.mortals.xhx.module.param.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.param.dao.ParamDao;
import com.mortals.xhx.module.param.model.ParamEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 参数信息业务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("paramDao")
public class ParamDaoImpl extends BaseCRUDDaoMybatis<ParamEntity,Long> implements ParamDao {
}
package com.mortals.xhx.module.param.model;
import com.mortals.framework.service.IParam;
import com.mortals.xhx.module.param.model.vo.ParamVo;
/**
* 参数信息业务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class ParamEntity extends ParamVo implements IParam {
private static final long serialVersionUID = 1L;
/**
* 参数名称
*/
private String name;
/**
* 一级组织,如:平台配置
*/
private String firstOrganize;
/**
* 二级组织,如:基础配置
*/
private String secondOrganize;
/**
* 参数键,全局唯一
*/
private String paramKey;
/**
* 参数值
*/
private String paramValue;
/**
* 参数有效状态,0:禁用,1:启用,默认1
*/
private Integer validStatus;
/**
* 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
*/
private Integer modStatus;
/**
* 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
*/
private Integer displayType;
/**
* 备注
*/
private String remark;
/**
* 创建用户名称
*/
private String createUserName;
public ParamEntity(){}
/**
* 获取 参数名称
* @return String
*/
public String getName(){
return name;
}
/**
* 设置 参数名称
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 一级组织,如:平台配置
* @return String
*/
public String getFirstOrganize(){
return firstOrganize;
}
/**
* 设置 一级组织,如:平台配置
* @param firstOrganize
*/
public void setFirstOrganize(String firstOrganize){
this.firstOrganize = firstOrganize;
}
/**
* 获取 二级组织,如:基础配置
* @return String
*/
public String getSecondOrganize(){
return secondOrganize;
}
/**
* 设置 二级组织,如:基础配置
* @param secondOrganize
*/
public void setSecondOrganize(String secondOrganize){
this.secondOrganize = secondOrganize;
}
/**
* 获取 参数键,全局唯一
* @return String
*/
public String getParamKey(){
return paramKey;
}
/**
* 设置 参数键,全局唯一
* @param paramKey
*/
public void setParamKey(String paramKey){
this.paramKey = paramKey;
}
/**
* 获取 参数值
* @return String
*/
public String getParamValue(){
return paramValue;
}
/**
* 设置 参数值
* @param paramValue
*/
public void setParamValue(String paramValue){
this.paramValue = paramValue;
}
/**
* 获取 参数有效状态,0:禁用,1:启用,默认1
* @return Integer
*/
public Integer getValidStatus(){
return validStatus;
}
/**
* 设置 参数有效状态,0:禁用,1:启用,默认1
* @param validStatus
*/
public void setValidStatus(Integer validStatus){
this.validStatus = validStatus;
}
/**
* 获取 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @return Integer
*/
public Integer getModStatus(){
return modStatus;
}
/**
* 设置 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatus
*/
public void setModStatus(Integer modStatus){
this.modStatus = modStatus;
}
/**
* 获取 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @return Integer
*/
public Integer getDisplayType(){
return displayType;
}
/**
* 设置 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayType
*/
public void setDisplayType(Integer displayType){
this.displayType = displayType;
}
/**
* 获取 备注
* @return String
*/
public String getRemark(){
return remark;
}
/**
* 设置 备注
* @param remark
*/
public void setRemark(String remark){
this.remark = remark;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof ParamEntity) {
ParamEntity tmp = (ParamEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",name:").append(getName());
sb.append(",firstOrganize:").append(getFirstOrganize());
sb.append(",secondOrganize:").append(getSecondOrganize());
sb.append(",paramKey:").append(getParamKey());
sb.append(",paramValue:").append(getParamValue());
sb.append(",validStatus:").append(getValidStatus());
sb.append(",modStatus:").append(getModStatus());
sb.append(",displayType:").append(getDisplayType());
sb.append(",remark:").append(getRemark());
sb.append(",createUserName:").append(getCreateUserName());
return sb.toString();
}
public void initAttrValue(){
this.name = "";
this.firstOrganize = "";
this.secondOrganize = "";
this.paramKey = "";
this.paramValue = "";
this.validStatus = 1;
this.modStatus = 4;
this.displayType = 0;
this.remark = "";
this.createUserName = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.param.model;
import java.util.List;
import com.mortals.xhx.module.param.model.ParamEntity;
/**
* 参数信息业务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class ParamQuery extends ParamEntity {
/** 开始 序号,主键,自增长 */
private Long idStart;
/** 结束 序号,主键,自增长 */
private Long idEnd;
/** 增加 序号,主键,自增长 */
private Long idIncrement;
/** 序号,主键,自增长列表 */
private List <Long> idList;
/** 参数名称 */
private List<String> nameList;
/** 一级组织,如:平台配置 */
private List<String> firstOrganizeList;
/** 二级组织,如:基础配置 */
private List<String> secondOrganizeList;
/** 参数键,全局唯一 */
private List<String> paramKeyList;
/** 参数值 */
private List<String> paramValueList;
/** 开始 参数有效状态,0:禁用,1:启用,默认1 */
private Integer validStatusStart;
/** 结束 参数有效状态,0:禁用,1:启用,默认1 */
private Integer validStatusEnd;
/** 增加 参数有效状态,0:禁用,1:启用,默认1 */
private Integer validStatusIncrement;
/** 参数有效状态,0:禁用,1:启用,默认1列表 */
private List <Integer> validStatusList;
/** 开始 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4 */
private Integer modStatusStart;
/** 结束 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4 */
private Integer modStatusEnd;
/** 增加 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4 */
private Integer modStatusIncrement;
/** 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4列表 */
private List <Integer> modStatusList;
/** 开始 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0 */
private Integer displayTypeStart;
/** 结束 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0 */
private Integer displayTypeEnd;
/** 增加 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0 */
private Integer displayTypeIncrement;
/** 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0列表 */
private List <Integer> displayTypeList;
/** 备注 */
private List<String> remarkList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户列表 */
private List <Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<ParamQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<ParamQuery> andConditionList;
public ParamQuery(){}
/**
* 获取 开始 序号,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 序号,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 序号,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 参数名称
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 参数名称
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 一级组织,如:平台配置
* @return firstOrganizeList
*/
public List<String> getFirstOrganizeList(){
return this.firstOrganizeList;
}
/**
* 设置 一级组织,如:平台配置
* @param firstOrganizeList
*/
public void setFirstOrganizeList(List<String> firstOrganizeList){
this.firstOrganizeList = firstOrganizeList;
}
/**
* 获取 二级组织,如:基础配置
* @return secondOrganizeList
*/
public List<String> getSecondOrganizeList(){
return this.secondOrganizeList;
}
/**
* 设置 二级组织,如:基础配置
* @param secondOrganizeList
*/
public void setSecondOrganizeList(List<String> secondOrganizeList){
this.secondOrganizeList = secondOrganizeList;
}
/**
* 获取 参数键,全局唯一
* @return paramKeyList
*/
public List<String> getParamKeyList(){
return this.paramKeyList;
}
/**
* 设置 参数键,全局唯一
* @param paramKeyList
*/
public void setParamKeyList(List<String> paramKeyList){
this.paramKeyList = paramKeyList;
}
/**
* 获取 参数值
* @return paramValueList
*/
public List<String> getParamValueList(){
return this.paramValueList;
}
/**
* 设置 参数值
* @param paramValueList
*/
public void setParamValueList(List<String> paramValueList){
this.paramValueList = paramValueList;
}
/**
* 获取 开始 参数有效状态,0:禁用,1:启用,默认1
* @return validStatusStart
*/
public Integer getValidStatusStart(){
return this.validStatusStart;
}
/**
* 设置 开始 参数有效状态,0:禁用,1:启用,默认1
* @param validStatusStart
*/
public void setValidStatusStart(Integer validStatusStart){
this.validStatusStart = validStatusStart;
}
/**
* 获取 结束 参数有效状态,0:禁用,1:启用,默认1
* @return $validStatusEnd
*/
public Integer getValidStatusEnd(){
return this.validStatusEnd;
}
/**
* 设置 结束 参数有效状态,0:禁用,1:启用,默认1
* @param validStatusEnd
*/
public void setValidStatusEnd(Integer validStatusEnd){
this.validStatusEnd = validStatusEnd;
}
/**
* 获取 增加 参数有效状态,0:禁用,1:启用,默认1
* @return validStatusIncrement
*/
public Integer getValidStatusIncrement(){
return this.validStatusIncrement;
}
/**
* 设置 增加 参数有效状态,0:禁用,1:启用,默认1
* @param validStatusIncrement
*/
public void setValidStatusIncrement(Integer validStatusIncrement){
this.validStatusIncrement = validStatusIncrement;
}
/**
* 获取 参数有效状态,0:禁用,1:启用,默认1
* @return validStatusList
*/
public List<Integer> getValidStatusList(){
return this.validStatusList;
}
/**
* 设置 参数有效状态,0:禁用,1:启用,默认1
* @param validStatusList
*/
public void setValidStatusList(List<Integer> validStatusList){
this.validStatusList = validStatusList;
}
/**
* 获取 开始 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @return modStatusStart
*/
public Integer getModStatusStart(){
return this.modStatusStart;
}
/**
* 设置 开始 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatusStart
*/
public void setModStatusStart(Integer modStatusStart){
this.modStatusStart = modStatusStart;
}
/**
* 获取 结束 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @return $modStatusEnd
*/
public Integer getModStatusEnd(){
return this.modStatusEnd;
}
/**
* 设置 结束 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatusEnd
*/
public void setModStatusEnd(Integer modStatusEnd){
this.modStatusEnd = modStatusEnd;
}
/**
* 获取 增加 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @return modStatusIncrement
*/
public Integer getModStatusIncrement(){
return this.modStatusIncrement;
}
/**
* 设置 增加 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatusIncrement
*/
public void setModStatusIncrement(Integer modStatusIncrement){
this.modStatusIncrement = modStatusIncrement;
}
/**
* 获取 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @return modStatusList
*/
public List<Integer> getModStatusList(){
return this.modStatusList;
}
/**
* 设置 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatusList
*/
public void setModStatusList(List<Integer> modStatusList){
this.modStatusList = modStatusList;
}
/**
* 获取 开始 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @return displayTypeStart
*/
public Integer getDisplayTypeStart(){
return this.displayTypeStart;
}
/**
* 设置 开始 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayTypeStart
*/
public void setDisplayTypeStart(Integer displayTypeStart){
this.displayTypeStart = displayTypeStart;
}
/**
* 获取 结束 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @return $displayTypeEnd
*/
public Integer getDisplayTypeEnd(){
return this.displayTypeEnd;
}
/**
* 设置 结束 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayTypeEnd
*/
public void setDisplayTypeEnd(Integer displayTypeEnd){
this.displayTypeEnd = displayTypeEnd;
}
/**
* 获取 增加 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @return displayTypeIncrement
*/
public Integer getDisplayTypeIncrement(){
return this.displayTypeIncrement;
}
/**
* 设置 增加 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayTypeIncrement
*/
public void setDisplayTypeIncrement(Integer displayTypeIncrement){
this.displayTypeIncrement = displayTypeIncrement;
}
/**
* 获取 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @return displayTypeList
*/
public List<Integer> getDisplayTypeList(){
return this.displayTypeList;
}
/**
* 设置 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayTypeList
*/
public void setDisplayTypeList(List<Integer> displayTypeList){
this.displayTypeList = displayTypeList;
}
/**
* 获取 备注
* @return remarkList
*/
public List<String> getRemarkList(){
return this.remarkList;
}
/**
* 设置 备注
* @param remarkList
*/
public void setRemarkList(List<String> remarkList){
this.remarkList = remarkList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 设置 序号,主键,自增长
* @param id
*/
public ParamQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public ParamQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public ParamQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public ParamQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public ParamQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 参数名称
* @param name
*/
public ParamQuery name(String name){
setName(name);
return this;
}
/**
* 设置 参数名称
* @param nameList
*/
public ParamQuery nameList(List<String> nameList){
this.nameList = nameList;
return this;
}
/**
* 设置 一级组织,如:平台配置
* @param firstOrganize
*/
public ParamQuery firstOrganize(String firstOrganize){
setFirstOrganize(firstOrganize);
return this;
}
/**
* 设置 一级组织,如:平台配置
* @param firstOrganizeList
*/
public ParamQuery firstOrganizeList(List<String> firstOrganizeList){
this.firstOrganizeList = firstOrganizeList;
return this;
}
/**
* 设置 二级组织,如:基础配置
* @param secondOrganize
*/
public ParamQuery secondOrganize(String secondOrganize){
setSecondOrganize(secondOrganize);
return this;
}
/**
* 设置 二级组织,如:基础配置
* @param secondOrganizeList
*/
public ParamQuery secondOrganizeList(List<String> secondOrganizeList){
this.secondOrganizeList = secondOrganizeList;
return this;
}
/**
* 设置 参数键,全局唯一
* @param paramKey
*/
public ParamQuery paramKey(String paramKey){
setParamKey(paramKey);
return this;
}
/**
* 设置 参数键,全局唯一
* @param paramKeyList
*/
public ParamQuery paramKeyList(List<String> paramKeyList){
this.paramKeyList = paramKeyList;
return this;
}
/**
* 设置 参数值
* @param paramValue
*/
public ParamQuery paramValue(String paramValue){
setParamValue(paramValue);
return this;
}
/**
* 设置 参数值
* @param paramValueList
*/
public ParamQuery paramValueList(List<String> paramValueList){
this.paramValueList = paramValueList;
return this;
}
/**
* 设置 参数有效状态,0:禁用,1:启用,默认1
* @param validStatus
*/
public ParamQuery validStatus(Integer validStatus){
setValidStatus(validStatus);
return this;
}
/**
* 设置 开始 参数有效状态,0:禁用,1:启用,默认1
* @param validStatusStart
*/
public ParamQuery validStatusStart(Integer validStatusStart){
this.validStatusStart = validStatusStart;
return this;
}
/**
* 设置 结束 参数有效状态,0:禁用,1:启用,默认1
* @param validStatusEnd
*/
public ParamQuery validStatusEnd(Integer validStatusEnd){
this.validStatusEnd = validStatusEnd;
return this;
}
/**
* 设置 增加 参数有效状态,0:禁用,1:启用,默认1
* @param validStatusIncrement
*/
public ParamQuery validStatusIncrement(Integer validStatusIncrement){
this.validStatusIncrement = validStatusIncrement;
return this;
}
/**
* 设置 参数有效状态,0:禁用,1:启用,默认1
* @param validStatusList
*/
public ParamQuery validStatusList(List<Integer> validStatusList){
this.validStatusList = validStatusList;
return this;
}
/**
* 设置 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatus
*/
public ParamQuery modStatus(Integer modStatus){
setModStatus(modStatus);
return this;
}
/**
* 设置 开始 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatusStart
*/
public ParamQuery modStatusStart(Integer modStatusStart){
this.modStatusStart = modStatusStart;
return this;
}
/**
* 设置 结束 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatusEnd
*/
public ParamQuery modStatusEnd(Integer modStatusEnd){
this.modStatusEnd = modStatusEnd;
return this;
}
/**
* 设置 增加 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatusIncrement
*/
public ParamQuery modStatusIncrement(Integer modStatusIncrement){
this.modStatusIncrement = modStatusIncrement;
return this;
}
/**
* 设置 参数修改状态,0:隐藏,1:页面仅查看,2:页面可修改,3:页面可删除,4:页面可修改删除,默认4
* @param modStatusList
*/
public ParamQuery modStatusList(List<Integer> modStatusList){
this.modStatusList = modStatusList;
return this;
}
/**
* 设置 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayType
*/
public ParamQuery displayType(Integer displayType){
setDisplayType(displayType);
return this;
}
/**
* 设置 开始 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayTypeStart
*/
public ParamQuery displayTypeStart(Integer displayTypeStart){
this.displayTypeStart = displayTypeStart;
return this;
}
/**
* 设置 结束 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayTypeEnd
*/
public ParamQuery displayTypeEnd(Integer displayTypeEnd){
this.displayTypeEnd = displayTypeEnd;
return this;
}
/**
* 设置 增加 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayTypeIncrement
*/
public ParamQuery displayTypeIncrement(Integer displayTypeIncrement){
this.displayTypeIncrement = displayTypeIncrement;
return this;
}
/**
* 设置 展现类型,0:普通文本框,1:多行文本框,2:开关,3:块输入框,默认:0
* @param displayTypeList
*/
public ParamQuery displayTypeList(List<Integer> displayTypeList){
this.displayTypeList = displayTypeList;
return this;
}
/**
* 设置 备注
* @param remark
*/
public ParamQuery remark(String remark){
setRemark(remark);
return this;
}
/**
* 设置 备注
* @param remarkList
*/
public ParamQuery remarkList(List<String> remarkList){
this.remarkList = remarkList;
return this;
}
/**
* 设置 创建用户
* @param createUserId
*/
public ParamQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public ParamQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public ParamQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public ParamQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public ParamQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public ParamQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public ParamQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<ParamQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<ParamQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<ParamQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<ParamQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.param.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.param.model.ParamEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 参数信息业务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class ParamVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.param.service;
import com.mortals.framework.service.ICRUDCacheService;
import com.mortals.framework.service.IParamService;
import com.mortals.xhx.module.param.model.ParamEntity;
import java.util.Map;
/**
* <p>Title: 参数信息</p>
* <p>Description: ParamService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface ParamService extends ICRUDCacheService<ParamEntity, Long>, IParamService {
/**
* 通过Key获取参数值
* @param key
* @return
*/
String getValueByKey(String key);
/**
* 通过firstOrganize获取配置参数key-value
*
* @param firstOrganize
* @param excludeParamKeys 需要过虑掉的paramKey
* @return
*/
Map<String, String> getParamByFirstOrganize(String firstOrganize, String... excludeParamKeys);
/**
* 通过firstOrganize获取配置参数key-value
*
* @param firstOrganize
* @param excludeParamKeys 需要过虑掉的paramKey
* @return
*/
Map<String, String> getParamBySecondOrganize(String firstOrganize,String secondOrganize, String... excludeParamKeys);
}
\ No newline at end of file
package com.mortals.xhx.module.param.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.IParam;
import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.param.dao.ParamDao;
import com.mortals.xhx.module.param.model.ParamEntity;
import com.mortals.xhx.module.param.service.ParamService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>Title: 参数信息</p>
* <p>Description: ParamServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
*
* @author
* @version 1.0.0
*/
@Service("paramService")
public class ParamServiceImpl extends AbstractCRUDCacheServiceImpl<ParamDao, ParamEntity, Long>
implements ParamService {
@Override
protected String getCacheName() {
return "ParamEntity.paramKey";
}
@Override
public String getValueByKey(String key) {
List<ParamEntity> list = this.getCacheList();
Map<String, String> keyValueMap = list.parallelStream().collect(Collectors.toMap(x -> x.getParamKey(), y -> y.getParamValue(), (o, n) -> n));
return keyValueMap.getOrDefault(key, "");
}
@Override
public Map<String, String> getParamByFirstOrganize(String firstOrganize, String... excludeParamKeys) {
List<ParamEntity> list = this.getCacheList();
return list.stream()
.filter(f -> firstOrganize.equals(f.getFirstOrganize()))
.filter(s ->
!Arrays.asList(excludeParamKeys).contains(s.getParamKey())
).collect(Collectors.toMap(ParamEntity::getParamKey, ParamEntity::getParamValue, (o, n) -> n));
}
public Map<String, String> getParamBySecondOrganize(String firstOrganize, String secondOrganize, String... excludeParamKeys) {
List<ParamEntity> list = this.getCacheList();
return list.stream()
.filter(f -> firstOrganize.equals(f.getFirstOrganize()))
.filter(f -> secondOrganize.equals(f.getSecondOrganize()))
.filter(s ->
!Arrays.asList(excludeParamKeys).contains(s.getParamKey())
).collect(Collectors.toMap(ParamEntity::getParamKey, ParamEntity::getParamValue, (o, n) -> n));
}
@Override
public boolean needRefresh() {
if (super.cacheService.isShareCache()) {
//共享缓存如redis,不需要实时刷新
return false;
}
IParam param = this.findByKey(IParam.KEY_PARAM_REFRESH_COUNT);
if (param != null) {
String value = StringUtils.trim(param.getParamValue());
IParam memParam = getParamByKey(IParam.KEY_PARAM_REFRESH_COUNT);
if (memParam == null || !value.equals(StringUtils.trim(memParam.getParamValue()))) {
return true;
}
}
return false;
}
@Override
public void refresh() {
log.info("开始初始化系统参数...");
try {
super.removeAllCache();
super.loadCache();
log.info("系统参数初始化完成!");
} catch (Exception e) {
log.error("查询系统参数异常", e);
}
}
@Override
public IParam findByKey(String key) throws AppException {
return this.getCacheList().stream().filter(f -> key.equals(f.getParamKey())).findFirst().orElseGet(() -> null);
}
@Override
public List<? extends IParam> findAll() throws AppException {
return this.getCacheList();
}
@Override
public boolean containsParamKey(String key) {
List<ParamEntity> list = this.getCacheList();
Map<String, String> keyValueMap = list.parallelStream().collect(Collectors.toMap(x -> x.getParamKey(), y -> y.getParamValue(), (o, n) -> n));
return keyValueMap.containsKey(key);
}
@Override
public IParam getParamByKey(String key) {
List<ParamEntity> list = this.getCacheList();
Map<String, IParam> keyValueMap = list.parallelStream().collect(Collectors.toMap(x -> x.getParamKey(), y -> y, (o, n) -> n));
return keyValueMap.get(key);
}
@Override
public String getParamValue(String key) {
List<ParamEntity> list = this.getCacheList();
Map<String, String> keyValueMap = list.parallelStream().collect(Collectors.toMap(x -> x.getParamKey(), y -> y.getParamValue(), (o, n) -> n));
return keyValueMap.getOrDefault(key, "");
}
@Override
public String getParamValue(String key, String defaultValue) {
String value = getParamValue(key);
if (StringUtils.isEmpty(value)) {
return defaultValue;
}
return value;
}
@Override
public int getParamIntValue(String key) {
return DataUtil.converStr2Int(getParamValue(key), 0);
}
@Override
public int getParamIntValue(String key, int defaultValue) {
return DataUtil.converStr2Int(getParamValue(key), defaultValue);
}
@Override
public long getParamLongValue(String key) {
return DataUtil.converStr2Long(getParamValue(key), 0L);
}
@Override
public long getParamLongValue(String key, long defaultValue) {
return DataUtil.converStr2Long(getParamValue(key), defaultValue);
}
@Override
public boolean getParamBooleanValue(String key) {
String value = getParamValue(key);
if (StringUtils.isEmpty(value)) {
return false;
}
try {
return Boolean.parseBoolean(value);
} catch (Exception e) {
return false;
}
}
@Override
public boolean getParamBooleanValue(String key, boolean defaultValue) {
String value = getParamValue(key);
if (StringUtils.isEmpty(value)) {
return defaultValue;
}
try {
return Boolean.parseBoolean(value);
} catch (Exception e) {
log.debug("cannot conver key[" + key + "]'s value[" + value + "] to boolean, use default value[" + defaultValue + "]");
return defaultValue;
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.param.web;
import com.mortals.framework.common.code.PageDisplayType;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.DataSatusEnum;
import com.mortals.xhx.common.code.ModStatusEnum;
import com.mortals.xhx.module.param.model.ParamEntity;
import com.mortals.xhx.module.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
*
* 参数信息业务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("param")
public class ParamController extends BaseCRUDJsonBodyMappingController<ParamService,ParamEntity,Long> {
@Autowired
private ParamService paramService;
public ParamController(){
super.setFormClass(ParamForm.class);
super.setModuleDesc( "参数信息业务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
Map<String, Object> status = new HashMap<String, Object>();
status.put("validStatus", DataSatusEnum.getEnumMap(DataSatusEnum.CLOSE.getValue(),
DataSatusEnum.DELETE.getValue(), DataSatusEnum.OVERDUE.getValue(), DataSatusEnum.USEOUT.getValue()));
status.put("modStatus", ModStatusEnum.getEnumMap());
status.put("displayType", getPageDisplayType());
model.put(KEY_RESULT_DICT, status);
}
private Map<String, Object> getPageDisplayType() {
PageDisplayType[] pageDisplayTypes = PageDisplayType.values();
Map<String, Object> result = new HashMap<>(pageDisplayTypes.length);
for (PageDisplayType pageDisplayType : pageDisplayTypes) {
result.put(pageDisplayType.getValue() + "", pageDisplayType.getDesc());
}
return result;
}
}
\ No newline at end of file
package com.mortals.xhx.module.param.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.param.model.ParamEntity;
import com.mortals.xhx.module.param.model.ParamQuery;
/**
* Param
*
* 参数信息业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class ParamForm extends BaseCRUDFormLong<ParamEntity> {
private ParamEntity entity = new ParamEntity();
private ParamQuery query = new ParamQuery();
public ParamForm(){
}
@Override
public ParamEntity getEntity() {
return entity;
}
public void setParam(ParamEntity entity) {
this.entity = entity;
}
@Override
public ParamQuery getQuery() {
return query;
}
public void setQuery(ParamQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.resource.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.resource.model.ResourceEntity;
import java.util.List;
/**
* 资源信息业务Dao
* 资源信息业务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface ResourceDao extends ICRUDDao<ResourceEntity,Long>{
List<ResourceEntity> getListByUserId(Long userId);
List<ResourceEntity> getAll(int userType);
}
package com.mortals.xhx.module.resource.dao.ibatis;
import com.mortals.framework.model.ParamDto;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.resource.dao.ResourceDao;
import com.mortals.xhx.module.resource.model.ResourceEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.HashMap;
import java.util.List;
/**
* 资源信息业务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("resourceDao")
public class ResourceDaoImpl extends BaseCRUDDaoMybatis<ResourceEntity, Long> implements ResourceDao {
@Override
public List<ResourceEntity> getListByUserId(Long userId) {
ParamDto param = new ParamDto();
param.getCondition().put("userId", userId);
return getSqlSession().selectList(getSqlId("getListByUserId"), param);
}
@Override
public List<ResourceEntity> getAll(final int userType) {
return getSqlSession().selectList(getSqlId("getAllByUserType"), new HashMap<String, Object>() {
{
put("userType", userType);
}
});
}
}
package com.mortals.xhx.module.resource.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.resource.model.vo.ResourceVo;
/**
* 资源信息业务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class ResourceEntity extends ResourceVo {
private static final long serialVersionUID = 1L;
/**
* 名称
*/
private String name;
/**
* 连接地址,多个地址以逗号分隔
*/
private String url;
/**
* 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
*/
private Integer authType;
/**
* 资源类型(0.系统资源,1.开放资源)
*/
private Integer sourceType;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
*/
private Integer userType;
public ResourceEntity(){}
/**
* 获取 名称
* @return String
*/
public String getName(){
return name;
}
/**
* 设置 名称
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 连接地址,多个地址以逗号分隔
* @return String
*/
public String getUrl(){
return url;
}
/**
* 设置 连接地址,多个地址以逗号分隔
* @param url
*/
public void setUrl(String url){
this.url = url;
}
/**
* 获取 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @return Integer
*/
public Integer getAuthType(){
return authType;
}
/**
* 设置 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authType
*/
public void setAuthType(Integer authType){
this.authType = authType;
}
/**
* 获取 资源类型(0.系统资源,1.开放资源)
* @return Integer
*/
public Integer getSourceType(){
return sourceType;
}
/**
* 设置 资源类型(0.系统资源,1.开放资源)
* @param sourceType
*/
public void setSourceType(Integer sourceType){
this.sourceType = sourceType;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
/**
* 获取 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @return Integer
*/
public Integer getUserType(){
return userType;
}
/**
* 设置 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userType
*/
public void setUserType(Integer userType){
this.userType = userType;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof ResourceEntity) {
ResourceEntity tmp = (ResourceEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",name:").append(getName());
sb.append(",url:").append(getUrl());
sb.append(",authType:").append(getAuthType());
sb.append(",sourceType:").append(getSourceType());
sb.append(",createUserName:").append(getCreateUserName());
sb.append(",userType:").append(getUserType());
return sb.toString();
}
public void initAttrValue(){
this.name = "";
this.url = "";
this.authType = 3;
this.sourceType = 0;
this.createUserName = "";
this.userType = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.resource.model;
import java.util.List;
import com.mortals.xhx.module.resource.model.ResourceEntity;
/**
* 资源信息业务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class ResourceQuery extends ResourceEntity {
/** 开始 菜单ID,主键,自增长 */
private Long idStart;
/** 结束 菜单ID,主键,自增长 */
private Long idEnd;
/** 增加 菜单ID,主键,自增长 */
private Long idIncrement;
/** 菜单ID,主键,自增长列表 */
private List <Long> idList;
/** 名称 */
private List<String> nameList;
/** 连接地址,多个地址以逗号分隔 */
private List<String> urlList;
/** 开始 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看) */
private Integer authTypeStart;
/** 结束 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看) */
private Integer authTypeEnd;
/** 增加 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看) */
private Integer authTypeIncrement;
/** 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)列表 */
private List <Integer> authTypeList;
/** 开始 资源类型(0.系统资源,1.开放资源) */
private Integer sourceTypeStart;
/** 结束 资源类型(0.系统资源,1.开放资源) */
private Integer sourceTypeEnd;
/** 增加 资源类型(0.系统资源,1.开放资源) */
private Integer sourceTypeIncrement;
/** 资源类型(0.系统资源,1.开放资源)列表 */
private List <Integer> sourceTypeList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户列表 */
private List <Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** 开始 用户类型(0.系统用户,1.代理商用户,2.品牌商用户) */
private Integer userTypeStart;
/** 结束 用户类型(0.系统用户,1.代理商用户,2.品牌商用户) */
private Integer userTypeEnd;
/** 增加 用户类型(0.系统用户,1.代理商用户,2.品牌商用户) */
private Integer userTypeIncrement;
/** 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)列表 */
private List <Integer> userTypeList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<ResourceQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<ResourceQuery> andConditionList;
public ResourceQuery(){}
/**
* 获取 开始 菜单ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 菜单ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 菜单ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 菜单ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 菜单ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 菜单ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 菜单ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 菜单ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 名称
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 名称
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 连接地址,多个地址以逗号分隔
* @return urlList
*/
public List<String> getUrlList(){
return this.urlList;
}
/**
* 设置 连接地址,多个地址以逗号分隔
* @param urlList
*/
public void setUrlList(List<String> urlList){
this.urlList = urlList;
}
/**
* 获取 开始 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @return authTypeStart
*/
public Integer getAuthTypeStart(){
return this.authTypeStart;
}
/**
* 设置 开始 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authTypeStart
*/
public void setAuthTypeStart(Integer authTypeStart){
this.authTypeStart = authTypeStart;
}
/**
* 获取 结束 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @return $authTypeEnd
*/
public Integer getAuthTypeEnd(){
return this.authTypeEnd;
}
/**
* 设置 结束 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authTypeEnd
*/
public void setAuthTypeEnd(Integer authTypeEnd){
this.authTypeEnd = authTypeEnd;
}
/**
* 获取 增加 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @return authTypeIncrement
*/
public Integer getAuthTypeIncrement(){
return this.authTypeIncrement;
}
/**
* 设置 增加 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authTypeIncrement
*/
public void setAuthTypeIncrement(Integer authTypeIncrement){
this.authTypeIncrement = authTypeIncrement;
}
/**
* 获取 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @return authTypeList
*/
public List<Integer> getAuthTypeList(){
return this.authTypeList;
}
/**
* 设置 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authTypeList
*/
public void setAuthTypeList(List<Integer> authTypeList){
this.authTypeList = authTypeList;
}
/**
* 获取 开始 资源类型(0.系统资源,1.开放资源)
* @return sourceTypeStart
*/
public Integer getSourceTypeStart(){
return this.sourceTypeStart;
}
/**
* 设置 开始 资源类型(0.系统资源,1.开放资源)
* @param sourceTypeStart
*/
public void setSourceTypeStart(Integer sourceTypeStart){
this.sourceTypeStart = sourceTypeStart;
}
/**
* 获取 结束 资源类型(0.系统资源,1.开放资源)
* @return $sourceTypeEnd
*/
public Integer getSourceTypeEnd(){
return this.sourceTypeEnd;
}
/**
* 设置 结束 资源类型(0.系统资源,1.开放资源)
* @param sourceTypeEnd
*/
public void setSourceTypeEnd(Integer sourceTypeEnd){
this.sourceTypeEnd = sourceTypeEnd;
}
/**
* 获取 增加 资源类型(0.系统资源,1.开放资源)
* @return sourceTypeIncrement
*/
public Integer getSourceTypeIncrement(){
return this.sourceTypeIncrement;
}
/**
* 设置 增加 资源类型(0.系统资源,1.开放资源)
* @param sourceTypeIncrement
*/
public void setSourceTypeIncrement(Integer sourceTypeIncrement){
this.sourceTypeIncrement = sourceTypeIncrement;
}
/**
* 获取 资源类型(0.系统资源,1.开放资源)
* @return sourceTypeList
*/
public List<Integer> getSourceTypeList(){
return this.sourceTypeList;
}
/**
* 设置 资源类型(0.系统资源,1.开放资源)
* @param sourceTypeList
*/
public void setSourceTypeList(List<Integer> sourceTypeList){
this.sourceTypeList = sourceTypeList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 获取 开始 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @return userTypeStart
*/
public Integer getUserTypeStart(){
return this.userTypeStart;
}
/**
* 设置 开始 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userTypeStart
*/
public void setUserTypeStart(Integer userTypeStart){
this.userTypeStart = userTypeStart;
}
/**
* 获取 结束 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @return $userTypeEnd
*/
public Integer getUserTypeEnd(){
return this.userTypeEnd;
}
/**
* 设置 结束 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userTypeEnd
*/
public void setUserTypeEnd(Integer userTypeEnd){
this.userTypeEnd = userTypeEnd;
}
/**
* 获取 增加 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @return userTypeIncrement
*/
public Integer getUserTypeIncrement(){
return this.userTypeIncrement;
}
/**
* 设置 增加 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userTypeIncrement
*/
public void setUserTypeIncrement(Integer userTypeIncrement){
this.userTypeIncrement = userTypeIncrement;
}
/**
* 获取 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @return userTypeList
*/
public List<Integer> getUserTypeList(){
return this.userTypeList;
}
/**
* 设置 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userTypeList
*/
public void setUserTypeList(List<Integer> userTypeList){
this.userTypeList = userTypeList;
}
/**
* 设置 菜单ID,主键,自增长
* @param id
*/
public ResourceQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 菜单ID,主键,自增长
* @param idStart
*/
public ResourceQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 菜单ID,主键,自增长
* @param idEnd
*/
public ResourceQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 菜单ID,主键,自增长
* @param idIncrement
*/
public ResourceQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 菜单ID,主键,自增长
* @param idList
*/
public ResourceQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 名称
* @param name
*/
public ResourceQuery name(String name){
setName(name);
return this;
}
/**
* 设置 名称
* @param nameList
*/
public ResourceQuery nameList(List<String> nameList){
this.nameList = nameList;
return this;
}
/**
* 设置 连接地址,多个地址以逗号分隔
* @param url
*/
public ResourceQuery url(String url){
setUrl(url);
return this;
}
/**
* 设置 连接地址,多个地址以逗号分隔
* @param urlList
*/
public ResourceQuery urlList(List<String> urlList){
this.urlList = urlList;
return this;
}
/**
* 设置 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authType
*/
public ResourceQuery authType(Integer authType){
setAuthType(authType);
return this;
}
/**
* 设置 开始 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authTypeStart
*/
public ResourceQuery authTypeStart(Integer authTypeStart){
this.authTypeStart = authTypeStart;
return this;
}
/**
* 设置 结束 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authTypeEnd
*/
public ResourceQuery authTypeEnd(Integer authTypeEnd){
this.authTypeEnd = authTypeEnd;
return this;
}
/**
* 设置 增加 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authTypeIncrement
*/
public ResourceQuery authTypeIncrement(Integer authTypeIncrement){
this.authTypeIncrement = authTypeIncrement;
return this;
}
/**
* 设置 权限类型(0.无限制,1.无需登录查看,2.需要登录查看,3.需要角色权限查看)
* @param authTypeList
*/
public ResourceQuery authTypeList(List<Integer> authTypeList){
this.authTypeList = authTypeList;
return this;
}
/**
* 设置 资源类型(0.系统资源,1.开放资源)
* @param sourceType
*/
public ResourceQuery sourceType(Integer sourceType){
setSourceType(sourceType);
return this;
}
/**
* 设置 开始 资源类型(0.系统资源,1.开放资源)
* @param sourceTypeStart
*/
public ResourceQuery sourceTypeStart(Integer sourceTypeStart){
this.sourceTypeStart = sourceTypeStart;
return this;
}
/**
* 设置 结束 资源类型(0.系统资源,1.开放资源)
* @param sourceTypeEnd
*/
public ResourceQuery sourceTypeEnd(Integer sourceTypeEnd){
this.sourceTypeEnd = sourceTypeEnd;
return this;
}
/**
* 设置 增加 资源类型(0.系统资源,1.开放资源)
* @param sourceTypeIncrement
*/
public ResourceQuery sourceTypeIncrement(Integer sourceTypeIncrement){
this.sourceTypeIncrement = sourceTypeIncrement;
return this;
}
/**
* 设置 资源类型(0.系统资源,1.开放资源)
* @param sourceTypeList
*/
public ResourceQuery sourceTypeList(List<Integer> sourceTypeList){
this.sourceTypeList = sourceTypeList;
return this;
}
/**
* 设置 创建用户
* @param createUserId
*/
public ResourceQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public ResourceQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public ResourceQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public ResourceQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public ResourceQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public ResourceQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public ResourceQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 设置 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userType
*/
public ResourceQuery userType(Integer userType){
setUserType(userType);
return this;
}
/**
* 设置 开始 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userTypeStart
*/
public ResourceQuery userTypeStart(Integer userTypeStart){
this.userTypeStart = userTypeStart;
return this;
}
/**
* 设置 结束 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userTypeEnd
*/
public ResourceQuery userTypeEnd(Integer userTypeEnd){
this.userTypeEnd = userTypeEnd;
return this;
}
/**
* 设置 增加 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userTypeIncrement
*/
public ResourceQuery userTypeIncrement(Integer userTypeIncrement){
this.userTypeIncrement = userTypeIncrement;
return this;
}
/**
* 设置 用户类型(0.系统用户,1.代理商用户,2.品牌商用户)
* @param userTypeList
*/
public ResourceQuery userTypeList(List<Integer> userTypeList){
this.userTypeList = userTypeList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<ResourceQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<ResourceQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<ResourceQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<ResourceQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.resource.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.resource.model.ResourceEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 资源信息业务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class ResourceVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.resource.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.resource.model.ResourceEntity;
import java.util.List;
import java.util.Set;
/**
* ResourceService
*
* 资源信息业务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface ResourceService extends ICRUDService<ResourceEntity,Long>{
/**
* 查询所有可用资源
* @return
* @throws AppException
*/
public List<ResourceEntity> findAllEnable() throws AppException;
/**
* 根据用户查询可用资源
* @param userId
* @return
* @throws AppException
*/
public List<ResourceEntity> findListByUserId(Long userId) throws AppException;
/**
* 查询用户可用资源
* @param userId
* @return 字符串,多个以逗号分隔
* @throws AppException
*/
public String findUrlByUserId(Long userId) throws AppException;
/**
* 查询用户用资源集合
* @param userId
* @return
* @throws AppException
*/
public Set<String> findUrlSetByUserId(Long userId) throws AppException;
/**
* 获取所有资源,不分页
* @return
* @param userType
*/
List<ResourceEntity> findAll(int userType);
}
\ No newline at end of file
package com.mortals.xhx.module.resource.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.resource.model.ResourceQuery;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.resource.dao.ResourceDao;
import com.mortals.xhx.module.resource.model.ResourceEntity;
import com.mortals.xhx.module.resource.service.ResourceService;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* ResourceService
* 资源信息业务 service实现
*
* @author zxfei
* @date 2022-05-25
*/
@Service("resourceService")
public class ResourceServiceImpl extends AbstractCRUDServiceImpl<ResourceDao, ResourceEntity, Long> implements ResourceService {
@Override
public List<ResourceEntity> findAllEnable() throws AppException {
ResourceQuery params = new ResourceQuery();
return dao.getList(params);
}
@Override
public List<ResourceEntity> findListByUserId(Long userId) throws AppException {
return dao.getListByUserId(userId);
}
@Override
public String findUrlByUserId(Long userId) throws AppException {
Set<String> urls = this.findUrlSetByUserId(userId);
return StringUtils.converArray2Str(urls.toArray(new String[urls.size()]));
}
@Override
public Set<String> findUrlSetByUserId(Long userId) throws AppException {
Set<String> urls = new HashSet<String>();
List<ResourceEntity> resList = this.findListByUserId(userId);
for (ResourceEntity res : resList) {
String url = res.getUrl();
if (StringUtils.isEmpty(url)) {
continue;
}
url = url.replaceAll(",", ",");
urls.addAll(StringUtils.converStr2Set(url));
}
return urls;
}
@Override
public List<ResourceEntity> findAll(int userType) {
return dao.getAll(userType);
}
}
\ No newline at end of file
package com.mortals.xhx.module.resource.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.common.code.UserType;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.AuthType;
import com.mortals.xhx.common.code.SourceType;
import com.mortals.xhx.module.resource.model.ResourceEntity;
import com.mortals.xhx.module.resource.service.ResourceService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
*
* 资源信息业务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("resource")
public class ResourceController extends BaseCRUDJsonBodyMappingController<ResourceService,ResourceEntity,Long> {
public ResourceController(){
super.setFormClass(ResourceForm.class);
super.setModuleDesc( "资源信息业务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
Map<String, Object> statsus = new HashMap<String, Object>();
statsus.put("authType", AuthType.getEnumMap());
statsus.put("sourceType", SourceType.getEnumMap());
if (getCurUser().isAdmin()) {
statsus.put("userType", IBaseEnum.getEnumMap(UserType.class));
} else {
statsus.put("userType", UserType.findByValue(getCurUser().getUserType()));
}
model.put(KEY_RESULT_DICT, statsus);
}
/**
* 获取所有资源
*
* @return
*/
@PostMapping("allResources")
public String allResources(int userType) {
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "所有的customer以及user");
ret.put(KEY_RESULT_DATA, service.findAll(userType));
return ret.toJSONString();
}
}
\ No newline at end of file
package com.mortals.xhx.module.resource.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.resource.model.ResourceEntity;
import com.mortals.xhx.module.resource.model.ResourceQuery;
/**
* Resource
*
* 资源信息业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class ResourceForm extends BaseCRUDFormLong<ResourceEntity> {
private ResourceEntity entity = new ResourceEntity();
private ResourceQuery query = new ResourceQuery();
public ResourceForm(){
}
@Override
public ResourceEntity getEntity() {
return entity;
}
public void setResource(ResourceEntity entity) {
this.entity = entity;
}
@Override
public ResourceQuery getQuery() {
return query;
}
public void setQuery(ResourceQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
import java.util.List;
/**
* 角色资源权限业务Dao
* 角色资源权限业务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface RoleAuthDao extends ICRUDDao<RoleAuthEntity,Long>{
}
package com.mortals.xhx.module.role.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.role.model.RoleEntity;
import java.util.List;
/**
* 角色信息业务Dao
* 角色信息业务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface RoleDao extends ICRUDDao<RoleEntity,Long>{
}
package com.mortals.xhx.module.role.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import java.util.List;
/**
* 角色用户业务Dao
* 角色用户业务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface RoleUserDao extends ICRUDDao<RoleUserEntity,Long>{
}
package com.mortals.xhx.module.role.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.role.dao.RoleAuthDao;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 角色资源权限业务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("roleAuthDao")
public class RoleAuthDaoImpl extends BaseCRUDDaoMybatis<RoleAuthEntity,Long> implements RoleAuthDao {
}
package com.mortals.xhx.module.role.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.role.dao.RoleDao;
import com.mortals.xhx.module.role.model.RoleEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 角色信息业务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("roleDao")
public class RoleDaoImpl extends BaseCRUDDaoMybatis<RoleEntity,Long> implements RoleDao {
}
package com.mortals.xhx.module.role.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.role.dao.RoleUserDao;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 角色用户业务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("roleUserDao")
public class RoleUserDaoImpl extends BaseCRUDDaoMybatis<RoleUserEntity,Long> implements RoleUserDao {
}
package com.mortals.xhx.module.role.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.role.model.vo.RoleAuthVo;
/**
* 角色资源权限业务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleAuthEntity extends RoleAuthVo {
private static final long serialVersionUID = 1L;
/**
* 角色ID
*/
private Long roleId;
/**
* 资源ID
*/
private Long resourceId;
public RoleAuthEntity(){}
/**
* 获取 角色ID
* @return Long
*/
public Long getRoleId(){
return roleId;
}
/**
* 设置 角色ID
* @param roleId
*/
public void setRoleId(Long roleId){
this.roleId = roleId;
}
/**
* 获取 资源ID
* @return Long
*/
public Long getResourceId(){
return resourceId;
}
/**
* 设置 资源ID
* @param resourceId
*/
public void setResourceId(Long resourceId){
this.resourceId = resourceId;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof RoleAuthEntity) {
RoleAuthEntity tmp = (RoleAuthEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",roleId:").append(getRoleId());
sb.append(",resourceId:").append(getResourceId());
return sb.toString();
}
public void initAttrValue(){
this.roleId = null;
this.resourceId = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.model;
import java.util.List;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
/**
* 角色资源权限业务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleAuthQuery extends RoleAuthEntity {
/** 开始 序号,主键,自增长 */
private Long idStart;
/** 结束 序号,主键,自增长 */
private Long idEnd;
/** 增加 序号,主键,自增长 */
private Long idIncrement;
/** 序号,主键,自增长列表 */
private List <Long> idList;
/** 开始 角色ID */
private Long roleIdStart;
/** 结束 角色ID */
private Long roleIdEnd;
/** 增加 角色ID */
private Long roleIdIncrement;
/** 角色ID列表 */
private List <Long> roleIdList;
/** 开始 资源ID */
private Long resourceIdStart;
/** 结束 资源ID */
private Long resourceIdEnd;
/** 增加 资源ID */
private Long resourceIdIncrement;
/** 资源ID列表 */
private List <Long> resourceIdList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<RoleAuthQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<RoleAuthQuery> andConditionList;
public RoleAuthQuery(){}
/**
* 获取 开始 序号,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 序号,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 序号,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 开始 角色ID
* @return roleIdStart
*/
public Long getRoleIdStart(){
return this.roleIdStart;
}
/**
* 设置 开始 角色ID
* @param roleIdStart
*/
public void setRoleIdStart(Long roleIdStart){
this.roleIdStart = roleIdStart;
}
/**
* 获取 结束 角色ID
* @return $roleIdEnd
*/
public Long getRoleIdEnd(){
return this.roleIdEnd;
}
/**
* 设置 结束 角色ID
* @param roleIdEnd
*/
public void setRoleIdEnd(Long roleIdEnd){
this.roleIdEnd = roleIdEnd;
}
/**
* 获取 增加 角色ID
* @return roleIdIncrement
*/
public Long getRoleIdIncrement(){
return this.roleIdIncrement;
}
/**
* 设置 增加 角色ID
* @param roleIdIncrement
*/
public void setRoleIdIncrement(Long roleIdIncrement){
this.roleIdIncrement = roleIdIncrement;
}
/**
* 获取 角色ID
* @return roleIdList
*/
public List<Long> getRoleIdList(){
return this.roleIdList;
}
/**
* 设置 角色ID
* @param roleIdList
*/
public void setRoleIdList(List<Long> roleIdList){
this.roleIdList = roleIdList;
}
/**
* 获取 开始 资源ID
* @return resourceIdStart
*/
public Long getResourceIdStart(){
return this.resourceIdStart;
}
/**
* 设置 开始 资源ID
* @param resourceIdStart
*/
public void setResourceIdStart(Long resourceIdStart){
this.resourceIdStart = resourceIdStart;
}
/**
* 获取 结束 资源ID
* @return $resourceIdEnd
*/
public Long getResourceIdEnd(){
return this.resourceIdEnd;
}
/**
* 设置 结束 资源ID
* @param resourceIdEnd
*/
public void setResourceIdEnd(Long resourceIdEnd){
this.resourceIdEnd = resourceIdEnd;
}
/**
* 获取 增加 资源ID
* @return resourceIdIncrement
*/
public Long getResourceIdIncrement(){
return this.resourceIdIncrement;
}
/**
* 设置 增加 资源ID
* @param resourceIdIncrement
*/
public void setResourceIdIncrement(Long resourceIdIncrement){
this.resourceIdIncrement = resourceIdIncrement;
}
/**
* 获取 资源ID
* @return resourceIdList
*/
public List<Long> getResourceIdList(){
return this.resourceIdList;
}
/**
* 设置 资源ID
* @param resourceIdList
*/
public void setResourceIdList(List<Long> resourceIdList){
this.resourceIdList = resourceIdList;
}
/**
* 设置 序号,主键,自增长
* @param id
*/
public RoleAuthQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public RoleAuthQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public RoleAuthQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public RoleAuthQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public RoleAuthQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 角色ID
* @param roleId
*/
public RoleAuthQuery roleId(Long roleId){
setRoleId(roleId);
return this;
}
/**
* 设置 开始 角色ID
* @param roleIdStart
*/
public RoleAuthQuery roleIdStart(Long roleIdStart){
this.roleIdStart = roleIdStart;
return this;
}
/**
* 设置 结束 角色ID
* @param roleIdEnd
*/
public RoleAuthQuery roleIdEnd(Long roleIdEnd){
this.roleIdEnd = roleIdEnd;
return this;
}
/**
* 设置 增加 角色ID
* @param roleIdIncrement
*/
public RoleAuthQuery roleIdIncrement(Long roleIdIncrement){
this.roleIdIncrement = roleIdIncrement;
return this;
}
/**
* 设置 角色ID
* @param roleIdList
*/
public RoleAuthQuery roleIdList(List<Long> roleIdList){
this.roleIdList = roleIdList;
return this;
}
/**
* 设置 资源ID
* @param resourceId
*/
public RoleAuthQuery resourceId(Long resourceId){
setResourceId(resourceId);
return this;
}
/**
* 设置 开始 资源ID
* @param resourceIdStart
*/
public RoleAuthQuery resourceIdStart(Long resourceIdStart){
this.resourceIdStart = resourceIdStart;
return this;
}
/**
* 设置 结束 资源ID
* @param resourceIdEnd
*/
public RoleAuthQuery resourceIdEnd(Long resourceIdEnd){
this.resourceIdEnd = resourceIdEnd;
return this;
}
/**
* 设置 增加 资源ID
* @param resourceIdIncrement
*/
public RoleAuthQuery resourceIdIncrement(Long resourceIdIncrement){
this.resourceIdIncrement = resourceIdIncrement;
return this;
}
/**
* 设置 资源ID
* @param resourceIdList
*/
public RoleAuthQuery resourceIdList(List<Long> resourceIdList){
this.resourceIdList = resourceIdList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<RoleAuthQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<RoleAuthQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<RoleAuthQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<RoleAuthQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.role.model.vo.RoleVo;
/**
* 角色信息业务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleEntity extends RoleVo {
private static final long serialVersionUID = 1L;
/**
* 角色名称
*/
private String name;
/**
* 备注
*/
private String remark;
/**
* 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
*/
private Integer roleType;
/**
* 创建用户名称
*/
private String createUserName;
public RoleEntity(){}
/**
* 获取 角色名称
* @return String
*/
public String getName(){
return name;
}
/**
* 设置 角色名称
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 备注
* @return String
*/
public String getRemark(){
return remark;
}
/**
* 设置 备注
* @param remark
*/
public void setRemark(String remark){
this.remark = remark;
}
/**
* 获取 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @return Integer
*/
public Integer getRoleType(){
return roleType;
}
/**
* 设置 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleType
*/
public void setRoleType(Integer roleType){
this.roleType = roleType;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof RoleEntity) {
RoleEntity tmp = (RoleEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",name:").append(getName());
sb.append(",remark:").append(getRemark());
sb.append(",roleType:").append(getRoleType());
sb.append(",createUserName:").append(getCreateUserName());
return sb.toString();
}
public void initAttrValue(){
this.name = "";
this.remark = "";
this.roleType = 2;
this.createUserName = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.model;
import java.util.List;
import com.mortals.xhx.module.role.model.RoleEntity;
/**
* 角色信息业务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleQuery extends RoleEntity {
/** 开始 序号,主键,自增长 */
private Long idStart;
/** 结束 序号,主键,自增长 */
private Long idEnd;
/** 增加 序号,主键,自增长 */
private Long idIncrement;
/** 序号,主键,自增长列表 */
private List <Long> idList;
/** 角色名称 */
private List<String> nameList;
/** 备注 */
private List<String> remarkList;
/** 开始 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2 */
private Integer roleTypeStart;
/** 结束 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2 */
private Integer roleTypeEnd;
/** 增加 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2 */
private Integer roleTypeIncrement;
/** 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2列表 */
private List <Integer> roleTypeList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户列表 */
private List <Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<RoleQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<RoleQuery> andConditionList;
public RoleQuery(){}
/**
* 获取 开始 序号,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 序号,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 序号,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 角色名称
* @return nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 角色名称
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 备注
* @return remarkList
*/
public List<String> getRemarkList(){
return this.remarkList;
}
/**
* 设置 备注
* @param remarkList
*/
public void setRemarkList(List<String> remarkList){
this.remarkList = remarkList;
}
/**
* 获取 开始 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @return roleTypeStart
*/
public Integer getRoleTypeStart(){
return this.roleTypeStart;
}
/**
* 设置 开始 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleTypeStart
*/
public void setRoleTypeStart(Integer roleTypeStart){
this.roleTypeStart = roleTypeStart;
}
/**
* 获取 结束 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @return $roleTypeEnd
*/
public Integer getRoleTypeEnd(){
return this.roleTypeEnd;
}
/**
* 设置 结束 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleTypeEnd
*/
public void setRoleTypeEnd(Integer roleTypeEnd){
this.roleTypeEnd = roleTypeEnd;
}
/**
* 获取 增加 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @return roleTypeIncrement
*/
public Integer getRoleTypeIncrement(){
return this.roleTypeIncrement;
}
/**
* 设置 增加 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleTypeIncrement
*/
public void setRoleTypeIncrement(Integer roleTypeIncrement){
this.roleTypeIncrement = roleTypeIncrement;
}
/**
* 获取 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @return roleTypeList
*/
public List<Integer> getRoleTypeList(){
return this.roleTypeList;
}
/**
* 设置 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleTypeList
*/
public void setRoleTypeList(List<Integer> roleTypeList){
this.roleTypeList = roleTypeList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 设置 序号,主键,自增长
* @param id
*/
public RoleQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public RoleQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public RoleQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public RoleQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public RoleQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 角色名称
* @param name
*/
public RoleQuery name(String name){
setName(name);
return this;
}
/**
* 设置 角色名称
* @param nameList
*/
public RoleQuery nameList(List<String> nameList){
this.nameList = nameList;
return this;
}
/**
* 设置 备注
* @param remark
*/
public RoleQuery remark(String remark){
setRemark(remark);
return this;
}
/**
* 设置 备注
* @param remarkList
*/
public RoleQuery remarkList(List<String> remarkList){
this.remarkList = remarkList;
return this;
}
/**
* 设置 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleType
*/
public RoleQuery roleType(Integer roleType){
setRoleType(roleType);
return this;
}
/**
* 设置 开始 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleTypeStart
*/
public RoleQuery roleTypeStart(Integer roleTypeStart){
this.roleTypeStart = roleTypeStart;
return this;
}
/**
* 设置 结束 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleTypeEnd
*/
public RoleQuery roleTypeEnd(Integer roleTypeEnd){
this.roleTypeEnd = roleTypeEnd;
return this;
}
/**
* 设置 增加 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleTypeIncrement
*/
public RoleQuery roleTypeIncrement(Integer roleTypeIncrement){
this.roleTypeIncrement = roleTypeIncrement;
return this;
}
/**
* 设置 角色类型,0:系统内置角色(不可删除),1:默认系统角色,2:普通角色,默认2
* @param roleTypeList
*/
public RoleQuery roleTypeList(List<Integer> roleTypeList){
this.roleTypeList = roleTypeList;
return this;
}
/**
* 设置 创建用户
* @param createUserId
*/
public RoleQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public RoleQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public RoleQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public RoleQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public RoleQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public RoleQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public RoleQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<RoleQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<RoleQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<RoleQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<RoleQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.role.model.vo.RoleUserVo;
/**
* 角色用户业务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleUserEntity extends RoleUserVo {
private static final long serialVersionUID = 1L;
/**
* 角色ID
*/
private Long roleId;
/**
* 用户ID
*/
private Long userId;
public RoleUserEntity(){}
/**
* 获取 角色ID
* @return Long
*/
public Long getRoleId(){
return roleId;
}
/**
* 设置 角色ID
* @param roleId
*/
public void setRoleId(Long roleId){
this.roleId = roleId;
}
/**
* 获取 用户ID
* @return Long
*/
public Long getUserId(){
return userId;
}
/**
* 设置 用户ID
* @param userId
*/
public void setUserId(Long userId){
this.userId = userId;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof RoleUserEntity) {
RoleUserEntity tmp = (RoleUserEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",roleId:").append(getRoleId());
sb.append(",userId:").append(getUserId());
return sb.toString();
}
public void initAttrValue(){
this.roleId = null;
this.userId = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.model;
import java.util.List;
import com.mortals.xhx.module.role.model.RoleUserEntity;
/**
* 角色用户业务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleUserQuery extends RoleUserEntity {
/** 开始 序号,主键,自增长 */
private Long idStart;
/** 结束 序号,主键,自增长 */
private Long idEnd;
/** 增加 序号,主键,自增长 */
private Long idIncrement;
/** 序号,主键,自增长列表 */
private List <Long> idList;
/** 开始 角色ID */
private Long roleIdStart;
/** 结束 角色ID */
private Long roleIdEnd;
/** 增加 角色ID */
private Long roleIdIncrement;
/** 角色ID列表 */
private List <Long> roleIdList;
/** 开始 用户ID */
private Long userIdStart;
/** 结束 用户ID */
private Long userIdEnd;
/** 增加 用户ID */
private Long userIdIncrement;
/** 用户ID列表 */
private List <Long> userIdList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<RoleUserQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<RoleUserQuery> andConditionList;
public RoleUserQuery(){}
/**
* 获取 开始 序号,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 序号,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 序号,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 开始 角色ID
* @return roleIdStart
*/
public Long getRoleIdStart(){
return this.roleIdStart;
}
/**
* 设置 开始 角色ID
* @param roleIdStart
*/
public void setRoleIdStart(Long roleIdStart){
this.roleIdStart = roleIdStart;
}
/**
* 获取 结束 角色ID
* @return $roleIdEnd
*/
public Long getRoleIdEnd(){
return this.roleIdEnd;
}
/**
* 设置 结束 角色ID
* @param roleIdEnd
*/
public void setRoleIdEnd(Long roleIdEnd){
this.roleIdEnd = roleIdEnd;
}
/**
* 获取 增加 角色ID
* @return roleIdIncrement
*/
public Long getRoleIdIncrement(){
return this.roleIdIncrement;
}
/**
* 设置 增加 角色ID
* @param roleIdIncrement
*/
public void setRoleIdIncrement(Long roleIdIncrement){
this.roleIdIncrement = roleIdIncrement;
}
/**
* 获取 角色ID
* @return roleIdList
*/
public List<Long> getRoleIdList(){
return this.roleIdList;
}
/**
* 设置 角色ID
* @param roleIdList
*/
public void setRoleIdList(List<Long> roleIdList){
this.roleIdList = roleIdList;
}
/**
* 获取 开始 用户ID
* @return userIdStart
*/
public Long getUserIdStart(){
return this.userIdStart;
}
/**
* 设置 开始 用户ID
* @param userIdStart
*/
public void setUserIdStart(Long userIdStart){
this.userIdStart = userIdStart;
}
/**
* 获取 结束 用户ID
* @return $userIdEnd
*/
public Long getUserIdEnd(){
return this.userIdEnd;
}
/**
* 设置 结束 用户ID
* @param userIdEnd
*/
public void setUserIdEnd(Long userIdEnd){
this.userIdEnd = userIdEnd;
}
/**
* 获取 增加 用户ID
* @return userIdIncrement
*/
public Long getUserIdIncrement(){
return this.userIdIncrement;
}
/**
* 设置 增加 用户ID
* @param userIdIncrement
*/
public void setUserIdIncrement(Long userIdIncrement){
this.userIdIncrement = userIdIncrement;
}
/**
* 获取 用户ID
* @return userIdList
*/
public List<Long> getUserIdList(){
return this.userIdList;
}
/**
* 设置 用户ID
* @param userIdList
*/
public void setUserIdList(List<Long> userIdList){
this.userIdList = userIdList;
}
/**
* 设置 序号,主键,自增长
* @param id
*/
public RoleUserQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public RoleUserQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public RoleUserQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public RoleUserQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public RoleUserQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 角色ID
* @param roleId
*/
public RoleUserQuery roleId(Long roleId){
setRoleId(roleId);
return this;
}
/**
* 设置 开始 角色ID
* @param roleIdStart
*/
public RoleUserQuery roleIdStart(Long roleIdStart){
this.roleIdStart = roleIdStart;
return this;
}
/**
* 设置 结束 角色ID
* @param roleIdEnd
*/
public RoleUserQuery roleIdEnd(Long roleIdEnd){
this.roleIdEnd = roleIdEnd;
return this;
}
/**
* 设置 增加 角色ID
* @param roleIdIncrement
*/
public RoleUserQuery roleIdIncrement(Long roleIdIncrement){
this.roleIdIncrement = roleIdIncrement;
return this;
}
/**
* 设置 角色ID
* @param roleIdList
*/
public RoleUserQuery roleIdList(List<Long> roleIdList){
this.roleIdList = roleIdList;
return this;
}
/**
* 设置 用户ID
* @param userId
*/
public RoleUserQuery userId(Long userId){
setUserId(userId);
return this;
}
/**
* 设置 开始 用户ID
* @param userIdStart
*/
public RoleUserQuery userIdStart(Long userIdStart){
this.userIdStart = userIdStart;
return this;
}
/**
* 设置 结束 用户ID
* @param userIdEnd
*/
public RoleUserQuery userIdEnd(Long userIdEnd){
this.userIdEnd = userIdEnd;
return this;
}
/**
* 设置 增加 用户ID
* @param userIdIncrement
*/
public RoleUserQuery userIdIncrement(Long userIdIncrement){
this.userIdIncrement = userIdIncrement;
return this;
}
/**
* 设置 用户ID
* @param userIdList
*/
public RoleUserQuery userIdList(List<Long> userIdList){
this.userIdList = userIdList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<RoleUserQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<RoleUserQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<RoleUserQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<RoleUserQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 角色资源权限业务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class RoleAuthVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.role.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 角色用户业务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class RoleUserVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.role.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.role.model.RoleEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 角色信息业务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class RoleVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.role.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
import com.mortals.xhx.module.role.model.RoleAuthQuery;
/**
* RoleAuthService
* <p>
* 角色资源权限业务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface RoleAuthService extends ICRUDService<RoleAuthEntity, Long> {
/**
* 角色分配资源
*/
void doDistributionSource(RoleAuthQuery query);
}
\ No newline at end of file
package com.mortals.xhx.module.role.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.role.model.RoleEntity;
/**
* RoleService
*
* 角色信息业务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface RoleService extends ICRUDService<RoleEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.role.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import com.mortals.xhx.module.role.model.RoleUserQuery;
/**
* RoleUserService
*
* 角色用户业务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface RoleUserService extends ICRUDService<RoleUserEntity,Long>{
void doDistributionUser(RoleUserQuery query);
void doDistributionRole(RoleUserQuery query);
}
\ No newline at end of file
package com.mortals.xhx.module.role.service.impl;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.role.dao.RoleAuthDao;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
import com.mortals.xhx.module.role.model.RoleAuthQuery;
import com.mortals.xhx.module.role.service.RoleAuthService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("roleAuthService")
public class RoleAuthServiceImpl extends AbstractCRUDServiceImpl<RoleAuthDao, RoleAuthEntity, Long> implements RoleAuthService {
@Override
public void doDistributionSource(RoleAuthQuery query) {
// 删除角色资源老数据
Long roleId = query.getRoleId();
Map<String, Object> condition = new HashMap<>();
condition.put("roleId", roleId);
this.dao.delete(condition);
List<RoleAuthEntity> list = new ArrayList<>();
for (Long sourceId : query.getResourceIdList()) {
RoleAuthEntity entity = new RoleAuthEntity();
entity.setRoleId(roleId);
entity.setResourceId(sourceId);
list.add(entity);
}
this.dao.insertBatch(list);
}
}
\ No newline at end of file
/**
* 文件:RoleServiceImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.module.role.service.impl;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.role.dao.RoleDao;
import com.mortals.xhx.module.role.model.RoleEntity;
import com.mortals.xhx.module.role.service.RoleService;
import org.springframework.stereotype.Service;
/**
* <p>Title: 角色信息</p>
* <p>Description: RoleServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Service("roleService")
public class RoleServiceImpl extends AbstractCRUDServiceImpl<RoleDao, RoleEntity, Long> implements RoleService {
}
\ No newline at end of file
package com.mortals.xhx.module.role.service.impl;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.role.dao.RoleUserDao;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import com.mortals.xhx.module.role.model.RoleUserQuery;
import com.mortals.xhx.module.role.service.RoleUserService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>Title: 角色用户</p>
* <p>Description: RoleUserServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Service("roleUserService")
public class RoleUserServiceImpl extends AbstractCRUDServiceImpl<RoleUserDao, RoleUserEntity,Long> implements RoleUserService {
@Override
public void doDistributionUser(RoleUserQuery query) {
Long roleId = query.getRoleId();
// 删除角色对应的用户信息
Map<String, Object> condition = new HashMap<>(1);
condition.put("roleId", roleId);
dao.delete(condition);
List<Long> userIdList = query.getUserIdList();
List<RoleUserEntity> list = new ArrayList<>();
for (Long userId : userIdList) {
RoleUserEntity rolseUser = new RoleUserEntity();
rolseUser.setRoleId(roleId);
rolseUser.setUserId(userId);
list.add(rolseUser);
}
this.dao.insertBatch(list);
}
@Override
public void doDistributionRole(RoleUserQuery query) {
// 删除角色对应的用户信息
Long userId = query.getUserId();
Map<String, Object> condition = new HashMap<>(1);
condition.put("userId", userId);
dao.delete(condition);
List<Long> roleIdList = query.getRoleIdList();
List<RoleUserEntity> list = new ArrayList<>();
for (Long roleId : roleIdList) {
RoleUserEntity rolseUser = new RoleUserEntity();
rolseUser.setRoleId(roleId);
rolseUser.setUserId(userId);
list.add(rolseUser);
}
this.dao.insertBatch(list);
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.param.service.ParamService;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
import com.mortals.xhx.module.role.model.RoleAuthQuery;
import com.mortals.xhx.module.role.service.RoleAuthService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
*
* 角色资源权限业务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("role/auth")
public class RoleAuthController extends BaseCRUDJsonBodyMappingController<RoleAuthService,RoleAuthEntity,Long> {
@Autowired
private ParamService paramService;
public RoleAuthController(){
super.setFormClass(RoleAuthForm.class);
super.setModuleDesc( "角色资源权限业务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
/**
* 分配资源
*/
@PostMapping(value = "distributionSource")
public String distributionUser(@RequestBody RoleAuthQuery query) {
try {
service.doDistributionSource(query);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
return ret.toJSONString();
} catch (Exception e) {
log.error("分配角色资源错误", e);
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.role.model.RoleAuthEntity;
import com.mortals.xhx.module.role.model.RoleAuthQuery;
/**
* RoleAuth
*
* 角色资源权限业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleAuthForm extends BaseCRUDFormLong<RoleAuthEntity> {
private RoleAuthEntity entity = new RoleAuthEntity();
private RoleAuthQuery query = new RoleAuthQuery();
public RoleAuthForm(){
}
@Override
public RoleAuthEntity getEntity() {
return entity;
}
public void setRoleAuth(RoleAuthEntity entity) {
this.entity = entity;
}
@Override
public RoleAuthQuery getQuery() {
return query;
}
public void setQuery(RoleAuthQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.role.model.RoleEntity;
import com.mortals.xhx.module.role.model.RoleQuery;
import com.mortals.xhx.module.role.service.RoleService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
* 角色信息业务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("role")
public class RoleController extends BaseCRUDJsonBodyMappingController<RoleService, RoleEntity, Long> {
@Autowired
private ParamService paramService;
public RoleController() {
super.setFormClass(RoleForm.class);
super.setModuleDesc("角色信息业务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "roleType", paramService.getParamBySecondOrganize("Role", "roleType"));
super.init(model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.role.model.RoleEntity;
import com.mortals.xhx.module.role.model.RoleQuery;
/**
* Role
*
* 角色信息业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleForm extends BaseCRUDFormLong<RoleEntity> {
private RoleEntity entity = new RoleEntity();
private RoleQuery query = new RoleQuery();
public RoleForm(){
}
@Override
public RoleEntity getEntity() {
return entity;
}
public void setRole(RoleEntity entity) {
this.entity = entity;
}
@Override
public RoleQuery getQuery() {
return query;
}
public void setQuery(RoleQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import com.mortals.xhx.module.role.model.RoleUserQuery;
import com.mortals.xhx.module.role.service.RoleUserService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
* 角色用户业务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("role/user")
public class RoleUserController extends BaseCRUDJsonBodyMappingController<RoleUserService, RoleUserEntity, Long> {
@Autowired
private ParamService paramService;
public RoleUserController() {
super.setFormClass(RoleUserForm.class);
super.setModuleDesc("角色用户业务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.role.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.role.model.RoleUserEntity;
import com.mortals.xhx.module.role.model.RoleUserQuery;
/**
* RoleUser
*
* 角色用户业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class RoleUserForm extends BaseCRUDFormLong<RoleUserEntity> {
private RoleUserEntity entity = new RoleUserEntity();
private RoleUserQuery query = new RoleUserQuery();
public RoleUserForm(){
}
@Override
public RoleUserEntity getEntity() {
return entity;
}
public void setRoleUser(RoleUserEntity entity) {
this.entity = entity;
}
@Override
public RoleUserQuery getQuery() {
return query;
}
public void setQuery(RoleUserQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.system.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.system.model.SystemServiceApiEntity;
import java.util.List;
/**
* API服务Dao
* API服务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface SystemServiceApiDao extends ICRUDDao<SystemServiceApiEntity,Long>{
}
package com.mortals.xhx.module.system.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.system.model.SystemServiceEntity;
import java.util.List;
/**
* API服务Dao
* API服务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface SystemServiceDao extends ICRUDDao<SystemServiceEntity,Long>{
}
package com.mortals.xhx.module.system.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.system.dao.SystemServiceApiDao;
import com.mortals.xhx.module.system.model.SystemServiceApiEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* API服务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("systemServiceApiDao")
public class SystemServiceApiDaoImpl extends BaseCRUDDaoMybatis<SystemServiceApiEntity,Long> implements SystemServiceApiDao {
}
package com.mortals.xhx.module.system.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.system.dao.SystemServiceDao;
import com.mortals.xhx.module.system.model.SystemServiceEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* API服务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("systemServiceDao")
public class SystemServiceDaoImpl extends BaseCRUDDaoMybatis<SystemServiceEntity,Long> implements SystemServiceDao {
}
package com.mortals.xhx.module.system.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.system.model.vo.SystemServiceApiVo;
/**
* API服务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class SystemServiceApiEntity extends SystemServiceApiVo {
private static final long serialVersionUID = 1L;
/**
* 模块名称
*/
private String systemServiceName;
/**
* 模块编码
*/
private String systemServiceCode;
/**
* 模块地址
*/
private String systemServiceUrl;
/**
* API接口名称
*/
private String apiName;
/**
* API接口(链接)
*/
private String apiUrl;
/**
* API接口版本
*/
private String apiVersion;
/**
* API接口状态,1:启用,0:停用
*/
private Integer apiStatus;
/**
* 失效时间
*/
private Date lapseTime;
/**
* API接口说明
*/
private String apiRemark;
public SystemServiceApiEntity(){}
/**
* 获取 模块名称
* @return String
*/
public String getSystemServiceName(){
return systemServiceName;
}
/**
* 设置 模块名称
* @param systemServiceName
*/
public void setSystemServiceName(String systemServiceName){
this.systemServiceName = systemServiceName;
}
/**
* 获取 模块编码
* @return String
*/
public String getSystemServiceCode(){
return systemServiceCode;
}
/**
* 设置 模块编码
* @param systemServiceCode
*/
public void setSystemServiceCode(String systemServiceCode){
this.systemServiceCode = systemServiceCode;
}
/**
* 获取 模块地址
* @return String
*/
public String getSystemServiceUrl(){
return systemServiceUrl;
}
/**
* 设置 模块地址
* @param systemServiceUrl
*/
public void setSystemServiceUrl(String systemServiceUrl){
this.systemServiceUrl = systemServiceUrl;
}
/**
* 获取 API接口名称
* @return String
*/
public String getApiName(){
return apiName;
}
/**
* 设置 API接口名称
* @param apiName
*/
public void setApiName(String apiName){
this.apiName = apiName;
}
/**
* 获取 API接口(链接)
* @return String
*/
public String getApiUrl(){
return apiUrl;
}
/**
* 设置 API接口(链接)
* @param apiUrl
*/
public void setApiUrl(String apiUrl){
this.apiUrl = apiUrl;
}
/**
* 获取 API接口版本
* @return String
*/
public String getApiVersion(){
return apiVersion;
}
/**
* 设置 API接口版本
* @param apiVersion
*/
public void setApiVersion(String apiVersion){
this.apiVersion = apiVersion;
}
/**
* 获取 API接口状态,1:启用,0:停用
* @return Integer
*/
public Integer getApiStatus(){
return apiStatus;
}
/**
* 设置 API接口状态,1:启用,0:停用
* @param apiStatus
*/
public void setApiStatus(Integer apiStatus){
this.apiStatus = apiStatus;
}
/**
* 获取 失效时间
* @return Date
*/
public Date getLapseTime(){
return lapseTime;
}
/**
* 设置 失效时间
* @param lapseTime
*/
public void setLapseTime(Date lapseTime){
this.lapseTime = lapseTime;
}
/**
* 获取 API接口说明
* @return String
*/
public String getApiRemark(){
return apiRemark;
}
/**
* 设置 API接口说明
* @param apiRemark
*/
public void setApiRemark(String apiRemark){
this.apiRemark = apiRemark;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof SystemServiceApiEntity) {
SystemServiceApiEntity tmp = (SystemServiceApiEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",systemServiceName:").append(getSystemServiceName());
sb.append(",systemServiceCode:").append(getSystemServiceCode());
sb.append(",systemServiceUrl:").append(getSystemServiceUrl());
sb.append(",apiName:").append(getApiName());
sb.append(",apiUrl:").append(getApiUrl());
sb.append(",apiVersion:").append(getApiVersion());
sb.append(",apiStatus:").append(getApiStatus());
sb.append(",lapseTime:").append(getLapseTime());
sb.append(",apiRemark:").append(getApiRemark());
return sb.toString();
}
public void initAttrValue(){
this.systemServiceName = "";
this.systemServiceCode = "";
this.systemServiceUrl = "";
this.apiName = "";
this.apiUrl = "0";
this.apiVersion = "";
this.apiStatus = 1;
this.lapseTime = null;
this.apiRemark = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.system.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.system.model.SystemServiceApiEntity;
/**
* API服务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class SystemServiceApiQuery extends SystemServiceApiEntity {
/** 开始 系统API的ID,主键,自增长 */
private Long idStart;
/** 结束 系统API的ID,主键,自增长 */
private Long idEnd;
/** 增加 系统API的ID,主键,自增长 */
private Long idIncrement;
/** 系统API的ID,主键,自增长列表 */
private List <Long> idList;
/** 模块名称 */
private List<String> systemServiceNameList;
/** 模块编码 */
private List<String> systemServiceCodeList;
/** 模块地址 */
private List<String> systemServiceUrlList;
/** API接口名称 */
private List<String> apiNameList;
/** API接口(链接) */
private List<String> apiUrlList;
/** API接口版本 */
private List<String> apiVersionList;
/** 开始 API接口状态,1:启用,0:停用 */
private Integer apiStatusStart;
/** 结束 API接口状态,1:启用,0:停用 */
private Integer apiStatusEnd;
/** 增加 API接口状态,1:启用,0:停用 */
private Integer apiStatusIncrement;
/** API接口状态,1:启用,0:停用列表 */
private List <Integer> apiStatusList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 失效时间 */
private String lapseTimeStart;
/** 结束 失效时间 */
private String lapseTimeEnd;
/** API接口说明 */
private List<String> apiRemarkList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<SystemServiceApiQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<SystemServiceApiQuery> andConditionList;
public SystemServiceApiQuery(){}
/**
* 获取 开始 系统API的ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 系统API的ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 系统API的ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 系统API的ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 系统API的ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 系统API的ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 系统API的ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 系统API的ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 模块名称
* @return systemServiceNameList
*/
public List<String> getSystemServiceNameList(){
return this.systemServiceNameList;
}
/**
* 设置 模块名称
* @param systemServiceNameList
*/
public void setSystemServiceNameList(List<String> systemServiceNameList){
this.systemServiceNameList = systemServiceNameList;
}
/**
* 获取 模块编码
* @return systemServiceCodeList
*/
public List<String> getSystemServiceCodeList(){
return this.systemServiceCodeList;
}
/**
* 设置 模块编码
* @param systemServiceCodeList
*/
public void setSystemServiceCodeList(List<String> systemServiceCodeList){
this.systemServiceCodeList = systemServiceCodeList;
}
/**
* 获取 模块地址
* @return systemServiceUrlList
*/
public List<String> getSystemServiceUrlList(){
return this.systemServiceUrlList;
}
/**
* 设置 模块地址
* @param systemServiceUrlList
*/
public void setSystemServiceUrlList(List<String> systemServiceUrlList){
this.systemServiceUrlList = systemServiceUrlList;
}
/**
* 获取 API接口名称
* @return apiNameList
*/
public List<String> getApiNameList(){
return this.apiNameList;
}
/**
* 设置 API接口名称
* @param apiNameList
*/
public void setApiNameList(List<String> apiNameList){
this.apiNameList = apiNameList;
}
/**
* 获取 API接口(链接)
* @return apiUrlList
*/
public List<String> getApiUrlList(){
return this.apiUrlList;
}
/**
* 设置 API接口(链接)
* @param apiUrlList
*/
public void setApiUrlList(List<String> apiUrlList){
this.apiUrlList = apiUrlList;
}
/**
* 获取 API接口版本
* @return apiVersionList
*/
public List<String> getApiVersionList(){
return this.apiVersionList;
}
/**
* 设置 API接口版本
* @param apiVersionList
*/
public void setApiVersionList(List<String> apiVersionList){
this.apiVersionList = apiVersionList;
}
/**
* 获取 开始 API接口状态,1:启用,0:停用
* @return apiStatusStart
*/
public Integer getApiStatusStart(){
return this.apiStatusStart;
}
/**
* 设置 开始 API接口状态,1:启用,0:停用
* @param apiStatusStart
*/
public void setApiStatusStart(Integer apiStatusStart){
this.apiStatusStart = apiStatusStart;
}
/**
* 获取 结束 API接口状态,1:启用,0:停用
* @return $apiStatusEnd
*/
public Integer getApiStatusEnd(){
return this.apiStatusEnd;
}
/**
* 设置 结束 API接口状态,1:启用,0:停用
* @param apiStatusEnd
*/
public void setApiStatusEnd(Integer apiStatusEnd){
this.apiStatusEnd = apiStatusEnd;
}
/**
* 获取 增加 API接口状态,1:启用,0:停用
* @return apiStatusIncrement
*/
public Integer getApiStatusIncrement(){
return this.apiStatusIncrement;
}
/**
* 设置 增加 API接口状态,1:启用,0:停用
* @param apiStatusIncrement
*/
public void setApiStatusIncrement(Integer apiStatusIncrement){
this.apiStatusIncrement = apiStatusIncrement;
}
/**
* 获取 API接口状态,1:启用,0:停用
* @return apiStatusList
*/
public List<Integer> getApiStatusList(){
return this.apiStatusList;
}
/**
* 设置 API接口状态,1:启用,0:停用
* @param apiStatusList
*/
public void setApiStatusList(List<Integer> apiStatusList){
this.apiStatusList = apiStatusList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 失效时间
* @return lapseTimeStart
*/
public String getLapseTimeStart(){
return this.lapseTimeStart;
}
/**
* 设置 开始 失效时间
* @param lapseTimeStart
*/
public void setLapseTimeStart(String lapseTimeStart){
this.lapseTimeStart = lapseTimeStart;
}
/**
* 获取 结束 失效时间
* @return lapseTimeEnd
*/
public String getLapseTimeEnd(){
return this.lapseTimeEnd;
}
/**
* 设置 结束 失效时间
* @param lapseTimeEnd
*/
public void setLapseTimeEnd(String lapseTimeEnd){
this.lapseTimeEnd = lapseTimeEnd;
}
/**
* 获取 API接口说明
* @return apiRemarkList
*/
public List<String> getApiRemarkList(){
return this.apiRemarkList;
}
/**
* 设置 API接口说明
* @param apiRemarkList
*/
public void setApiRemarkList(List<String> apiRemarkList){
this.apiRemarkList = apiRemarkList;
}
/**
* 设置 系统API的ID,主键,自增长
* @param id
*/
public SystemServiceApiQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 系统API的ID,主键,自增长
* @param idStart
*/
public SystemServiceApiQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 系统API的ID,主键,自增长
* @param idEnd
*/
public SystemServiceApiQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 系统API的ID,主键,自增长
* @param idIncrement
*/
public SystemServiceApiQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 系统API的ID,主键,自增长
* @param idList
*/
public SystemServiceApiQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 模块名称
* @param systemServiceName
*/
public SystemServiceApiQuery systemServiceName(String systemServiceName){
setSystemServiceName(systemServiceName);
return this;
}
/**
* 设置 模块名称
* @param systemServiceNameList
*/
public SystemServiceApiQuery systemServiceNameList(List<String> systemServiceNameList){
this.systemServiceNameList = systemServiceNameList;
return this;
}
/**
* 设置 模块编码
* @param systemServiceCode
*/
public SystemServiceApiQuery systemServiceCode(String systemServiceCode){
setSystemServiceCode(systemServiceCode);
return this;
}
/**
* 设置 模块编码
* @param systemServiceCodeList
*/
public SystemServiceApiQuery systemServiceCodeList(List<String> systemServiceCodeList){
this.systemServiceCodeList = systemServiceCodeList;
return this;
}
/**
* 设置 模块地址
* @param systemServiceUrl
*/
public SystemServiceApiQuery systemServiceUrl(String systemServiceUrl){
setSystemServiceUrl(systemServiceUrl);
return this;
}
/**
* 设置 模块地址
* @param systemServiceUrlList
*/
public SystemServiceApiQuery systemServiceUrlList(List<String> systemServiceUrlList){
this.systemServiceUrlList = systemServiceUrlList;
return this;
}
/**
* 设置 API接口名称
* @param apiName
*/
public SystemServiceApiQuery apiName(String apiName){
setApiName(apiName);
return this;
}
/**
* 设置 API接口名称
* @param apiNameList
*/
public SystemServiceApiQuery apiNameList(List<String> apiNameList){
this.apiNameList = apiNameList;
return this;
}
/**
* 设置 API接口(链接)
* @param apiUrl
*/
public SystemServiceApiQuery apiUrl(String apiUrl){
setApiUrl(apiUrl);
return this;
}
/**
* 设置 API接口(链接)
* @param apiUrlList
*/
public SystemServiceApiQuery apiUrlList(List<String> apiUrlList){
this.apiUrlList = apiUrlList;
return this;
}
/**
* 设置 API接口版本
* @param apiVersion
*/
public SystemServiceApiQuery apiVersion(String apiVersion){
setApiVersion(apiVersion);
return this;
}
/**
* 设置 API接口版本
* @param apiVersionList
*/
public SystemServiceApiQuery apiVersionList(List<String> apiVersionList){
this.apiVersionList = apiVersionList;
return this;
}
/**
* 设置 API接口状态,1:启用,0:停用
* @param apiStatus
*/
public SystemServiceApiQuery apiStatus(Integer apiStatus){
setApiStatus(apiStatus);
return this;
}
/**
* 设置 开始 API接口状态,1:启用,0:停用
* @param apiStatusStart
*/
public SystemServiceApiQuery apiStatusStart(Integer apiStatusStart){
this.apiStatusStart = apiStatusStart;
return this;
}
/**
* 设置 结束 API接口状态,1:启用,0:停用
* @param apiStatusEnd
*/
public SystemServiceApiQuery apiStatusEnd(Integer apiStatusEnd){
this.apiStatusEnd = apiStatusEnd;
return this;
}
/**
* 设置 增加 API接口状态,1:启用,0:停用
* @param apiStatusIncrement
*/
public SystemServiceApiQuery apiStatusIncrement(Integer apiStatusIncrement){
this.apiStatusIncrement = apiStatusIncrement;
return this;
}
/**
* 设置 API接口状态,1:启用,0:停用
* @param apiStatusList
*/
public SystemServiceApiQuery apiStatusList(List<Integer> apiStatusList){
this.apiStatusList = apiStatusList;
return this;
}
/**
* 设置 API接口说明
* @param apiRemark
*/
public SystemServiceApiQuery apiRemark(String apiRemark){
setApiRemark(apiRemark);
return this;
}
/**
* 设置 API接口说明
* @param apiRemarkList
*/
public SystemServiceApiQuery apiRemarkList(List<String> apiRemarkList){
this.apiRemarkList = apiRemarkList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<SystemServiceApiQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<SystemServiceApiQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<SystemServiceApiQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<SystemServiceApiQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.system.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.system.model.vo.SystemServiceVo;
/**
* API服务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class SystemServiceEntity extends SystemServiceVo {
private static final long serialVersionUID = 1L;
/**
* 模块名称
*/
private String systemServiceName;
/**
* 模块编码
*/
private String systemServiceCode;
/**
* 模块地址
*/
private String systemServiceUrl;
/**
* 包名称
*/
private String packageName;
/**
* 包的下载路径
*/
private String packagePath;
/**
* 包的版本
*/
private String packageVersion;
/**
* 包的状态,1:启用,0:停用
*/
private Integer apiStatus;
/**
* 失效时间
*/
private Date lapseTime;
/**
* 包的说明
*/
private String packageRemark;
public SystemServiceEntity(){}
/**
* 获取 模块名称
* @return String
*/
public String getSystemServiceName(){
return systemServiceName;
}
/**
* 设置 模块名称
* @param systemServiceName
*/
public void setSystemServiceName(String systemServiceName){
this.systemServiceName = systemServiceName;
}
/**
* 获取 模块编码
* @return String
*/
public String getSystemServiceCode(){
return systemServiceCode;
}
/**
* 设置 模块编码
* @param systemServiceCode
*/
public void setSystemServiceCode(String systemServiceCode){
this.systemServiceCode = systemServiceCode;
}
/**
* 获取 模块地址
* @return String
*/
public String getSystemServiceUrl(){
return systemServiceUrl;
}
/**
* 设置 模块地址
* @param systemServiceUrl
*/
public void setSystemServiceUrl(String systemServiceUrl){
this.systemServiceUrl = systemServiceUrl;
}
/**
* 获取 包名称
* @return String
*/
public String getPackageName(){
return packageName;
}
/**
* 设置 包名称
* @param packageName
*/
public void setPackageName(String packageName){
this.packageName = packageName;
}
/**
* 获取 包的下载路径
* @return String
*/
public String getPackagePath(){
return packagePath;
}
/**
* 设置 包的下载路径
* @param packagePath
*/
public void setPackagePath(String packagePath){
this.packagePath = packagePath;
}
/**
* 获取 包的版本
* @return String
*/
public String getPackageVersion(){
return packageVersion;
}
/**
* 设置 包的版本
* @param packageVersion
*/
public void setPackageVersion(String packageVersion){
this.packageVersion = packageVersion;
}
/**
* 获取 包的状态,1:启用,0:停用
* @return Integer
*/
public Integer getApiStatus(){
return apiStatus;
}
/**
* 设置 包的状态,1:启用,0:停用
* @param apiStatus
*/
public void setApiStatus(Integer apiStatus){
this.apiStatus = apiStatus;
}
/**
* 获取 失效时间
* @return Date
*/
public Date getLapseTime(){
return lapseTime;
}
/**
* 设置 失效时间
* @param lapseTime
*/
public void setLapseTime(Date lapseTime){
this.lapseTime = lapseTime;
}
/**
* 获取 包的说明
* @return String
*/
public String getPackageRemark(){
return packageRemark;
}
/**
* 设置 包的说明
* @param packageRemark
*/
public void setPackageRemark(String packageRemark){
this.packageRemark = packageRemark;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof SystemServiceEntity) {
SystemServiceEntity tmp = (SystemServiceEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",systemServiceName:").append(getSystemServiceName());
sb.append(",systemServiceCode:").append(getSystemServiceCode());
sb.append(",systemServiceUrl:").append(getSystemServiceUrl());
sb.append(",packageName:").append(getPackageName());
sb.append(",packagePath:").append(getPackagePath());
sb.append(",packageVersion:").append(getPackageVersion());
sb.append(",apiStatus:").append(getApiStatus());
sb.append(",lapseTime:").append(getLapseTime());
sb.append(",packageRemark:").append(getPackageRemark());
return sb.toString();
}
public void initAttrValue(){
this.systemServiceName = "";
this.systemServiceCode = "";
this.systemServiceUrl = "";
this.packageName = "";
this.packagePath = "";
this.packageVersion = "";
this.apiStatus = null;
this.lapseTime = null;
this.packageRemark = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.system.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.system.model.SystemServiceEntity;
/**
* API服务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class SystemServiceQuery extends SystemServiceEntity {
/** 开始 系统API的ID,主键,自增长 */
private Long idStart;
/** 结束 系统API的ID,主键,自增长 */
private Long idEnd;
/** 增加 系统API的ID,主键,自增长 */
private Long idIncrement;
/** 系统API的ID,主键,自增长列表 */
private List <Long> idList;
/** 模块名称 */
private List<String> systemServiceNameList;
/** 模块编码 */
private List<String> systemServiceCodeList;
/** 模块地址 */
private List<String> systemServiceUrlList;
/** 包名称 */
private List<String> packageNameList;
/** 包的下载路径 */
private List<String> packagePathList;
/** 包的版本 */
private List<String> packageVersionList;
/** 开始 包的状态,1:启用,0:停用 */
private Integer apiStatusStart;
/** 结束 包的状态,1:启用,0:停用 */
private Integer apiStatusEnd;
/** 增加 包的状态,1:启用,0:停用 */
private Integer apiStatusIncrement;
/** 包的状态,1:启用,0:停用列表 */
private List <Integer> apiStatusList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 失效时间 */
private String lapseTimeStart;
/** 结束 失效时间 */
private String lapseTimeEnd;
/** 包的说明 */
private List<String> packageRemarkList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<SystemServiceQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<SystemServiceQuery> andConditionList;
public SystemServiceQuery(){}
/**
* 获取 开始 系统API的ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 系统API的ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 系统API的ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 系统API的ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 系统API的ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 系统API的ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 系统API的ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 系统API的ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 模块名称
* @return systemServiceNameList
*/
public List<String> getSystemServiceNameList(){
return this.systemServiceNameList;
}
/**
* 设置 模块名称
* @param systemServiceNameList
*/
public void setSystemServiceNameList(List<String> systemServiceNameList){
this.systemServiceNameList = systemServiceNameList;
}
/**
* 获取 模块编码
* @return systemServiceCodeList
*/
public List<String> getSystemServiceCodeList(){
return this.systemServiceCodeList;
}
/**
* 设置 模块编码
* @param systemServiceCodeList
*/
public void setSystemServiceCodeList(List<String> systemServiceCodeList){
this.systemServiceCodeList = systemServiceCodeList;
}
/**
* 获取 模块地址
* @return systemServiceUrlList
*/
public List<String> getSystemServiceUrlList(){
return this.systemServiceUrlList;
}
/**
* 设置 模块地址
* @param systemServiceUrlList
*/
public void setSystemServiceUrlList(List<String> systemServiceUrlList){
this.systemServiceUrlList = systemServiceUrlList;
}
/**
* 获取 包名称
* @return packageNameList
*/
public List<String> getPackageNameList(){
return this.packageNameList;
}
/**
* 设置 包名称
* @param packageNameList
*/
public void setPackageNameList(List<String> packageNameList){
this.packageNameList = packageNameList;
}
/**
* 获取 包的下载路径
* @return packagePathList
*/
public List<String> getPackagePathList(){
return this.packagePathList;
}
/**
* 设置 包的下载路径
* @param packagePathList
*/
public void setPackagePathList(List<String> packagePathList){
this.packagePathList = packagePathList;
}
/**
* 获取 包的版本
* @return packageVersionList
*/
public List<String> getPackageVersionList(){
return this.packageVersionList;
}
/**
* 设置 包的版本
* @param packageVersionList
*/
public void setPackageVersionList(List<String> packageVersionList){
this.packageVersionList = packageVersionList;
}
/**
* 获取 开始 包的状态,1:启用,0:停用
* @return apiStatusStart
*/
public Integer getApiStatusStart(){
return this.apiStatusStart;
}
/**
* 设置 开始 包的状态,1:启用,0:停用
* @param apiStatusStart
*/
public void setApiStatusStart(Integer apiStatusStart){
this.apiStatusStart = apiStatusStart;
}
/**
* 获取 结束 包的状态,1:启用,0:停用
* @return $apiStatusEnd
*/
public Integer getApiStatusEnd(){
return this.apiStatusEnd;
}
/**
* 设置 结束 包的状态,1:启用,0:停用
* @param apiStatusEnd
*/
public void setApiStatusEnd(Integer apiStatusEnd){
this.apiStatusEnd = apiStatusEnd;
}
/**
* 获取 增加 包的状态,1:启用,0:停用
* @return apiStatusIncrement
*/
public Integer getApiStatusIncrement(){
return this.apiStatusIncrement;
}
/**
* 设置 增加 包的状态,1:启用,0:停用
* @param apiStatusIncrement
*/
public void setApiStatusIncrement(Integer apiStatusIncrement){
this.apiStatusIncrement = apiStatusIncrement;
}
/**
* 获取 包的状态,1:启用,0:停用
* @return apiStatusList
*/
public List<Integer> getApiStatusList(){
return this.apiStatusList;
}
/**
* 设置 包的状态,1:启用,0:停用
* @param apiStatusList
*/
public void setApiStatusList(List<Integer> apiStatusList){
this.apiStatusList = apiStatusList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 失效时间
* @return lapseTimeStart
*/
public String getLapseTimeStart(){
return this.lapseTimeStart;
}
/**
* 设置 开始 失效时间
* @param lapseTimeStart
*/
public void setLapseTimeStart(String lapseTimeStart){
this.lapseTimeStart = lapseTimeStart;
}
/**
* 获取 结束 失效时间
* @return lapseTimeEnd
*/
public String getLapseTimeEnd(){
return this.lapseTimeEnd;
}
/**
* 设置 结束 失效时间
* @param lapseTimeEnd
*/
public void setLapseTimeEnd(String lapseTimeEnd){
this.lapseTimeEnd = lapseTimeEnd;
}
/**
* 获取 包的说明
* @return packageRemarkList
*/
public List<String> getPackageRemarkList(){
return this.packageRemarkList;
}
/**
* 设置 包的说明
* @param packageRemarkList
*/
public void setPackageRemarkList(List<String> packageRemarkList){
this.packageRemarkList = packageRemarkList;
}
/**
* 设置 系统API的ID,主键,自增长
* @param id
*/
public SystemServiceQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 系统API的ID,主键,自增长
* @param idStart
*/
public SystemServiceQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 系统API的ID,主键,自增长
* @param idEnd
*/
public SystemServiceQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 系统API的ID,主键,自增长
* @param idIncrement
*/
public SystemServiceQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 系统API的ID,主键,自增长
* @param idList
*/
public SystemServiceQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 模块名称
* @param systemServiceName
*/
public SystemServiceQuery systemServiceName(String systemServiceName){
setSystemServiceName(systemServiceName);
return this;
}
/**
* 设置 模块名称
* @param systemServiceNameList
*/
public SystemServiceQuery systemServiceNameList(List<String> systemServiceNameList){
this.systemServiceNameList = systemServiceNameList;
return this;
}
/**
* 设置 模块编码
* @param systemServiceCode
*/
public SystemServiceQuery systemServiceCode(String systemServiceCode){
setSystemServiceCode(systemServiceCode);
return this;
}
/**
* 设置 模块编码
* @param systemServiceCodeList
*/
public SystemServiceQuery systemServiceCodeList(List<String> systemServiceCodeList){
this.systemServiceCodeList = systemServiceCodeList;
return this;
}
/**
* 设置 模块地址
* @param systemServiceUrl
*/
public SystemServiceQuery systemServiceUrl(String systemServiceUrl){
setSystemServiceUrl(systemServiceUrl);
return this;
}
/**
* 设置 模块地址
* @param systemServiceUrlList
*/
public SystemServiceQuery systemServiceUrlList(List<String> systemServiceUrlList){
this.systemServiceUrlList = systemServiceUrlList;
return this;
}
/**
* 设置 包名称
* @param packageName
*/
public SystemServiceQuery packageName(String packageName){
setPackageName(packageName);
return this;
}
/**
* 设置 包名称
* @param packageNameList
*/
public SystemServiceQuery packageNameList(List<String> packageNameList){
this.packageNameList = packageNameList;
return this;
}
/**
* 设置 包的下载路径
* @param packagePath
*/
public SystemServiceQuery packagePath(String packagePath){
setPackagePath(packagePath);
return this;
}
/**
* 设置 包的下载路径
* @param packagePathList
*/
public SystemServiceQuery packagePathList(List<String> packagePathList){
this.packagePathList = packagePathList;
return this;
}
/**
* 设置 包的版本
* @param packageVersion
*/
public SystemServiceQuery packageVersion(String packageVersion){
setPackageVersion(packageVersion);
return this;
}
/**
* 设置 包的版本
* @param packageVersionList
*/
public SystemServiceQuery packageVersionList(List<String> packageVersionList){
this.packageVersionList = packageVersionList;
return this;
}
/**
* 设置 包的状态,1:启用,0:停用
* @param apiStatus
*/
public SystemServiceQuery apiStatus(Integer apiStatus){
setApiStatus(apiStatus);
return this;
}
/**
* 设置 开始 包的状态,1:启用,0:停用
* @param apiStatusStart
*/
public SystemServiceQuery apiStatusStart(Integer apiStatusStart){
this.apiStatusStart = apiStatusStart;
return this;
}
/**
* 设置 结束 包的状态,1:启用,0:停用
* @param apiStatusEnd
*/
public SystemServiceQuery apiStatusEnd(Integer apiStatusEnd){
this.apiStatusEnd = apiStatusEnd;
return this;
}
/**
* 设置 增加 包的状态,1:启用,0:停用
* @param apiStatusIncrement
*/
public SystemServiceQuery apiStatusIncrement(Integer apiStatusIncrement){
this.apiStatusIncrement = apiStatusIncrement;
return this;
}
/**
* 设置 包的状态,1:启用,0:停用
* @param apiStatusList
*/
public SystemServiceQuery apiStatusList(List<Integer> apiStatusList){
this.apiStatusList = apiStatusList;
return this;
}
/**
* 设置 包的说明
* @param packageRemark
*/
public SystemServiceQuery packageRemark(String packageRemark){
setPackageRemark(packageRemark);
return this;
}
/**
* 设置 包的说明
* @param packageRemarkList
*/
public SystemServiceQuery packageRemarkList(List<String> packageRemarkList){
this.packageRemarkList = packageRemarkList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<SystemServiceQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<SystemServiceQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<SystemServiceQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<SystemServiceQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.system.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.system.model.SystemServiceApiEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* API服务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class SystemServiceApiVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.system.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.system.model.SystemServiceEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* API服务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class SystemServiceVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.system.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.system.model.SystemServiceApiEntity;
/**
* SystemServiceApiService
*
* API服务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface SystemServiceApiService extends ICRUDService<SystemServiceApiEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.system.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.system.model.SystemServiceEntity;
/**
* SystemServiceService
*
* API服务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface SystemServiceService extends ICRUDService<SystemServiceEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.system.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.system.dao.SystemServiceApiDao;
import com.mortals.xhx.module.system.model.SystemServiceApiEntity;
import com.mortals.xhx.module.system.service.SystemServiceApiService;
/**
* SystemServiceApiService
* API服务 service实现
*
* @author zxfei
* @date 2022-05-25
*/
@Service("systemServiceApiService")
public class SystemServiceApiServiceImpl extends AbstractCRUDServiceImpl<SystemServiceApiDao, SystemServiceApiEntity, Long> implements SystemServiceApiService {
}
\ No newline at end of file
package com.mortals.xhx.module.system.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.system.dao.SystemServiceDao;
import com.mortals.xhx.module.system.model.SystemServiceEntity;
import com.mortals.xhx.module.system.service.SystemServiceService;
/**
* SystemServiceService
* API服务 service实现
*
* @author zxfei
* @date 2022-05-25
*/
@Service("systemServiceService")
public class SystemServiceServiceImpl extends AbstractCRUDServiceImpl<SystemServiceDao, SystemServiceEntity, Long> implements SystemServiceService {
}
\ No newline at end of file
package com.mortals.xhx.module.system.web;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.param.service.ParamService;
import com.mortals.xhx.module.system.model.SystemServiceApiEntity;
import com.mortals.xhx.module.system.service.SystemServiceApiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
*
* API服务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("system/service/api")
public class SystemServiceApiController extends BaseCRUDJsonBodyMappingController<SystemServiceApiService,SystemServiceApiEntity,Long> {
@Autowired
private ParamService paramService;
public SystemServiceApiController(){
super.setFormClass(SystemServiceApiForm.class);
super.setModuleDesc( "API服务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "apiStatus", paramService.getParamBySecondOrganize("SystemServiceApi","apiStatus"));
super.init(model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.system.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.system.model.SystemServiceApiEntity;
import com.mortals.xhx.module.system.model.SystemServiceApiQuery;
/**
* SystemServiceApi
*
* API服务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class SystemServiceApiForm extends BaseCRUDFormLong<SystemServiceApiEntity> {
private SystemServiceApiEntity entity = new SystemServiceApiEntity();
private SystemServiceApiQuery query = new SystemServiceApiQuery();
public SystemServiceApiForm(){
}
@Override
public SystemServiceApiEntity getEntity() {
return entity;
}
public void setSystemServiceApi(SystemServiceApiEntity entity) {
this.entity = entity;
}
@Override
public SystemServiceApiQuery getQuery() {
return query;
}
public void setQuery(SystemServiceApiQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.system.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.system.model.SystemServiceEntity;
import com.mortals.xhx.module.system.model.SystemServiceQuery;
import com.mortals.xhx.module.system.service.SystemServiceService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
* API服务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("system/service")
public class SystemServiceController extends BaseCRUDJsonBodyMappingController<SystemServiceService, SystemServiceEntity, Long> {
@Autowired
private ParamService paramService;
public SystemServiceController() {
super.setFormClass(SystemServiceForm.class);
super.setModuleDesc("API服务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "apiStatus", paramService.getParamBySecondOrganize("SystemService", "apiStatus"));
super.init(model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.system.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.system.model.SystemServiceEntity;
import com.mortals.xhx.module.system.model.SystemServiceQuery;
/**
* SystemService
*
* API服务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class SystemServiceForm extends BaseCRUDFormLong<SystemServiceEntity> {
private SystemServiceEntity entity = new SystemServiceEntity();
private SystemServiceQuery query = new SystemServiceQuery();
public SystemServiceForm(){
}
@Override
public SystemServiceEntity getEntity() {
return entity;
}
public void setSystemService(SystemServiceEntity entity) {
this.entity = entity;
}
@Override
public SystemServiceQuery getQuery() {
return query;
}
public void setQuery(SystemServiceQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.uploadfile.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.uploadfile.model.UploadfileEntity;
import java.util.List;
/**
* 上传文件业务Dao
* 上传文件业务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface UploadfileDao extends ICRUDDao<UploadfileEntity,Long>{
}
package com.mortals.xhx.module.uploadfile.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.uploadfile.dao.UploadfileDao;
import com.mortals.xhx.module.uploadfile.model.UploadfileEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 上传文件业务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("uploadfileDao")
public class UploadfileDaoImpl extends BaseCRUDDaoMybatis<UploadfileEntity,Long> implements UploadfileDao {
}
package com.mortals.xhx.module.uploadfile.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.uploadfile.model.vo.UploadfileVo;
/**
* 上传文件业务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class UploadfileEntity extends UploadfileVo {
private static final long serialVersionUID = 1L;
/**
* 文件名称
*/
private String fileName;
/**
* 文件路径
*/
private String filePath;
/**
* 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
*/
private Integer fileType;
public UploadfileEntity(){}
/**
* 获取 文件名称
* @return String
*/
public String getFileName(){
return fileName;
}
/**
* 设置 文件名称
* @param fileName
*/
public void setFileName(String fileName){
this.fileName = fileName;
}
/**
* 获取 文件路径
* @return String
*/
public String getFilePath(){
return filePath;
}
/**
* 设置 文件路径
* @param filePath
*/
public void setFilePath(String filePath){
this.filePath = filePath;
}
/**
* 获取 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @return Integer
*/
public Integer getFileType(){
return fileType;
}
/**
* 设置 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileType
*/
public void setFileType(Integer fileType){
this.fileType = fileType;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof UploadfileEntity) {
UploadfileEntity tmp = (UploadfileEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",fileName:").append(getFileName());
sb.append(",filePath:").append(getFilePath());
sb.append(",fileType:").append(getFileType());
return sb.toString();
}
public void initAttrValue(){
this.fileName = "";
this.filePath = "";
this.fileType = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.uploadfile.model;
import java.util.List;
import com.mortals.xhx.module.uploadfile.model.UploadfileEntity;
/**
* 上传文件业务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class UploadfileQuery extends UploadfileEntity {
/** 开始 ID,主键,自增长 */
private Long idStart;
/** 结束 ID,主键,自增长 */
private Long idEnd;
/** 增加 ID,主键,自增长 */
private Long idIncrement;
/** ID,主键,自增长列表 */
private List <Long> idList;
/** 文件名称 */
private List<String> fileNameList;
/** 文件路径 */
private List<String> filePathList;
/** 开始 文件类型,(1.excel ,2. img,3.zip, 4.pdf) */
private Integer fileTypeStart;
/** 结束 文件类型,(1.excel ,2. img,3.zip, 4.pdf) */
private Integer fileTypeEnd;
/** 增加 文件类型,(1.excel ,2. img,3.zip, 4.pdf) */
private Integer fileTypeIncrement;
/** 文件类型,(1.excel ,2. img,3.zip, 4.pdf)列表 */
private List <Integer> fileTypeList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 创建用户 */
private List<String> createUserList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<UploadfileQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<UploadfileQuery> andConditionList;
public UploadfileQuery(){}
/**
* 获取 开始 ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 文件名称
* @return fileNameList
*/
public List<String> getFileNameList(){
return this.fileNameList;
}
/**
* 设置 文件名称
* @param fileNameList
*/
public void setFileNameList(List<String> fileNameList){
this.fileNameList = fileNameList;
}
/**
* 获取 文件路径
* @return filePathList
*/
public List<String> getFilePathList(){
return this.filePathList;
}
/**
* 设置 文件路径
* @param filePathList
*/
public void setFilePathList(List<String> filePathList){
this.filePathList = filePathList;
}
/**
* 获取 开始 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @return fileTypeStart
*/
public Integer getFileTypeStart(){
return this.fileTypeStart;
}
/**
* 设置 开始 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileTypeStart
*/
public void setFileTypeStart(Integer fileTypeStart){
this.fileTypeStart = fileTypeStart;
}
/**
* 获取 结束 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @return $fileTypeEnd
*/
public Integer getFileTypeEnd(){
return this.fileTypeEnd;
}
/**
* 设置 结束 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileTypeEnd
*/
public void setFileTypeEnd(Integer fileTypeEnd){
this.fileTypeEnd = fileTypeEnd;
}
/**
* 获取 增加 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @return fileTypeIncrement
*/
public Integer getFileTypeIncrement(){
return this.fileTypeIncrement;
}
/**
* 设置 增加 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileTypeIncrement
*/
public void setFileTypeIncrement(Integer fileTypeIncrement){
this.fileTypeIncrement = fileTypeIncrement;
}
/**
* 获取 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @return fileTypeList
*/
public List<Integer> getFileTypeList(){
return this.fileTypeList;
}
/**
* 设置 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileTypeList
*/
public void setFileTypeList(List<Integer> fileTypeList){
this.fileTypeList = fileTypeList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 创建用户
* @return createUserList
*/
public List<String> getCreateUserList(){
return this.createUserList;
}
/**
* 设置 创建用户
* @param createUserList
*/
public void setCreateUserList(List<String> createUserList){
this.createUserList = createUserList;
}
/**
* 设置 ID,主键,自增长
* @param id
*/
public UploadfileQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 ID,主键,自增长
* @param idStart
*/
public UploadfileQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 ID,主键,自增长
* @param idEnd
*/
public UploadfileQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 ID,主键,自增长
* @param idIncrement
*/
public UploadfileQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 ID,主键,自增长
* @param idList
*/
public UploadfileQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 文件名称
* @param fileName
*/
public UploadfileQuery fileName(String fileName){
setFileName(fileName);
return this;
}
/**
* 设置 文件名称
* @param fileNameList
*/
public UploadfileQuery fileNameList(List<String> fileNameList){
this.fileNameList = fileNameList;
return this;
}
/**
* 设置 文件路径
* @param filePath
*/
public UploadfileQuery filePath(String filePath){
setFilePath(filePath);
return this;
}
/**
* 设置 文件路径
* @param filePathList
*/
public UploadfileQuery filePathList(List<String> filePathList){
this.filePathList = filePathList;
return this;
}
/**
* 设置 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileType
*/
public UploadfileQuery fileType(Integer fileType){
setFileType(fileType);
return this;
}
/**
* 设置 开始 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileTypeStart
*/
public UploadfileQuery fileTypeStart(Integer fileTypeStart){
this.fileTypeStart = fileTypeStart;
return this;
}
/**
* 设置 结束 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileTypeEnd
*/
public UploadfileQuery fileTypeEnd(Integer fileTypeEnd){
this.fileTypeEnd = fileTypeEnd;
return this;
}
/**
* 设置 增加 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileTypeIncrement
*/
public UploadfileQuery fileTypeIncrement(Integer fileTypeIncrement){
this.fileTypeIncrement = fileTypeIncrement;
return this;
}
/**
* 设置 文件类型,(1.excel ,2. img,3.zip, 4.pdf)
* @param fileTypeList
*/
public UploadfileQuery fileTypeList(List<Integer> fileTypeList){
this.fileTypeList = fileTypeList;
return this;
}
/**
* 设置 创建用户
* @param createUser
*/
public UploadfileQuery createUser(String createUser){
setCreateUser(createUser);
return this;
}
/**
* 设置 创建用户
* @param createUserList
*/
public UploadfileQuery createUserList(List<String> createUserList){
this.createUserList = createUserList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<UploadfileQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<UploadfileQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<UploadfileQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<UploadfileQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.uploadfile.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.uploadfile.model.UploadfileEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 上传文件业务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class UploadfileVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.uploadfile.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.uploadfile.model.UploadfileEntity;
/**
* UploadfileService
*
* 上传文件业务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface UploadfileService extends ICRUDService<UploadfileEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.uploadfile.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.uploadfile.dao.UploadfileDao;
import com.mortals.xhx.module.uploadfile.model.UploadfileEntity;
import com.mortals.xhx.module.uploadfile.service.UploadfileService;
/**
* UploadfileService
* 上传文件业务 service实现
*
* @author zxfei
* @date 2022-05-25
*/
@Service("uploadfileService")
public class UploadfileServiceImpl extends AbstractCRUDServiceImpl<UploadfileDao, UploadfileEntity, Long> implements UploadfileService {
}
\ No newline at end of file
package com.mortals.xhx.module.uploadfile.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.uploadfile.model.UploadfileEntity;
import com.mortals.xhx.module.uploadfile.model.UploadfileQuery;
import com.mortals.xhx.module.uploadfile.service.UploadfileService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
* 上传文件业务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("uploadfile")
public class UploadfileController extends BaseCRUDJsonBodyMappingController<UploadfileService, UploadfileEntity, Long> {
@Autowired
private ParamService paramService;
public UploadfileController() {
super.setFormClass(UploadfileForm.class);
super.setModuleDesc("上传文件业务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "fileType", paramService.getParamBySecondOrganize("Uploadfile", "fileType"));
super.init(model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.uploadfile.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.uploadfile.model.UploadfileEntity;
import com.mortals.xhx.module.uploadfile.model.UploadfileQuery;
/**
* Uploadfile
*
* 上传文件业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class UploadfileForm extends BaseCRUDFormLong<UploadfileEntity> {
private UploadfileEntity entity = new UploadfileEntity();
private UploadfileQuery query = new UploadfileQuery();
public UploadfileForm(){
}
@Override
public UploadfileEntity getEntity() {
return entity;
}
public void setUploadfile(UploadfileEntity entity) {
this.entity = entity;
}
@Override
public UploadfileQuery getQuery() {
return query;
}
public void setQuery(UploadfileQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.module.user.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.user.model.UserEntity;
import java.util.List;
/**
* 用户信息业务Dao
* 用户信息业务 DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface UserDao extends ICRUDDao<UserEntity,Long>{
List<Long> getAuthListById(Long id);
}
package com.mortals.xhx.module.user.dao.ibatis;
import com.mortals.framework.model.ParamDto;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.user.dao.UserDao;
import com.mortals.xhx.module.user.model.UserEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 用户信息业务DaoImpl DAO接口
*
* @author zxfei
* @date 2022-05-25
*/
@Repository("userDao")
public class UserDaoImpl extends BaseCRUDDaoMybatis<UserEntity, Long> implements UserDao {
@Override
public List<Long> getAuthListById(Long id) {
ParamDto param = new ParamDto();
param.getCondition().put("id", id);
return getSqlSession().selectList(getSqlId("getAuthListById"), param);
}
}
package com.mortals.xhx.module.user.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.framework.service.IUser;
import com.mortals.xhx.module.user.model.vo.UserVo;
/**
* 用户信息业务实体对象
*
* @author zxfei
* @date 2022-05-25
*/
public class UserEntity extends UserVo implements IUser {
private static final long serialVersionUID = 1L;
/**
* 登录名
*/
private String loginName;
/**
* 登录密码,使用md5双次加密
*/
private String loginPwd;
/**
* 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
*/
private String loginLimitAddress;
/**
* 用户名
*/
private String realName;
/**
* 用户手机号
*/
private String mobile;
/**
* 用户联系电话
*/
private String phone;
/**
* 用户邮箱
*/
private String email;
/**
* QQ号码
*/
private String qq;
/**
* 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
*/
private Integer userType;
/**
* { "授权站点": { "站点信息": [ { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" } ] }}
*/
private String siteInfo;
/**
* 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
*/
private Integer status;
/**
* 客户ID
*/
private Long customerId;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 最后一次登录时间
*/
private Date lastLoginTime;
/**
* 最后一次登录地址
*/
private String lastLoginAddress;
public UserEntity(){}
/**
* 获取 登录名
* @return String
*/
public String getLoginName(){
return loginName;
}
/**
* 设置 登录名
* @param loginName
*/
public void setLoginName(String loginName){
this.loginName = loginName;
}
/**
* 获取 登录密码,使用md5双次加密
* @return String
*/
public String getLoginPwd(){
return loginPwd;
}
/**
* 设置 登录密码,使用md5双次加密
* @param loginPwd
*/
public void setLoginPwd(String loginPwd){
this.loginPwd = loginPwd;
}
/**
* 获取 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
* @return String
*/
public String getLoginLimitAddress(){
return loginLimitAddress;
}
/**
* 设置 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
* @param loginLimitAddress
*/
public void setLoginLimitAddress(String loginLimitAddress){
this.loginLimitAddress = loginLimitAddress;
}
/**
* 获取 用户名
* @return String
*/
public String getRealName(){
return realName;
}
@Override
public boolean isAdmin() {
return false;
}
@Override
public boolean isSystemUser() {
return false;
}
@Override
public boolean isManager() {
return false;
}
/**
* 设置 用户名
* @param realName
*/
public void setRealName(String realName){
this.realName = realName;
}
/**
* 获取 用户手机号
* @return String
*/
public String getMobile(){
return mobile;
}
/**
* 设置 用户手机号
* @param mobile
*/
public void setMobile(String mobile){
this.mobile = mobile;
}
/**
* 获取 用户联系电话
* @return String
*/
public String getPhone(){
return phone;
}
/**
* 设置 用户联系电话
* @param phone
*/
public void setPhone(String phone){
this.phone = phone;
}
/**
* 获取 用户邮箱
* @return String
*/
public String getEmail(){
return email;
}
/**
* 设置 用户邮箱
* @param email
*/
public void setEmail(String email){
this.email = email;
}
/**
* 获取 QQ号码
* @return String
*/
public String getQq(){
return qq;
}
/**
* 设置 QQ号码
* @param qq
*/
public void setQq(String qq){
this.qq = qq;
}
/**
* 获取 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @return Integer
*/
public Integer getUserType(){
return userType;
}
/**
* 设置 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userType
*/
public void setUserType(Integer userType){
this.userType = userType;
}
/**
* 获取 { "授权站点": { "站点信息": [ { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" } ] }}
* @return String
*/
public String getSiteInfo(){
return siteInfo;
}
/**
* 设置 { "授权站点": { "站点信息": [ { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" } ] }}
* @param siteInfo
*/
public void setSiteInfo(String siteInfo){
this.siteInfo = siteInfo;
}
/**
* 获取 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @return Integer
*/
public Integer getStatus(){
return status;
}
/**
* 设置 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param status
*/
public void setStatus(Integer status){
this.status = status;
}
@Override
public Long getDeptId() {
return null;
}
@Override
public String getDeptName() {
return null;
}
/**
* 获取 客户ID
* @return Long
*/
public Long getCustomerId(){
return customerId;
}
@Override
public Long getSiteId() {
return null;
}
@Override
public Long getCustomerJoinId() {
return null;
}
@Override
public String getCustomerNum() {
return null;
}
/**
* 设置 客户ID
* @param customerId
*/
public void setCustomerId(Long customerId){
this.customerId = customerId;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
/**
* 获取 最后一次登录时间
* @return Date
*/
public Date getLastLoginTime(){
return lastLoginTime;
}
/**
* 设置 最后一次登录时间
* @param lastLoginTime
*/
public void setLastLoginTime(Date lastLoginTime){
this.lastLoginTime = lastLoginTime;
}
/**
* 获取 最后一次登录地址
* @return String
*/
public String getLastLoginAddress(){
return lastLoginAddress;
}
/**
* 设置 最后一次登录地址
* @param lastLoginAddress
*/
public void setLastLoginAddress(String lastLoginAddress){
this.lastLoginAddress = lastLoginAddress;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof UserEntity) {
UserEntity tmp = (UserEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",loginName:").append(getLoginName());
sb.append(",loginPwd:").append(getLoginPwd());
sb.append(",loginLimitAddress:").append(getLoginLimitAddress());
sb.append(",realName:").append(getRealName());
sb.append(",mobile:").append(getMobile());
sb.append(",phone:").append(getPhone());
sb.append(",email:").append(getEmail());
sb.append(",qq:").append(getQq());
sb.append(",userType:").append(getUserType());
sb.append(",siteInfo:").append(getSiteInfo());
sb.append(",status:").append(getStatus());
sb.append(",customerId:").append(getCustomerId());
sb.append(",createUserName:").append(getCreateUserName());
sb.append(",lastLoginTime:").append(getLastLoginTime());
sb.append(",lastLoginAddress:").append(getLastLoginAddress());
return sb.toString();
}
public void initAttrValue(){
this.loginName = "";
this.loginPwd = "";
this.loginLimitAddress = "";
this.realName = "";
this.mobile = "";
this.phone = "";
this.email = "";
this.qq = "";
this.userType = null;
this.siteInfo = "";
this.status = 1;
this.customerId = null;
this.createUserName = "";
this.lastLoginTime = null;
this.lastLoginAddress = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.user.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.user.model.UserEntity;
/**
* 用户信息业务查询对象
*
* @author zxfei
* @date 2022-05-25
*/
public class UserQuery extends UserEntity {
/** 开始 用户ID,主键,自增长 */
private Long idStart;
/** 结束 用户ID,主键,自增长 */
private Long idEnd;
/** 增加 用户ID,主键,自增长 */
private Long idIncrement;
/** 用户ID,主键,自增长列表 */
private List <Long> idList;
/** 登录名 */
private List<String> loginNameList;
/** 登录密码,使用md5双次加密 */
private List<String> loginPwdList;
/** 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录 */
private List<String> loginLimitAddressList;
/** 用户名 */
private List<String> realNameList;
/** 用户手机号 */
private List<String> mobileList;
/** 用户联系电话 */
private List<String> phoneList;
/** 用户邮箱 */
private List<String> emailList;
/** QQ号码 */
private List<String> qqList;
/** 开始 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2 */
private Integer userTypeStart;
/** 结束 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2 */
private Integer userTypeEnd;
/** 增加 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2 */
private Integer userTypeIncrement;
/** 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2列表 */
private List <Integer> userTypeList;
/** { "授权站点": { "站点信息": [ { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" } ] }} */
private List<String> siteInfoList;
/** 开始 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1 */
private Integer statusStart;
/** 结束 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1 */
private Integer statusEnd;
/** 增加 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1 */
private Integer statusIncrement;
/** 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1列表 */
private List <Integer> statusList;
/** 开始 客户ID */
private Long customerIdStart;
/** 结束 客户ID */
private Long customerIdEnd;
/** 增加 客户ID */
private Long customerIdIncrement;
/** 客户ID列表 */
private List <Long> customerIdList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户列表 */
private List <Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** 开始 最后一次登录时间 */
private String lastLoginTimeStart;
/** 结束 最后一次登录时间 */
private String lastLoginTimeEnd;
/** 最后一次登录地址 */
private List<String> lastLoginAddressList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<UserQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<UserQuery> andConditionList;
public UserQuery(){}
/**
* 获取 开始 用户ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 用户ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 用户ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 用户ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 用户ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 用户ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 用户ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 用户ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 登录名
* @return loginNameList
*/
public List<String> getLoginNameList(){
return this.loginNameList;
}
/**
* 设置 登录名
* @param loginNameList
*/
public void setLoginNameList(List<String> loginNameList){
this.loginNameList = loginNameList;
}
/**
* 获取 登录密码,使用md5双次加密
* @return loginPwdList
*/
public List<String> getLoginPwdList(){
return this.loginPwdList;
}
/**
* 设置 登录密码,使用md5双次加密
* @param loginPwdList
*/
public void setLoginPwdList(List<String> loginPwdList){
this.loginPwdList = loginPwdList;
}
/**
* 获取 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
* @return loginLimitAddressList
*/
public List<String> getLoginLimitAddressList(){
return this.loginLimitAddressList;
}
/**
* 设置 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
* @param loginLimitAddressList
*/
public void setLoginLimitAddressList(List<String> loginLimitAddressList){
this.loginLimitAddressList = loginLimitAddressList;
}
/**
* 获取 用户名
* @return realNameList
*/
public List<String> getRealNameList(){
return this.realNameList;
}
/**
* 设置 用户名
* @param realNameList
*/
public void setRealNameList(List<String> realNameList){
this.realNameList = realNameList;
}
/**
* 获取 用户手机号
* @return mobileList
*/
public List<String> getMobileList(){
return this.mobileList;
}
/**
* 设置 用户手机号
* @param mobileList
*/
public void setMobileList(List<String> mobileList){
this.mobileList = mobileList;
}
/**
* 获取 用户联系电话
* @return phoneList
*/
public List<String> getPhoneList(){
return this.phoneList;
}
/**
* 设置 用户联系电话
* @param phoneList
*/
public void setPhoneList(List<String> phoneList){
this.phoneList = phoneList;
}
/**
* 获取 用户邮箱
* @return emailList
*/
public List<String> getEmailList(){
return this.emailList;
}
/**
* 设置 用户邮箱
* @param emailList
*/
public void setEmailList(List<String> emailList){
this.emailList = emailList;
}
/**
* 获取 QQ号码
* @return qqList
*/
public List<String> getQqList(){
return this.qqList;
}
/**
* 设置 QQ号码
* @param qqList
*/
public void setQqList(List<String> qqList){
this.qqList = qqList;
}
/**
* 获取 开始 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @return userTypeStart
*/
public Integer getUserTypeStart(){
return this.userTypeStart;
}
/**
* 设置 开始 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userTypeStart
*/
public void setUserTypeStart(Integer userTypeStart){
this.userTypeStart = userTypeStart;
}
/**
* 获取 结束 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @return $userTypeEnd
*/
public Integer getUserTypeEnd(){
return this.userTypeEnd;
}
/**
* 设置 结束 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userTypeEnd
*/
public void setUserTypeEnd(Integer userTypeEnd){
this.userTypeEnd = userTypeEnd;
}
/**
* 获取 增加 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @return userTypeIncrement
*/
public Integer getUserTypeIncrement(){
return this.userTypeIncrement;
}
/**
* 设置 增加 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userTypeIncrement
*/
public void setUserTypeIncrement(Integer userTypeIncrement){
this.userTypeIncrement = userTypeIncrement;
}
/**
* 获取 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @return userTypeList
*/
public List<Integer> getUserTypeList(){
return this.userTypeList;
}
/**
* 设置 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userTypeList
*/
public void setUserTypeList(List<Integer> userTypeList){
this.userTypeList = userTypeList;
}
/**
* 获取 { "授权站点": { "站点信息": [ { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" } ] }}
* @return siteInfoList
*/
public List<String> getSiteInfoList(){
return this.siteInfoList;
}
/**
* 设置 { "授权站点": { "站点信息": [ { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" } ] }}
* @param siteInfoList
*/
public void setSiteInfoList(List<String> siteInfoList){
this.siteInfoList = siteInfoList;
}
/**
* 获取 开始 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @return statusStart
*/
public Integer getStatusStart(){
return this.statusStart;
}
/**
* 设置 开始 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param statusStart
*/
public void setStatusStart(Integer statusStart){
this.statusStart = statusStart;
}
/**
* 获取 结束 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @return $statusEnd
*/
public Integer getStatusEnd(){
return this.statusEnd;
}
/**
* 设置 结束 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param statusEnd
*/
public void setStatusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
}
/**
* 获取 增加 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @return statusIncrement
*/
public Integer getStatusIncrement(){
return this.statusIncrement;
}
/**
* 设置 增加 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param statusIncrement
*/
public void setStatusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
}
/**
* 获取 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @return statusList
*/
public List<Integer> getStatusList(){
return this.statusList;
}
/**
* 设置 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param statusList
*/
public void setStatusList(List<Integer> statusList){
this.statusList = statusList;
}
/**
* 获取 开始 客户ID
* @return customerIdStart
*/
public Long getCustomerIdStart(){
return this.customerIdStart;
}
/**
* 设置 开始 客户ID
* @param customerIdStart
*/
public void setCustomerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
}
/**
* 获取 结束 客户ID
* @return $customerIdEnd
*/
public Long getCustomerIdEnd(){
return this.customerIdEnd;
}
/**
* 设置 结束 客户ID
* @param customerIdEnd
*/
public void setCustomerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
}
/**
* 获取 增加 客户ID
* @return customerIdIncrement
*/
public Long getCustomerIdIncrement(){
return this.customerIdIncrement;
}
/**
* 设置 增加 客户ID
* @param customerIdIncrement
*/
public void setCustomerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
}
/**
* 获取 客户ID
* @return customerIdList
*/
public List<Long> getCustomerIdList(){
return this.customerIdList;
}
/**
* 设置 客户ID
* @param customerIdList
*/
public void setCustomerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 获取 开始 最后一次登录时间
* @return lastLoginTimeStart
*/
public String getLastLoginTimeStart(){
return this.lastLoginTimeStart;
}
/**
* 设置 开始 最后一次登录时间
* @param lastLoginTimeStart
*/
public void setLastLoginTimeStart(String lastLoginTimeStart){
this.lastLoginTimeStart = lastLoginTimeStart;
}
/**
* 获取 结束 最后一次登录时间
* @return lastLoginTimeEnd
*/
public String getLastLoginTimeEnd(){
return this.lastLoginTimeEnd;
}
/**
* 设置 结束 最后一次登录时间
* @param lastLoginTimeEnd
*/
public void setLastLoginTimeEnd(String lastLoginTimeEnd){
this.lastLoginTimeEnd = lastLoginTimeEnd;
}
/**
* 获取 最后一次登录地址
* @return lastLoginAddressList
*/
public List<String> getLastLoginAddressList(){
return this.lastLoginAddressList;
}
/**
* 设置 最后一次登录地址
* @param lastLoginAddressList
*/
public void setLastLoginAddressList(List<String> lastLoginAddressList){
this.lastLoginAddressList = lastLoginAddressList;
}
/**
* 设置 用户ID,主键,自增长
* @param id
*/
public UserQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 用户ID,主键,自增长
* @param idStart
*/
public UserQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 用户ID,主键,自增长
* @param idEnd
*/
public UserQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 用户ID,主键,自增长
* @param idIncrement
*/
public UserQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 用户ID,主键,自增长
* @param idList
*/
public UserQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 登录名
* @param loginName
*/
public UserQuery loginName(String loginName){
setLoginName(loginName);
return this;
}
/**
* 设置 登录名
* @param loginNameList
*/
public UserQuery loginNameList(List<String> loginNameList){
this.loginNameList = loginNameList;
return this;
}
/**
* 设置 登录密码,使用md5双次加密
* @param loginPwd
*/
public UserQuery loginPwd(String loginPwd){
setLoginPwd(loginPwd);
return this;
}
/**
* 设置 登录密码,使用md5双次加密
* @param loginPwdList
*/
public UserQuery loginPwdList(List<String> loginPwdList){
this.loginPwdList = loginPwdList;
return this;
}
/**
* 设置 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
* @param loginLimitAddress
*/
public UserQuery loginLimitAddress(String loginLimitAddress){
setLoginLimitAddress(loginLimitAddress);
return this;
}
/**
* 设置 登录限制地址,多个IP地址用逗号分隔,可以使用IP段匹配,如:172.17.*非空:则只能该值内的IP可以登录
* @param loginLimitAddressList
*/
public UserQuery loginLimitAddressList(List<String> loginLimitAddressList){
this.loginLimitAddressList = loginLimitAddressList;
return this;
}
/**
* 设置 用户名
* @param realName
*/
public UserQuery realName(String realName){
setRealName(realName);
return this;
}
/**
* 设置 用户名
* @param realNameList
*/
public UserQuery realNameList(List<String> realNameList){
this.realNameList = realNameList;
return this;
}
/**
* 设置 用户手机号
* @param mobile
*/
public UserQuery mobile(String mobile){
setMobile(mobile);
return this;
}
/**
* 设置 用户手机号
* @param mobileList
*/
public UserQuery mobileList(List<String> mobileList){
this.mobileList = mobileList;
return this;
}
/**
* 设置 用户联系电话
* @param phone
*/
public UserQuery phone(String phone){
setPhone(phone);
return this;
}
/**
* 设置 用户联系电话
* @param phoneList
*/
public UserQuery phoneList(List<String> phoneList){
this.phoneList = phoneList;
return this;
}
/**
* 设置 用户邮箱
* @param email
*/
public UserQuery email(String email){
setEmail(email);
return this;
}
/**
* 设置 用户邮箱
* @param emailList
*/
public UserQuery emailList(List<String> emailList){
this.emailList = emailList;
return this;
}
/**
* 设置 QQ号码
* @param qq
*/
public UserQuery qq(String qq){
setQq(qq);
return this;
}
/**
* 设置 QQ号码
* @param qqList
*/
public UserQuery qqList(List<String> qqList){
this.qqList = qqList;
return this;
}
/**
* 设置 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userType
*/
public UserQuery userType(Integer userType){
setUserType(userType);
return this;
}
/**
* 设置 开始 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userTypeStart
*/
public UserQuery userTypeStart(Integer userTypeStart){
this.userTypeStart = userTypeStart;
return this;
}
/**
* 设置 结束 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userTypeEnd
*/
public UserQuery userTypeEnd(Integer userTypeEnd){
this.userTypeEnd = userTypeEnd;
return this;
}
/**
* 设置 增加 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userTypeIncrement
*/
public UserQuery userTypeIncrement(Integer userTypeIncrement){
this.userTypeIncrement = userTypeIncrement;
return this;
}
/**
* 设置 用户类型,0:系统用户 1:普通用户 2:工作人员,默认2
* @param userTypeList
*/
public UserQuery userTypeList(List<Integer> userTypeList){
this.userTypeList = userTypeList;
return this;
}
/**
* 设置 { "授权站点": { "站点信息": [ { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" } ] }}
* @param siteInfo
*/
public UserQuery siteInfo(String siteInfo){
setSiteInfo(siteInfo);
return this;
}
/**
* 设置 { "授权站点": { "站点信息": [ { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" }, { "站点ID": "1", "站点名称": "1", "站点对应的区域ID": "", "站点对应的区域名称": "" } ] }}
* @param siteInfoList
*/
public UserQuery siteInfoList(List<String> siteInfoList){
this.siteInfoList = siteInfoList;
return this;
}
/**
* 设置 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param status
*/
public UserQuery status(Integer status){
setStatus(status);
return this;
}
/**
* 设置 开始 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param statusStart
*/
public UserQuery statusStart(Integer statusStart){
this.statusStart = statusStart;
return this;
}
/**
* 设置 结束 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param statusEnd
*/
public UserQuery statusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
return this;
}
/**
* 设置 增加 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param statusIncrement
*/
public UserQuery statusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
return this;
}
/**
* 设置 用户状态,0:停用,1:正常,2:冻结,3:销户,4:离职,默认1
* @param statusList
*/
public UserQuery statusList(List<Integer> statusList){
this.statusList = statusList;
return this;
}
/**
* 设置 客户ID
* @param customerId
*/
public UserQuery customerId(Long customerId){
setCustomerId(customerId);
return this;
}
/**
* 设置 开始 客户ID
* @param customerIdStart
*/
public UserQuery customerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
return this;
}
/**
* 设置 结束 客户ID
* @param customerIdEnd
*/
public UserQuery customerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
return this;
}
/**
* 设置 增加 客户ID
* @param customerIdIncrement
*/
public UserQuery customerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
return this;
}
/**
* 设置 客户ID
* @param customerIdList
*/
public UserQuery customerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
return this;
}
/**
* 设置 创建用户
* @param createUserId
*/
public UserQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public UserQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public UserQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public UserQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public UserQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public UserQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public UserQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 设置 最后一次登录地址
* @param lastLoginAddress
*/
public UserQuery lastLoginAddress(String lastLoginAddress){
setLastLoginAddress(lastLoginAddress);
return this;
}
/**
* 设置 最后一次登录地址
* @param lastLoginAddressList
*/
public UserQuery lastLoginAddressList(List<String> lastLoginAddressList){
this.lastLoginAddressList = lastLoginAddressList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<UserQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<UserQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<UserQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<UserQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.user.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.framework.service.IUser;
import com.mortals.xhx.module.user.model.UserEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 用户信息业务视图对象
*
* @author zxfei
* @date 2022-05-25
*/
@Data
public class UserVo extends BaseEntityLong {
/**
* 站点名称
*/
private String siteName;
/**
* 唯一标识
*/
private String token;
/**
* 菜单栏
*/
private String menuUrl;
/**
* 登录时间
*/
private Long loginTime;
/**
* 过期时间
*/
private Long expireTime;
}
\ No newline at end of file
package com.mortals.xhx.module.user.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Result;
import com.mortals.framework.service.ICRUDService;
import com.mortals.framework.service.IUser;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.user.model.UserEntity;
import java.util.List;
import java.util.Set;
/**
* UserService
*
* 用户信息业务 service接口
*
* @author zxfei
* @date 2022-05-25
*/
public interface UserService extends ICRUDService<UserEntity,Long>{
/**
* 用户登录
*
* @param loginName 登录用户名
* @param password 登录密码
* @param loginIp 登录IP
* @return
* @throws AppException
*/
UserEntity doLogin(String loginName, String password, String loginIp) throws AppException;
/**
* 校验用户名与密码是否正确
*
* @param loginName
* @param password
* @return
* @throws AppException
*/
UserEntity doCheckUser(String loginName, String password) throws AppException;
/**
* 检查用户是否存在
*
* @param loginName 登录用户名
* @param userId 密码
* @return
*/
boolean existUser(String loginName, Long userId) throws AppException;
/**
* 通过登录用户获取菜单功能权限
*
* @param user
* @return
*/
List<MenuEntity> findOutlookBarList(IUser user);
/**
* 查询用户所有有权限的菜单ID
*
* @param userEntity
* @return
*/
Set<Long> findAllAuthIds(UserEntity userEntity) throws AppException;
/**
* 查询用户记录
*
* @param platformId
* @param params
* @param currPage
* @param prePageResult
* @return
* @throws AppException
*/
Result<UserEntity> find(Long platformId, UserEntity params, int currPage, int prePageResult) throws AppException;
/**
* 为客户创建用户
*
* @param currUser 当前用户
* @param customerId 客户ID
* @param customerName 客户名称
* @param loginName
* @param password
* @param userName
* @param mobile
* @return
* @throws AppException
*/
UserEntity createUser(IUser currUser, Long customerId, String customerName, String loginName, String password,
String userName, String mobile) throws AppException;
/**
* 用户修改密码
*
* @param loginName
* @param oldPwd
* @param newPwd
* @return
* @throws AppException
*/
boolean updateUserPwd(String loginName, String oldPwd, String newPwd) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.user.service.impl;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.code.UserType;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.service.IUser;
import com.mortals.framework.util.SecurityUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.module.menu.model.MenuEntity;
import com.mortals.xhx.module.menu.service.MenuService;
import com.mortals.xhx.module.resource.model.ResourceEntity;
import com.mortals.xhx.module.resource.service.ResourceService;
import com.mortals.xhx.module.user.model.UserQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.user.dao.UserDao;
import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.service.UserService;
import org.springframework.util.ObjectUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* UserService
* 用户信息业务 service实现
*
* @author zxfei
* @date 2022-05-25
*/
@Service("userService")
public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity, Long> implements UserService {
@Autowired
private MenuService menuService;
@Autowired
private ResourceService resourceService;
private void doHandlerUser(UserEntity entity) throws AppException {
if (StringUtils.isNotEmpty(entity.getLoginPwd())) {
try {
entity.setLoginPwd(SecurityUtil.md5DoubleEncoding(entity.getLoginPwd()));
} catch (Exception e) {
throw new AppException("密码转换异常");
}
} else {
entity.setLoginPwd(null);
}
// if (entity.isSystemUser()) {
// entity.setUserType(UserType.SYSTEM.getValue());
// } else {
// entity.setUserType(UserType.CUSTOMER.getValue());
// }
}
@Override
protected void saveBefore(UserEntity entity, Context context) throws AppException {
this.doHandlerUser(entity);
}
@Override
protected void updateBefore(UserEntity entity, Context context) throws AppException {
if (entity.getId().longValue() == SysConstains.ADMIN_ID && !context.getUser().isAdmin()) {
throw new AppException("你没有权限执行该操作");
}
this.doHandlerUser(entity);
}
@Override
protected UserEntity findBefore(UserEntity params, Context context) throws AppException {
// if (StringUtils.isNotEmpty(params.getDeptIds())) {
// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ","));
// }
return super.findBefore(params, context);
}
@Override
protected UserEntity findBefore(UserEntity params, PageInfo pageInfo, Context context) throws AppException {
// if (StringUtils.isNotEmpty(params.getDeptIds())) {
// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ","));
// }
return super.findBefore(params, pageInfo, context);
}
public UserEntity findByLoginName(String loginName) {
UserQuery params = new UserQuery();
params.setLoginName(loginName);
return this.selectOne(params);
}
@Override
public UserEntity doLogin(String loginName, String password, String loginIp) throws AppException {
UserEntity sysUser = this.findByLoginName(loginName);
if (sysUser == null || !sysUser.getLoginName().equals(loginName)) {
throw new AppException("用户名不存在!");
}
try {
if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(password))) {
throw new AppException("登录密码错误!");
}
} catch (Exception e) {
throw new AppException("密码验认出错!", e);
}
return sysUser;
}
@Override
public UserEntity doCheckUser(String loginName, String password) throws AppException {
UserEntity sysUser = this.findByLoginName(loginName);
if (sysUser == null || !sysUser.getLoginName().equals(loginName)) {
return null;
}
try {
if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(password))) {
return null;
}
} catch (Exception e) {
return null;
}
return sysUser;
}
@Override
public Set<Long> findAllAuthIds(UserEntity userEntity) throws AppException {
Set<Long> authIds = new HashSet<Long>();
if (userEntity.isAdmin()) {
return authIds;
}
authIds.addAll(dao.getAuthListById(userEntity.getId()));
return authIds;
}
@Override
public List<MenuEntity> findOutlookBarList(IUser user) {
Set<String> urls = new HashSet<String>();
if (!user.isAdmin()) {
List<ResourceEntity> resList = resourceService.findListByUserId(user.getId());
for (ResourceEntity res : resList) {
String url = res.getUrl();
if (StringUtils.isEmpty(url)) {
continue;
}
url = url.replaceAll(",", ",");
urls.addAll(StringUtils.converStr2Set(url));
}
}
Set<Long> authIds = new HashSet<Long>();
Map<Long, MenuEntity> menuMap = new HashMap<Long, MenuEntity>();
List<MenuEntity> userModuleList = this.menuService.findAllEnable();
for (MenuEntity sysModule : userModuleList) {
if (sysModule == null) {
continue;
}
menuMap.put(sysModule.getId(), sysModule);
if (!user.isAdmin() && urls.contains(StringUtils.trim(sysModule.getUrl()))) {
authIds.add(sysModule.getId());
}
}
if (!user.isAdmin()) {
Long[] ids = authIds.toArray(new Long[authIds.size()]);
for (Long id : ids) {
MenuEntity menu = menuMap.get(id);
while (menu != null) {
authIds.add(menu.getId());
menu = menuMap.get(menu.getParentId());
}
}
}
List<MenuEntity> outlookBar = new ArrayList<MenuEntity>();
List<MenuEntity> norightList = new ArrayList<MenuEntity>();
for (MenuEntity sysModule : userModuleList) {
if (!user.isAdmin() && !authIds.contains(sysModule.getId())) {
norightList.add(sysModule);
continue;
}
if (sysModule.getParentId() == null || sysModule.getParentId().longValue() == 0) {
outlookBar.add(sysModule);
continue;
}
MenuEntity sysModuleParent = menuMap.get(sysModule.getParentId());
if (sysModuleParent != null) {
sysModuleParent.getChildList().add(sysModule);
}
}
return outlookBar;
}
@Override
public Result<UserEntity> find(Long platformId, UserEntity params, int currPage, int prePageResult) throws AppException {
PageInfo pageInfo = new PageInfo(prePageResult);
pageInfo.setCurrPage(currPage);
return super.find(params, pageInfo, null);
}
@Override
public UserEntity createUser(IUser currUser, Long customerId, String customerName, String loginName, String password,
String userName, String mobile) throws AppException {
try {
UserEntity entity = new UserEntity();
entity.initAttrValue();
entity.setLoginName(loginName);
entity.setRealName(userName);
entity.setCustomerId(customerId);
entity.setLoginPwd(password);
entity.setMobile(mobile);
entity.setUserType(UserType.CUSTOMER.getValue());
entity.setCreateTime(new Date());
if (currUser != null) {
entity.setCreateUser(currUser.getLoginName());
entity.setCreateUserName(currUser.getRealName());
}
this.doHandlerUser(entity);
dao.insert(entity);
return entity;
} catch (Exception e) {
log.error("给客户创建用户异常-->customerId:" + customerId + ",customerName:" + customerName + ",loginName:" + loginName +
"-->原因:" + e.getMessage());
return null;
}
}
@Override
public boolean existUser(String loginName, Long userId) throws AppException {
UserEntity sysUser = this.findByLoginName(loginName);
boolean bRet = false;
if (sysUser != null) {
if (userId == null || userId == 0 || userId.longValue() != sysUser.getId().longValue()) {
bRet = true;
}
}
return bRet;
}
@Override
public boolean updateUserPwd(String loginName, String oldPwd, String newPwd) throws AppException {
UserEntity sysUser = this.findByLoginName(loginName);
if (sysUser == null || !sysUser.getLoginName().equals(loginName)) {
throw new AppException("帐号错误!");
}
try {
if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(oldPwd))) {
throw new AppException("原始密码错误!");
}
} catch (Exception e) {
throw new AppException("密码验认出错!", e);
}
try {
sysUser.setLoginPwd(SecurityUtil.md5DoubleEncoding(newPwd));
// sysUser.setLoginPwd3(sysUser.getLoginPwd2());
// sysUser.setLoginPwd2(sysUser.getLoginPwd1());
// sysUser.setLoginPwd1(sysUser.getLoginPwd());
// sysUser.setLastModPwdTime(new Date());
} catch (Exception e) {
throw new AppException("密码转换异常!", e);
}
dao.update(sysUser);
return true;
}
@Override
protected void findAfter(UserEntity params, PageInfo pageInfo, Context context, List<UserEntity> list) throws AppException {
super.findAfter(params, pageInfo, context, list);
// list.stream().peek(item->{
// if(!ObjectUtils.isEmpty(item.getSiteId())&&item.getSiteId()!=0L){
// item.setSiteName(siteService.get(item.getSiteId()).getSiteName());
// }
// }).count();
}
}
\ No newline at end of file
package com.mortals.xhx.module.user.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.model.UserQuery;
import com.mortals.xhx.module.user.service.UserService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
* 用户信息业务
*
* @author zxfei
* @date 2022-05-25
*/
@RestController
@RequestMapping("user")
public class UserController extends BaseCRUDJsonBodyMappingController<UserService, UserEntity, Long> {
@Autowired
private ParamService paramService;
public UserController() {
super.setFormClass(UserForm.class);
super.setModuleDesc("用户信息业务");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "userType", paramService.getParamBySecondOrganize("User", "userType"));
this.addDict(model, "status", paramService.getParamBySecondOrganize("User", "status"));
super.init(model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.user.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.module.user.model.UserEntity;
import com.mortals.xhx.module.user.model.UserQuery;
/**
* User
*
* 用户信息业务 Form
*
* @author zxfei
* @date 2022-05-25
*/
public class UserForm extends BaseCRUDFormLong<UserEntity> {
private UserEntity entity = new UserEntity();
private UserQuery query = new UserQuery();
public UserForm(){
}
@Override
public UserEntity getEntity() {
return entity;
}
public void setUser(UserEntity entity) {
this.entity = entity;
}
@Override
public UserQuery getQuery() {
return query;
}
public void setQuery(UserQuery query) {
this.query = query;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment