master
wangbing 4 years ago
parent de9073b787
commit 1deac6bb49

Binary file not shown.

@ -13,54 +13,54 @@ import xyz.wbsite.frame.base.BaseResponse;
import xyz.wbsite.frame.utils.ResponseUtil;
import xyz.wbsite.frame.utils.ValidationUtil;
import xyz.wbsite.frame.excel.exception.TemplateNotMatchException;
import xyz.wbsite.module.admin.ent.Config;
import xyz.wbsite.module.admin.mgr.ConfigManager;
import xyz.wbsite.module.admin.req.ConfigCreateRequest;
import xyz.wbsite.module.admin.req.ConfigDeleteRequest;
import xyz.wbsite.module.admin.req.ConfigFindRequest;
import xyz.wbsite.module.admin.req.ConfigUpdateRequest;
import xyz.wbsite.module.admin.rsp.ConfigCreateResponse;
import xyz.wbsite.module.admin.rsp.ConfigDeleteResponse;
import xyz.wbsite.module.admin.rsp.ConfigFindResponse;
import xyz.wbsite.module.admin.rsp.ConfigUpdateResponse;
import xyz.wbsite.module.admin.ent.Rules;
import xyz.wbsite.module.admin.mgr.RulesManager;
import xyz.wbsite.module.admin.req.RulesCreateRequest;
import xyz.wbsite.module.admin.req.RulesDeleteRequest;
import xyz.wbsite.module.admin.req.RulesFindRequest;
import xyz.wbsite.module.admin.req.RulesUpdateRequest;
import xyz.wbsite.module.admin.rsp.RulesCreateResponse;
import xyz.wbsite.module.admin.rsp.RulesDeleteResponse;
import xyz.wbsite.module.admin.rsp.RulesFindResponse;
import xyz.wbsite.module.admin.rsp.RulesUpdateResponse;
import java.io.IOException;
import java.util.List;
public class ConfigAjax{
public class RulesAjax{
@Autowired
private ConfigManager configManager;
private RulesManager rulesManager;
public ConfigCreateResponse create(ConfigCreateRequest request) {
return configManager.create(request, LocalData.getToken());
public RulesCreateResponse create(RulesCreateRequest request) {
return rulesManager.create(request, LocalData.getToken());
}
public ConfigDeleteResponse delete(ConfigDeleteRequest request) {
return configManager.delete(request, LocalData.getToken());
public RulesDeleteResponse delete(RulesDeleteRequest request) {
return rulesManager.delete(request, LocalData.getToken());
}
public ConfigUpdateResponse update(ConfigUpdateRequest request) {
return configManager.update(request, LocalData.getToken());
public RulesUpdateResponse update(RulesUpdateRequest request) {
return rulesManager.update(request, LocalData.getToken());
}
public ConfigFindResponse find(ConfigFindRequest request) {
return configManager.find(request, LocalData.getToken());
public RulesFindResponse find(RulesFindRequest request) {
return rulesManager.find(request, LocalData.getToken());
}
public Object template(){
return ResponseUtil.apply(new WExcel<>(Config.class));
return ResponseUtil.apply(new WExcel<>(Rules.class));
}
public Object exports(ConfigFindRequest request) {
ConfigFindResponse response = configManager.find(request, LocalData.getToken());
public Object exports(RulesFindRequest request) {
RulesFindResponse response = rulesManager.find(request, LocalData.getToken());
if (response.hasError()) {
return response;
} else if (response.getTotalCount() == 0) {
response.addError(ErrorType.BUSINESS_ERROR, "导出数据为空");
return response;
}
return ResponseUtil.apply(new WExcel<>(Config.class).addDatas(response.getResult()));
return ResponseUtil.apply(new WExcel<>(Rules.class).addDatas(response.getResult()));
}
public Object imports(MultipartFile file) {
@ -74,15 +74,15 @@ public class ConfigAjax{
}
// 兼容2003以前老版本.xls
ExcelTypeEnum excelTypeEnum = originalFilename.matches(".+(.xlsx|.XLSX)$") ? ExcelTypeEnum.XLSX : ExcelTypeEnum.XLS;
WExcel sheet = new WExcel<>(Config.class).read(file.getBytes(), excelTypeEnum, new WExcel.Processor<Config>() {
WExcel sheet = new WExcel<>(Rules.class).read(file.getBytes(), excelTypeEnum, new WExcel.Processor<Rules>() {
@Override
public List<String> exec(Config o, int index) {
ConfigCreateRequest request = MapperUtil.map(o, ConfigCreateRequest.class);
public List<String> exec(Rules o, int index) {
RulesCreateRequest request = MapperUtil.map(o, RulesCreateRequest.class);
List<String> validate = ValidationUtil.validate(request);
if (validate == null || validate.size() == 0) {
ConfigCreateResponse configCreateResponse = configManager.create(request, LocalData.getToken());
if (configCreateResponse.hasError()) {
for (Error error : configCreateResponse.getErrors()) {
RulesCreateResponse rulesCreateResponse = rulesManager.create(request, LocalData.getToken());
if (rulesCreateResponse.hasError()) {
for (Error error : rulesCreateResponse.getErrors()) {
validate.add(error.getMessage());
}
}

@ -1,89 +0,0 @@
package xyz.wbsite.module.admin.ent;
import xyz.wbsite.frame.excel.annotation.ExcelNote;
import xyz.wbsite.frame.excel.annotation.ExcelSelect;
import com.alibaba.excel.annotation.ExcelProperty;
import xyz.wbsite.frame.excel.annotation.ExcelSheet;
import xyz.wbsite.frame.base.BaseEntity;
/**
* CONFIG -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
@ExcelSheet("配置预设")
public class Config extends BaseEntity {
/**
* CONF_NAME -
*/
@ExcelProperty("配置名称")
@ExcelNote("")
private String confName;
/**
* CONF_TYPE -
*/
@ExcelProperty("配置类型")
@ExcelNote("")
private String confType;
/**
* CONF_KEY -
*/
@ExcelProperty("配置属名")
@ExcelNote("")
private String confKey;
/**
* CONF_VALUE -
*/
@ExcelProperty("配置属值")
@ExcelNote("")
private String confValue;
/**
* CONF_NOTE -
*/
@ExcelProperty("配置备注")
@ExcelNote("")
private String confNote;
public String getConfName() {
return this.confName;
}
public void setConfName(String confName) {
this.confName = confName;
}
public String getConfType() {
return this.confType;
}
public void setConfType(String confType) {
this.confType = confType;
}
public String getConfKey() {
return this.confKey;
}
public void setConfKey(String confKey) {
this.confKey = confKey;
}
public String getConfValue() {
return this.confValue;
}
public void setConfValue(String confValue) {
this.confValue = confValue;
}
public String getConfNote() {
return this.confNote;
}
public void setConfNote(String confNote) {
this.confNote = confNote;
}
}

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseEntity;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigData extends BaseEntity {
@ -16,13 +16,13 @@ public class ConfigData extends BaseEntity {
*/
private Long targetId;
/**
* CONF_NAME -
* RULE_ID -
*/
private String confName;
private Long ruleId;
/**
* CONF_TYPE -
* CONF_NAME -
*/
private String confType;
private String confName;
/**
* CONF_VALUE -
*/
@ -40,20 +40,20 @@ public class ConfigData extends BaseEntity {
this.targetId = targetId;
}
public String getConfName() {
return this.confName;
public Long getRuleId() {
return this.ruleId;
}
public void setConfName(String confName) {
this.confName = confName;
public void setRuleId(Long ruleId) {
this.ruleId = ruleId;
}
public String getConfType() {
return this.confType;
public String getConfName() {
return this.confName;
}
public void setConfType(String confType) {
this.confType = confType;
public void setConfName(String confName) {
this.confName = confName;
}
public String getConfValue() {

@ -11,7 +11,7 @@ import xyz.wbsite.frame.base.BaseEntity;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
@ExcelSheet("路径配置")
public class Locations extends BaseEntity {

@ -0,0 +1,117 @@
package xyz.wbsite.module.admin.ent;
import xyz.wbsite.frame.excel.annotation.ExcelNote;
import xyz.wbsite.frame.excel.annotation.ExcelSelect;
import com.alibaba.excel.annotation.ExcelProperty;
import xyz.wbsite.frame.excel.annotation.ExcelSheet;
import xyz.wbsite.frame.base.BaseEntity;
/**
* RULES -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
@ExcelSheet("配置规则")
public class Rules extends BaseEntity {
/**
* RULE_FOR -
*/
@ExcelProperty("规则目标")
@ExcelNote("")
private String ruleFor;
/**
* RULE_TITLE -
*/
@ExcelProperty("规则标题")
@ExcelNote("")
private String ruleTitle;
/**
* RULE_NAME -
*/
@ExcelProperty("规则名称")
@ExcelNote("")
private String ruleName;
/**
* RULE_VALUE -
*/
@ExcelProperty("规则属值")
@ExcelNote("")
private String ruleValue;
/**
* VALUE_DEFAULT -
*/
@ExcelProperty("默认属值")
@ExcelNote("")
private String valueDefault;
/**
* VALUE_REGEX -
*/
@ExcelProperty("属值正则")
@ExcelNote("")
private String valueRegex;
/**
* RULE_NOTE -
*/
@ExcelProperty("规则描述")
@ExcelNote("")
private String ruleNote;
public String getRuleFor() {
return this.ruleFor;
}
public void setRuleFor(String ruleFor) {
this.ruleFor = ruleFor;
}
public String getRuleTitle() {
return this.ruleTitle;
}
public void setRuleTitle(String ruleTitle) {
this.ruleTitle = ruleTitle;
}
public String getRuleName() {
return this.ruleName;
}
public void setRuleName(String ruleName) {
this.ruleName = ruleName;
}
public String getRuleValue() {
return this.ruleValue;
}
public void setRuleValue(String ruleValue) {
this.ruleValue = ruleValue;
}
public String getValueDefault() {
return this.valueDefault;
}
public void setValueDefault(String valueDefault) {
this.valueDefault = valueDefault;
}
public String getValueRegex() {
return this.valueRegex;
}
public void setValueRegex(String valueRegex) {
this.valueRegex = valueRegex;
}
public String getRuleNote() {
return this.ruleNote;
}
public void setRuleNote(String ruleNote) {
this.ruleNote = ruleNote;
}
}

@ -11,7 +11,7 @@ import xyz.wbsite.frame.base.BaseEntity;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
@ExcelSheet("虚拟主机")
public class Services extends BaseEntity {

@ -15,7 +15,7 @@ import xyz.wbsite.frame.base.Token;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public interface ConfigDataManager {

@ -28,7 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
@Transactional
@Service

@ -1,57 +0,0 @@
package xyz.wbsite.module.admin.mgr;
import xyz.wbsite.module.admin.req.ConfigCreateRequest;
import xyz.wbsite.module.admin.req.ConfigDeleteRequest;
import xyz.wbsite.module.admin.req.ConfigFindRequest;
import xyz.wbsite.module.admin.req.ConfigUpdateRequest;
import xyz.wbsite.module.admin.rsp.ConfigCreateResponse;
import xyz.wbsite.module.admin.rsp.ConfigDeleteResponse;
import xyz.wbsite.module.admin.rsp.ConfigFindResponse;
import xyz.wbsite.module.admin.rsp.ConfigUpdateResponse;
import xyz.wbsite.frame.base.Token;
/**
*
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public interface ConfigManager {
/**
*
*
* @param request
* @param token
* @return
*/
ConfigCreateResponse create(ConfigCreateRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
ConfigDeleteResponse delete(ConfigDeleteRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
ConfigUpdateResponse update(ConfigUpdateRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
ConfigFindResponse find(ConfigFindRequest request, Token token);
}

@ -15,7 +15,7 @@ import xyz.wbsite.frame.base.Token;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public interface LocationsManager {

@ -28,7 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
@Transactional
@Service

@ -0,0 +1,57 @@
package xyz.wbsite.module.admin.mgr;
import xyz.wbsite.module.admin.req.RulesCreateRequest;
import xyz.wbsite.module.admin.req.RulesDeleteRequest;
import xyz.wbsite.module.admin.req.RulesFindRequest;
import xyz.wbsite.module.admin.req.RulesUpdateRequest;
import xyz.wbsite.module.admin.rsp.RulesCreateResponse;
import xyz.wbsite.module.admin.rsp.RulesDeleteResponse;
import xyz.wbsite.module.admin.rsp.RulesFindResponse;
import xyz.wbsite.module.admin.rsp.RulesUpdateResponse;
import xyz.wbsite.frame.base.Token;
/**
*
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public interface RulesManager {
/**
*
*
* @param request
* @param token
* @return
*/
RulesCreateResponse create(RulesCreateRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
RulesDeleteResponse delete(RulesDeleteRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
RulesUpdateResponse update(RulesUpdateRequest request, Token token);
/**
*
*
* @param request
* @param token
* @return
*/
RulesFindResponse find(RulesFindRequest request, Token token);
}

@ -6,16 +6,16 @@ import xyz.wbsite.frame.base.ErrorType;
import xyz.wbsite.frame.base.Token;
import xyz.wbsite.frame.utils.MapperUtil;
import xyz.wbsite.frame.utils.ValidationUtil;
import xyz.wbsite.module.admin.ent.Config;
import xyz.wbsite.module.admin.mpr.ConfigMapper;
import xyz.wbsite.module.admin.req.ConfigCreateRequest;
import xyz.wbsite.module.admin.req.ConfigDeleteRequest;
import xyz.wbsite.module.admin.req.ConfigFindRequest;
import xyz.wbsite.module.admin.req.ConfigUpdateRequest;
import xyz.wbsite.module.admin.rsp.ConfigCreateResponse;
import xyz.wbsite.module.admin.rsp.ConfigDeleteResponse;
import xyz.wbsite.module.admin.rsp.ConfigFindResponse;
import xyz.wbsite.module.admin.rsp.ConfigUpdateResponse;
import xyz.wbsite.module.admin.ent.Rules;
import xyz.wbsite.module.admin.mpr.RulesMapper;
import xyz.wbsite.module.admin.req.RulesCreateRequest;
import xyz.wbsite.module.admin.req.RulesDeleteRequest;
import xyz.wbsite.module.admin.req.RulesFindRequest;
import xyz.wbsite.module.admin.req.RulesUpdateRequest;
import xyz.wbsite.module.admin.rsp.RulesCreateResponse;
import xyz.wbsite.module.admin.rsp.RulesDeleteResponse;
import xyz.wbsite.module.admin.rsp.RulesFindResponse;
import xyz.wbsite.module.admin.rsp.RulesUpdateResponse;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.util.StringUtil;
@ -24,7 +24,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* CONFIG -
* RULES -
*
* @author wangbing
* @version 0.0.1
@ -32,10 +32,10 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Transactional
@Service
public class ConfigManagerImpl implements ConfigManager {
public class RulesManagerImpl implements RulesManager {
@Autowired
private ConfigMapper configMapper;
private RulesMapper rulesMapper;
/**
*
@ -44,32 +44,45 @@ public class ConfigManagerImpl implements ConfigManager {
* @param token
* @return
*/
public ConfigCreateResponse create(ConfigCreateRequest request, Token token) {
ConfigCreateResponse response = new ConfigCreateResponse();
public RulesCreateResponse create(RulesCreateRequest request, Token token) {
RulesCreateResponse response = new RulesCreateResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
{// 配置名称唯一检查
ConfigFindRequest configFindRequest = new ConfigFindRequest();
configFindRequest.setConfName(request.getConfName());
ConfigFindResponse configFindResponse = this.find(configFindRequest, token);
if (configFindResponse.hasError()) {
response.addErrors(configFindResponse.getErrors());
{// 规则目标唯一检查
RulesFindRequest rulesFindRequest = new RulesFindRequest();
rulesFindRequest.setRuleFor(request.getRuleFor());
RulesFindResponse rulesFindResponse = this.find(rulesFindRequest, token);
if (rulesFindResponse.hasError()) {
response.addErrors(rulesFindResponse.getErrors());
return response;
} else if (configFindResponse.getTotalCount() > 0) {
response.addError(ErrorType.UNIQUENESS_ERROR, "[confName]配置名称已存在,请检查!");
} else if (rulesFindResponse.getTotalCount() > 0) {
response.addError(ErrorType.UNIQUENESS_ERROR, "[ruleFor]规则目标已存在,请检查!");
return response;
}
}
{// 规则名称唯一检查
RulesFindRequest rulesFindRequest = new RulesFindRequest();
rulesFindRequest.setRuleName(request.getRuleName());
RulesFindResponse rulesFindResponse = this.find(rulesFindRequest, token);
if (rulesFindResponse.hasError()) {
response.addErrors(rulesFindResponse.getErrors());
return response;
} else if (rulesFindResponse.getTotalCount() > 0) {
response.addError(ErrorType.UNIQUENESS_ERROR, "[ruleName]规则名称已存在,请检查!");
return response;
}
}
long id = IDgenerator.nextId();
Config entity = MapperUtil.map(request, Config.class);
Rules entity = MapperUtil.map(request, Rules.class);
entity.setId(id);
long result = configMapper.insert(entity, token);
long result = rulesMapper.insert(entity, token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.CREATE_FAILURE);
return response;
@ -86,15 +99,15 @@ public class ConfigManagerImpl implements ConfigManager {
* @param token
* @return
*/
public ConfigDeleteResponse delete(ConfigDeleteRequest request, Token token) {
ConfigDeleteResponse response = new ConfigDeleteResponse();
public RulesDeleteResponse delete(RulesDeleteRequest request, Token token) {
RulesDeleteResponse response = new RulesDeleteResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
long result = configMapper.delete(request.getId(), token);
long result = rulesMapper.delete(request.getId(), token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.DELETE_FAILURE);
return response;
@ -111,22 +124,22 @@ public class ConfigManagerImpl implements ConfigManager {
* @param token
* @return
*/
public ConfigUpdateResponse update(ConfigUpdateRequest request, Token token) {
ConfigUpdateResponse response = new ConfigUpdateResponse();
public RulesUpdateResponse update(RulesUpdateRequest request, Token token) {
RulesUpdateResponse response = new RulesUpdateResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
return response;
}
Config entity = configMapper.getById(request.getId(), token);
Rules entity = rulesMapper.getById(request.getId(), token);
if (entity == null) {
response.addError(ErrorType.BUSINESS_ERROR, Message.GET_FAILURE);
return response;
}
MapperUtil.map(request, entity);
long result = configMapper.update(entity, token);
long result = rulesMapper.update(entity, token);
if (1L != result) {
response.addError(ErrorType.BUSINESS_ERROR, Message.UPDATE_FAILURE);
return response;
@ -144,8 +157,8 @@ public class ConfigManagerImpl implements ConfigManager {
* @return
*/
@Transactional(readOnly = true)
public ConfigFindResponse find(ConfigFindRequest request, Token token) {
ConfigFindResponse response = new ConfigFindResponse();
public RulesFindResponse find(RulesFindRequest request, Token token) {
RulesFindResponse response = new RulesFindResponse();
ValidationUtil.validate(request, response);
if (response.hasError()) {
@ -158,7 +171,7 @@ public class ConfigManagerImpl implements ConfigManager {
if (StringUtil.isNotEmpty(request.getSortKey())) {
PageHelper.orderBy(request.getSortKey() + " " + request.getSortType());
}
PageInfo<Config> pageInfo = new PageInfo<>(configMapper.find(request, token));
PageInfo<Rules> pageInfo = new PageInfo<>(rulesMapper.find(request, token));
response.setResult(pageInfo.getList());
response.setTotalCount(pageInfo.getTotal());

@ -15,7 +15,7 @@ import xyz.wbsite.frame.base.Token;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public interface ServicesManager {

@ -28,7 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
@Transactional
@Service
@ -52,16 +52,41 @@ public class ServicesManagerImpl implements ServicesManager {
return response;
}
{// 主机标题唯一检查
ServicesFindRequest servicesFindRequest = new ServicesFindRequest();
servicesFindRequest.setTitle(request.getTitle());
ServicesFindResponse servicesFindResponse = this.find(servicesFindRequest, token);
if (servicesFindResponse.hasError()) {
response.addErrors(servicesFindResponse.getErrors());
return response;
} else if (servicesFindResponse.getTotalCount() > 0) {
response.addError(ErrorType.UNIQUENESS_ERROR, "[title]主机标题已存在,请检查!");
return response;
}
}
{// 主机域名唯一检查
ServicesFindRequest servicesFindRequest = new ServicesFindRequest();
servicesFindRequest.setDomain(request.getDomain());
ServicesFindResponse servicesFindResponse = this.find(servicesFindRequest, token);
if (servicesFindResponse.hasError()) {
response.addErrors(servicesFindResponse.getErrors());
return response;
} else if (servicesFindResponse.getTotalCount() > 0) {
response.addError(ErrorType.UNIQUENESS_ERROR, "[domain]主机域名已存在,请检查!");
return response;
}
}
{// 服务端口唯一检查
ServicesFindRequest servicesFindRequest = new ServicesFindRequest();
servicesFindRequest.setPort(request.getPort());
ServicesFindResponse servicesFindResponse = this.find(servicesFindRequest, token);
if (servicesFindResponse.hasError()) {
response.addErrors(servicesFindResponse.getErrors());
return response;
} else if (servicesFindResponse.getTotalCount() > 0) {
response.addError(ErrorType.UNIQUENESS_ERROR, "虚拟主机已存在,请检查!");
response.addError(ErrorType.UNIQUENESS_ERROR, "[port]服务端口已存在,请检查!");
return response;
}
}

@ -12,7 +12,7 @@ import java.util.List;
* CONFIG_DATA -
*
* @author wangbing
* @since 2021-02-07
* @since 2021-02-08
*/
@Mapper
public interface ConfigDataMapper {

@ -7,14 +7,14 @@
<sql id="table">"NA_CONFIG_DATA"</sql>
<sql id="entityColumnList">
"ID","TARGET_ID","CONF_NAME","CONF_TYPE","CONF_VALUE","CONF_NOTE","ROW_VERSION","IS_DELETED","CREATE_BY","CREATE_TIME","LAST_UPDATE_BY","LAST_UPDATE_TIME"
"ID","TARGET_ID","RULE_ID","CONF_NAME","CONF_VALUE","CONF_NOTE","ROW_VERSION","IS_DELETED","CREATE_BY","CREATE_TIME","LAST_UPDATE_BY","LAST_UPDATE_TIME"
</sql>
<resultMap id="configData" type="xyz.wbsite.module.admin.ent.ConfigData">
<result column="ID" jdbcType="BIGINT" property="id"/>
<result column="TARGET_ID" jdbcType="BIGINT" property="targetId"/>
<result column="RULE_ID" jdbcType="BIGINT" property="ruleId"/>
<result column="CONF_NAME" jdbcType="VARCHAR" property="confName"/>
<result column="CONF_TYPE" jdbcType="VARCHAR" property="confType"/>
<result column="CONF_VALUE" jdbcType="VARCHAR" property="confValue"/>
<result column="CONF_NOTE" jdbcType="VARCHAR" property="confNote"/>
<result column="ROW_VERSION" jdbcType="BIGINT" property="rowVersion"/>
@ -35,8 +35,8 @@
(
#{request.id},
#{request.targetId,jdbcType=BIGINT},
#{request.ruleId,jdbcType=BIGINT},
#{request.confName,jdbcType=VARCHAR},
#{request.confType,jdbcType=VARCHAR},
#{request.confValue,jdbcType=VARCHAR},
#{request.confNote,jdbcType=VARCHAR},
0,
@ -58,8 +58,8 @@
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item.id},
#{item.targetId,jdbcType=BIGINT},
#{item.ruleId,jdbcType=BIGINT},
#{item.confName,jdbcType=VARCHAR},
#{item.confType,jdbcType=VARCHAR},
#{item.confValue,jdbcType=VARCHAR},
#{item.confNote,jdbcType=VARCHAR},
0,
@ -95,8 +95,8 @@
<include refid="table"/>
SET
TARGET_ID = #{request.targetId,jdbcType=BIGINT},
RULE_ID = #{request.ruleId,jdbcType=BIGINT},
CONF_NAME = #{request.confName,jdbcType=VARCHAR},
CONF_TYPE = #{request.confType,jdbcType=VARCHAR},
CONF_VALUE = #{request.confValue,jdbcType=VARCHAR},
CONF_NOTE = #{request.confNote,jdbcType=VARCHAR},
"ROW_VERSION" = "ROW_VERSION" + 1,
@ -119,9 +119,6 @@
<if test="request.confName != null and request.confName != ''">
AND "CONF_NAME" = #{request.confName}
</if>
<if test="request.confType != null and request.confType != ''">
AND "CONF_TYPE" = #{request.confType}
</if>
</select>
<select id="find" resultMap="configData">
@ -139,9 +136,6 @@
<if test="request.confNameLike != null and request.confNameLike != ''">
AND "CONF_NAME" LIKE '%'||#{request.confNameLike}||'%'
</if>
<if test="request.confType != null and request.confType != ''">
AND "CONF_TYPE" = #{request.confType}
</if>
<if test="request.confValueLike != null and request.confValueLike != ''">
AND "CONF_VALUE" LIKE '%'||#{request.confValueLike}||'%'
</if>

@ -1,196 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xyz.wbsite.module.admin.mpr.ConfigMapper">
<sql id="table">"NA_CONFIG"</sql>
<sql id="entityColumnList">
"ID","CONF_NAME","CONF_TYPE","CONF_KEY","CONF_VALUE","CONF_NOTE","ROW_VERSION","IS_DELETED","CREATE_BY","CREATE_TIME","LAST_UPDATE_BY","LAST_UPDATE_TIME"
</sql>
<resultMap id="config" type="xyz.wbsite.module.admin.ent.Config">
<result column="ID" jdbcType="BIGINT" property="id"/>
<result column="CONF_NAME" jdbcType="VARCHAR" property="confName"/>
<result column="CONF_TYPE" jdbcType="VARCHAR" property="confType"/>
<result column="CONF_KEY" jdbcType="VARCHAR" property="confKey"/>
<result column="CONF_VALUE" jdbcType="VARCHAR" property="confValue"/>
<result column="CONF_NOTE" jdbcType="VARCHAR" property="confNote"/>
<result column="ROW_VERSION" jdbcType="BIGINT" property="rowVersion"/>
<result column="IS_DELETED" jdbcType="BIT" property="isDeleted"/>
<result column="CREATE_BY" jdbcType="BIGINT" property="createBy"/>
<result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/>
<result column="LAST_UPDATE_BY" jdbcType="BIGINT" property="lastUpdateBy"/>
<result column="LAST_UPDATE_TIME" jdbcType="TIMESTAMP" property="lastUpdateTime"/>
</resultMap>
<insert id="insert">
INSERT INTO
<include refid="table"/>
(
<include refid="entityColumnList"/>
)
VALUES
(
#{request.id},
#{request.confName,jdbcType=VARCHAR},
#{request.confType,jdbcType=VARCHAR},
#{request.confKey,jdbcType=VARCHAR},
#{request.confValue,jdbcType=VARCHAR},
#{request.confNote,jdbcType=VARCHAR},
0,
0,
#{token.userId,jdbcType=NUMERIC},
datetime('now','localtime'),
NULL,
NULL
)
</insert>
<insert id="insertBatch">
INSERT INTO
<include refid="table"/>
(
<include refid="entityColumnList"/>
)
VALUES
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item.id},
#{item.confName,jdbcType=VARCHAR},
#{item.confType,jdbcType=VARCHAR},
#{item.confKey,jdbcType=VARCHAR},
#{item.confValue,jdbcType=VARCHAR},
#{item.confNote,jdbcType=VARCHAR},
0,
0,
#{token.userId,jdbcType=NUMERIC},
datetime('now','localtime'),
NULL,
NULL
</foreach >
</insert>
<update id="delete">
UPDATE
<include refid="table"/>
SET "IS_DELETED" = 1
WHERE "IS_DELETED" = 0
AND "ID" = #{id}
</update>
<update id="deleteBatch">
UPDATE
<include refid="table"/>
SET "IS_DELETED" = 1
WHERE "IS_DELETED" = 0
AND "ID" IN
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</update>
<update id="update">
UPDATE
<include refid="table"/>
SET
CONF_NAME = #{request.confName,jdbcType=VARCHAR},
CONF_TYPE = #{request.confType,jdbcType=VARCHAR},
CONF_KEY = #{request.confKey,jdbcType=VARCHAR},
CONF_VALUE = #{request.confValue,jdbcType=VARCHAR},
CONF_NOTE = #{request.confNote,jdbcType=VARCHAR},
"ROW_VERSION" = "ROW_VERSION" + 1,
"LAST_UPDATE_BY" = #{token.userId},
"LAST_UPDATE_TIME" = datetime('now','localtime')
WHERE "IS_DELETED" = 0
AND "ID" = #{request.id}
AND "ROW_VERSION" = #{request.rowVersion}
</update>
<select id="select" resultMap="config">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
<if test="request.confName != null and request.confName != ''">
AND "CONF_NAME" = #{request.confName}
</if>
<if test="request.confType != null and request.confType != ''">
AND "CONF_TYPE" = #{request.confType}
</if>
<if test="request.confKey != null and request.confKey != ''">
AND "CONF_KEY" = #{request.confKey}
</if>
<if test="request.confValue != null and request.confValue != ''">
AND "CONF_VALUE" = #{request.confValue}
</if>
</select>
<select id="find" resultMap="config">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
<if test="request.confName != null and request.confName != ''">
AND "CONF_NAME" = #{request.confName}
</if>
<if test="request.confNameLike != null and request.confNameLike != ''">
AND "CONF_NAME" LIKE '%'||#{request.confNameLike}||'%'
</if>
<if test="request.confType != null and request.confType != ''">
AND "CONF_TYPE" = #{request.confType}
</if>
<if test="request.confKey != null and request.confKey != ''">
AND "CONF_KEY" = #{request.confKey}
</if>
<if test="request.confKeyLike != null and request.confKeyLike != ''">
AND "CONF_KEY" LIKE '%'||#{request.confKeyLike}||'%'
</if>
<if test="request.confValue != null and request.confValue != ''">
AND "CONF_VALUE" = #{request.confValue}
</if>
<if test="request.confValueLike != null and request.confValueLike != ''">
AND "CONF_VALUE" LIKE '%'||#{request.confValueLike}||'%'
</if>
<if test="request.confNoteLike != null and request.confNoteLike != ''">
AND "CONF_NOTE" LIKE '%'||#{request.confNoteLike}||'%'
</if>
<if test="request.startDate != null">
AND strftime('%s',"CREATE_TIME", 'utc')*1000 &gt;= #{request.startDate}
</if>
<if test="request.endDate != null">
AND strftime('%s',"CREATE_TIME", 'utc')*1000 &lt;= #{request.endDate}
</if>
</select>
<select id="search" resultMap="config">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
</select>
<select id="getById" resultMap="config">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
AND "ID" = #{id}
</select>
<select id="getByIds" resultMap="config">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
AND "ID" IN
<foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper>

@ -12,7 +12,7 @@ import java.util.List;
* LOCATIONS -
*
* @author wangbing
* @since 2021-02-07
* @since 2021-02-08
*/
@Mapper
public interface LocationsMapper {

@ -3,19 +3,19 @@ package xyz.wbsite.module.admin.mpr;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import xyz.wbsite.frame.base.Token;
import xyz.wbsite.module.admin.ent.Config;
import xyz.wbsite.module.admin.req.ConfigFindRequest;
import xyz.wbsite.module.admin.ent.Rules;
import xyz.wbsite.module.admin.req.RulesFindRequest;
import java.util.List;
/**
* CONFIG -
* RULES -
*
* @author wangbing
* @since 2021-02-08
*/
@Mapper
public interface ConfigMapper {
public interface RulesMapper {
/**
*
@ -24,7 +24,7 @@ public interface ConfigMapper {
* @param token
* @return
*/
long insert(@Param("request") Config request, @Param("token") Token token);
long insert(@Param("request") Rules request, @Param("token") Token token);
/**
*
@ -33,7 +33,7 @@ public interface ConfigMapper {
* @param token
* @return
*/
long insertBatch(@Param("list") List<Config> list, @Param("token") Token token);
long insertBatch(@Param("list") List<Rules> list, @Param("token") Token token);
/**
*
@ -60,7 +60,7 @@ public interface ConfigMapper {
* @param token
* @return
*/
long update(@Param("request") Config request, @Param("token") Token token);
long update(@Param("request") Rules request, @Param("token") Token token);
/**
*
@ -69,7 +69,7 @@ public interface ConfigMapper {
* @param token
* @return
*/
List<Config> select(@Param("request") Config request, @Param("token") Token token);
List<Rules> select(@Param("request") Rules request, @Param("token") Token token);
/**
*
@ -78,7 +78,7 @@ public interface ConfigMapper {
* @param token
* @return
*/
List<Config> find(@Param("request") ConfigFindRequest request, @Param("token") Token token);
List<Rules> find(@Param("request") RulesFindRequest request, @Param("token") Token token);
/**
*
@ -87,7 +87,7 @@ public interface ConfigMapper {
* @param token
* @return
*/
Config getById(@Param("id") Long id, @Param("token") Token token);
Rules getById(@Param("id") Long id, @Param("token") Token token);
/**
*
@ -96,5 +96,5 @@ public interface ConfigMapper {
* @param token
* @return
*/
List<Config> getByIds(@Param("ids") Long[] ids, @Param("token") Token token);
List<Rules> getByIds(@Param("ids") Long[] ids, @Param("token") Token token);
}

@ -0,0 +1,216 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="xyz.wbsite.module.admin.mpr.RulesMapper">
<sql id="table">"NA_RULES"</sql>
<sql id="entityColumnList">
"ID","RULE_FOR","RULE_TITLE","RULE_NAME","RULE_VALUE","VALUE_DEFAULT","VALUE_REGEX","RULE_NOTE","ROW_VERSION","IS_DELETED","CREATE_BY","CREATE_TIME","LAST_UPDATE_BY","LAST_UPDATE_TIME"
</sql>
<resultMap id="rules" type="xyz.wbsite.module.admin.ent.Rules">
<result column="ID" jdbcType="BIGINT" property="id"/>
<result column="RULE_FOR" jdbcType="VARCHAR" property="ruleFor"/>
<result column="RULE_TITLE" jdbcType="VARCHAR" property="ruleTitle"/>
<result column="RULE_NAME" jdbcType="VARCHAR" property="ruleName"/>
<result column="RULE_VALUE" jdbcType="VARCHAR" property="ruleValue"/>
<result column="VALUE_DEFAULT" jdbcType="VARCHAR" property="valueDefault"/>
<result column="VALUE_REGEX" jdbcType="VARCHAR" property="valueRegex"/>
<result column="RULE_NOTE" jdbcType="VARCHAR" property="ruleNote"/>
<result column="ROW_VERSION" jdbcType="BIGINT" property="rowVersion"/>
<result column="IS_DELETED" jdbcType="BIT" property="isDeleted"/>
<result column="CREATE_BY" jdbcType="BIGINT" property="createBy"/>
<result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime"/>
<result column="LAST_UPDATE_BY" jdbcType="BIGINT" property="lastUpdateBy"/>
<result column="LAST_UPDATE_TIME" jdbcType="TIMESTAMP" property="lastUpdateTime"/>
</resultMap>
<insert id="insert">
INSERT INTO
<include refid="table"/>
(
<include refid="entityColumnList"/>
)
VALUES
(
#{request.id},
#{request.ruleFor,jdbcType=VARCHAR},
#{request.ruleTitle,jdbcType=VARCHAR},
#{request.ruleName,jdbcType=VARCHAR},
#{request.ruleValue,jdbcType=VARCHAR},
#{request.valueDefault,jdbcType=VARCHAR},
#{request.valueRegex,jdbcType=VARCHAR},
#{request.ruleNote,jdbcType=VARCHAR},
0,
0,
#{token.userId,jdbcType=NUMERIC},
datetime('now','localtime'),
NULL,
NULL
)
</insert>
<insert id="insertBatch">
INSERT INTO
<include refid="table"/>
(
<include refid="entityColumnList"/>
)
VALUES
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item.id},
#{item.ruleFor,jdbcType=VARCHAR},
#{item.ruleTitle,jdbcType=VARCHAR},
#{item.ruleName,jdbcType=VARCHAR},
#{item.ruleValue,jdbcType=VARCHAR},
#{item.valueDefault,jdbcType=VARCHAR},
#{item.valueRegex,jdbcType=VARCHAR},
#{item.ruleNote,jdbcType=VARCHAR},
0,
0,
#{token.userId,jdbcType=NUMERIC},
datetime('now','localtime'),
NULL,
NULL
</foreach >
</insert>
<update id="delete">
UPDATE
<include refid="table"/>
SET "IS_DELETED" = 1
WHERE "IS_DELETED" = 0
AND "ID" = #{id}
</update>
<update id="deleteBatch">
UPDATE
<include refid="table"/>
SET "IS_DELETED" = 1
WHERE "IS_DELETED" = 0
AND "ID" IN
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</update>
<update id="update">
UPDATE
<include refid="table"/>
SET
RULE_FOR = #{request.ruleFor,jdbcType=VARCHAR},
RULE_TITLE = #{request.ruleTitle,jdbcType=VARCHAR},
RULE_NAME = #{request.ruleName,jdbcType=VARCHAR},
RULE_VALUE = #{request.ruleValue,jdbcType=VARCHAR},
VALUE_DEFAULT = #{request.valueDefault,jdbcType=VARCHAR},
VALUE_REGEX = #{request.valueRegex,jdbcType=VARCHAR},
RULE_NOTE = #{request.ruleNote,jdbcType=VARCHAR},
"ROW_VERSION" = "ROW_VERSION" + 1,
"LAST_UPDATE_BY" = #{token.userId},
"LAST_UPDATE_TIME" = datetime('now','localtime')
WHERE "IS_DELETED" = 0
AND "ID" = #{request.id}
AND "ROW_VERSION" = #{request.rowVersion}
</update>
<select id="select" resultMap="rules">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
<if test="request.ruleFor != null and request.ruleFor != ''">
AND "RULE_FOR" = #{request.ruleFor}
</if>
<if test="request.ruleTitle != null and request.ruleTitle != ''">
AND "RULE_TITLE" = #{request.ruleTitle}
</if>
<if test="request.ruleName != null and request.ruleName != ''">
AND "RULE_NAME" = #{request.ruleName}
</if>
<if test="request.ruleValue != null and request.ruleValue != ''">
AND "RULE_VALUE" = #{request.ruleValue}
</if>
<if test="request.valueDefault != null and request.valueDefault != ''">
AND "VALUE_DEFAULT" = #{request.valueDefault}
</if>
<if test="request.valueRegex != null and request.valueRegex != ''">
AND "VALUE_REGEX" = #{request.valueRegex}
</if>
</select>
<select id="find" resultMap="rules">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
<if test="request.ruleFor != null and request.ruleFor != ''">
AND "RULE_FOR" = #{request.ruleFor}
</if>
<if test="request.ruleTitle != null and request.ruleTitle != ''">
AND "RULE_TITLE" = #{request.ruleTitle}
</if>
<if test="request.ruleTitleLike != null and request.ruleTitleLike != ''">
AND "RULE_TITLE" LIKE '%'||#{request.ruleTitleLike}||'%'
</if>
<if test="request.ruleName != null and request.ruleName != ''">
AND "RULE_NAME" = #{request.ruleName}
</if>
<if test="request.ruleNameLike != null and request.ruleNameLike != ''">
AND "RULE_NAME" LIKE '%'||#{request.ruleNameLike}||'%'
</if>
<if test="request.ruleValue != null and request.ruleValue != ''">
AND "RULE_VALUE" = #{request.ruleValue}
</if>
<if test="request.ruleValueLike != null and request.ruleValueLike != ''">
AND "RULE_VALUE" LIKE '%'||#{request.ruleValueLike}||'%'
</if>
<if test="request.valueDefault != null and request.valueDefault != ''">
AND "VALUE_DEFAULT" = #{request.valueDefault}
</if>
<if test="request.valueRegex != null and request.valueRegex != ''">
AND "VALUE_REGEX" = #{request.valueRegex}
</if>
<if test="request.ruleNoteLike != null and request.ruleNoteLike != ''">
AND "RULE_NOTE" LIKE '%'||#{request.ruleNoteLike}||'%'
</if>
<if test="request.startDate != null">
AND strftime('%s',"CREATE_TIME", 'utc')*1000 &gt;= #{request.startDate}
</if>
<if test="request.endDate != null">
AND strftime('%s',"CREATE_TIME", 'utc')*1000 &lt;= #{request.endDate}
</if>
</select>
<select id="search" resultMap="rules">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
</select>
<select id="getById" resultMap="rules">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
AND "ID" = #{id}
</select>
<select id="getByIds" resultMap="rules">
SELECT
<include refid="entityColumnList"/>
FROM
<include refid="table"/>
WHERE "IS_DELETED" = 0
AND "ID" IN
<foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper>

@ -12,7 +12,7 @@ import java.util.List;
* SERVICES -
*
* @author wangbing
* @since 2021-02-07
* @since 2021-02-08
*/
@Mapper
public interface ServicesMapper {

@ -1,94 +0,0 @@
package xyz.wbsite.module.admin.req;
import xyz.wbsite.frame.base.BaseRequest;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import org.hibernate.validator.constraints.Length;
import xyz.wbsite.frame.validation.Select;
/**
* ConfigCreateRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public class ConfigCreateRequest extends BaseRequest {
/**
* .
*/
@NotBlank(message = "[confName]配置名称不能为空")
@Length(min = 0, max = 50, message = "[confName]配置名称长度不合法(0-50)")
private String confName;
/**
* .
* HTTP:
* SERVER:
* LOCATION:
*/
@NotNull(message = "[confType]配置类型不能为NULL")
@Select({"HTTP", "SERVER", "LOCATION"})
private String confType;
/**
* .
*/
@NotBlank(message = "[confKey]配置属名不能为空")
@Length(min = 0, max = 50, message = "[confKey]配置属名长度不合法(0-50)")
private String confKey;
/**
* .
*/
@NotBlank(message = "[confValue]配置属值不能为空")
@Length(min = 0, max = 255, message = "[confValue]配置属值长度不合法(0-255)")
private String confValue;
/**
* .
*/
@Length(min = 0, max = 255, message = "[confNote]配置备注长度不合法(0-255)")
private String confNote;
public String getConfName() {
return this.confName;
}
public void setConfName(String confName) {
this.confName = confName;
}
public String getConfType() {
return this.confType;
}
public void setConfType(String confType) {
this.confType = confType;
}
public String getConfKey() {
return this.confKey;
}
public void setConfKey(String confKey) {
this.confKey = confKey;
}
public String getConfValue() {
return this.confValue;
}
public void setConfValue(String confValue) {
this.confValue = confValue;
}
public String getConfNote() {
return this.confNote;
}
public void setConfNote(String confNote) {
this.confNote = confNote;
}
}

@ -4,14 +4,13 @@ import xyz.wbsite.frame.base.BaseRequest;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import org.hibernate.validator.constraints.Length;
import xyz.wbsite.frame.validation.Select;
/**
* ConfigDataCreateRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDataCreateRequest extends BaseRequest {
@ -22,27 +21,22 @@ public class ConfigDataCreateRequest extends BaseRequest {
private Long targetId;
/**
* .
* .
*/
@NotBlank(message = "[confName]配置名称不能为空")
@Length(min = 0, max = 50, message = "[confName]配置名称长度不合法(0-50)")
private String confName;
private Long ruleId;
/**
* .
* HTTP:
* SERVER:
* LOCATION:
* .
*/
@NotNull(message = "[confType]配置类型不能为NULL")
@Select({"HTTP", "SERVER", "LOCATION"})
private String confType;
@NotBlank(message = "[confName]配置名称不能为空")
@Length(min = 0, max = 100, message = "[confName]配置名称长度不合法(0-100)")
private String confName;
/**
* .
*/
@NotBlank(message = "[confValue]配置属值不能为空")
@Length(min = 0, max = 255, message = "[confValue]配置属值长度不合法(0-255)")
@Length(min = 0, max = 100, message = "[confValue]配置属值长度不合法(0-100)")
private String confValue;
/**
@ -59,20 +53,20 @@ public class ConfigDataCreateRequest extends BaseRequest {
this.targetId = targetId;
}
public String getConfName() {
return this.confName;
public Long getRuleId() {
return this.ruleId;
}
public void setConfName(String confName) {
this.confName = confName;
public void setRuleId(Long ruleId) {
this.ruleId = ruleId;
}
public String getConfType() {
return this.confType;
public String getConfName() {
return this.confName;
}
public void setConfType(String confType) {
this.confType = confType;
public void setConfName(String confName) {
this.confName = confName;
}
public String getConfValue() {

@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDataDeleteRequest extends BaseRequest {

@ -2,14 +2,13 @@ package xyz.wbsite.module.admin.req;
import xyz.wbsite.frame.base.BaseFindRequest;
import java.util.Date;
import xyz.wbsite.frame.validation.Select;
/**
* ConfigDataFindRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDataFindRequest extends BaseFindRequest {
@ -28,15 +27,6 @@ public class ConfigDataFindRequest extends BaseFindRequest {
*/
private String confNameLike;
/**
* .
* HTTP:
* SERVER:
* LOCATION:
*/
@Select({"HTTP", "SERVER", "LOCATION"})
private String confType;
/**
* .
*/
@ -81,14 +71,6 @@ public class ConfigDataFindRequest extends BaseFindRequest {
this.confNameLike = confNameLike;
}
public String getConfType() {
return this.confType;
}
public void setConfType(String confType) {
this.confType = confType;
}
public String getConfValueLike() {
return this.confValueLike;
}

@ -5,14 +5,13 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;
import xyz.wbsite.frame.validation.Select;
/**
* ConfigDataUpdateRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDataUpdateRequest extends BaseUpdateRequest {
@ -29,27 +28,22 @@ public class ConfigDataUpdateRequest extends BaseUpdateRequest {
private Long targetId;
/**
* .
* .
*/
@NotBlank(message = "[confName]配置名称不能为空")
@Length(min = 0, max = 50, message = "[confName]配置名称长度不合法(0-50)")
private String confName;
private Long ruleId;
/**
* .
* HTTP:
* SERVER:
* LOCATION:
* .
*/
@NotNull(message = "[confType]配置类型不能为NULL")
@Select({"HTTP", "SERVER", "LOCATION"})
private String confType;
@NotBlank(message = "[confName]配置名称不能为空")
@Length(min = 0, max = 100, message = "[confName]配置名称长度不合法(0-100)")
private String confName;
/**
* .
*/
@NotBlank(message = "[confValue]配置属值不能为空")
@Length(min = 0, max = 255, message = "[confValue]配置属值长度不合法(0-255)")
@Length(min = 0, max = 100, message = "[confValue]配置属值长度不合法(0-100)")
private String confValue;
/**
@ -74,20 +68,20 @@ public class ConfigDataUpdateRequest extends BaseUpdateRequest {
this.targetId = targetId;
}
public String getConfName() {
return this.confName;
public Long getRuleId() {
return this.ruleId;
}
public void setConfName(String confName) {
this.confName = confName;
public void setRuleId(Long ruleId) {
this.ruleId = ruleId;
}
public String getConfType() {
return this.confType;
public String getConfName() {
return this.confName;
}
public void setConfType(String confType) {
this.confType = confType;
public void setConfName(String confName) {
this.confName = confName;
}
public String getConfValue() {

@ -1,149 +0,0 @@
package xyz.wbsite.module.admin.req;
import xyz.wbsite.frame.base.BaseFindRequest;
import java.util.Date;
import xyz.wbsite.frame.validation.Select;
/**
* ConfigFindRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public class ConfigFindRequest extends BaseFindRequest {
/**
* .
*/
private String confName;
/**
* .
*/
private String confNameLike;
/**
* .
* HTTP:
* SERVER:
* LOCATION:
*/
@Select({"HTTP", "SERVER", "LOCATION"})
private String confType;
/**
* .
*/
private String confKey;
/**
* .
*/
private String confKeyLike;
/**
* .
*/
private String confValue;
/**
* .
*/
private String confValueLike;
/**
* .
*/
private String confNoteLike;
/**
* .
*/
private Date startDate;
/**
* .
*/
private Date endDate;
public String getConfName() {
return this.confName;
}
public void setConfName(String confName) {
this.confName = confName;
}
public String getConfNameLike() {
return this.confNameLike;
}
public void setConfNameLike(String confNameLike) {
this.confNameLike = confNameLike;
}
public String getConfType() {
return this.confType;
}
public void setConfType(String confType) {
this.confType = confType;
}
public String getConfKey() {
return this.confKey;
}
public void setConfKey(String confKey) {
this.confKey = confKey;
}
public String getConfKeyLike() {
return this.confKeyLike;
}
public void setConfKeyLike(String confKeyLike) {
this.confKeyLike = confKeyLike;
}
public String getConfValue() {
return this.confValue;
}
public void setConfValue(String confValue) {
this.confValue = confValue;
}
public String getConfValueLike() {
return this.confValueLike;
}
public void setConfValueLike(String confValueLike) {
this.confValueLike = confValueLike;
}
public String getConfNoteLike() {
return this.confNoteLike;
}
public void setConfNoteLike(String confNoteLike) {
this.confNoteLike = confNoteLike;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}

@ -1,109 +0,0 @@
package xyz.wbsite.module.admin.req;
import xyz.wbsite.frame.base.BaseUpdateRequest;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;
import xyz.wbsite.frame.validation.Select;
/**
* ConfigUpdateRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public class ConfigUpdateRequest extends BaseUpdateRequest {
/**
* .
*/
@NotNull(message = "[id]主键不能为NULL")
private Long id;
/**
* .
*/
@NotBlank(message = "[confName]配置名称不能为空")
@Length(min = 0, max = 50, message = "[confName]配置名称长度不合法(0-50)")
private String confName;
/**
* .
* HTTP:
* SERVER:
* LOCATION:
*/
@NotNull(message = "[confType]配置类型不能为NULL")
@Select({"HTTP", "SERVER", "LOCATION"})
private String confType;
/**
* .
*/
@NotBlank(message = "[confKey]配置属名不能为空")
@Length(min = 0, max = 50, message = "[confKey]配置属名长度不合法(0-50)")
private String confKey;
/**
* .
*/
@NotBlank(message = "[confValue]配置属值不能为空")
@Length(min = 0, max = 255, message = "[confValue]配置属值长度不合法(0-255)")
private String confValue;
/**
* .
*/
@Length(min = 0, max = 255, message = "[confNote]配置备注长度不合法(0-255)")
private String confNote;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getConfName() {
return this.confName;
}
public void setConfName(String confName) {
this.confName = confName;
}
public String getConfType() {
return this.confType;
}
public void setConfType(String confType) {
this.confType = confType;
}
public String getConfKey() {
return this.confKey;
}
public void setConfKey(String confKey) {
this.confKey = confKey;
}
public String getConfValue() {
return this.confValue;
}
public void setConfValue(String confValue) {
this.confValue = confValue;
}
public String getConfNote() {
return this.confNote;
}
public void setConfNote(String confNote) {
this.confNote = confNote;
}
}

@ -10,7 +10,7 @@ import org.hibernate.validator.constraints.Length;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class LocationsCreateRequest extends BaseRequest {

@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class LocationsDeleteRequest extends BaseRequest {

@ -8,7 +8,7 @@ import java.util.Date;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class LocationsFindRequest extends BaseFindRequest {

@ -11,7 +11,7 @@ import javax.validation.constraints.NotEmpty;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class LocationsUpdateRequest extends BaseUpdateRequest {

@ -0,0 +1,118 @@
package xyz.wbsite.module.admin.req;
import xyz.wbsite.frame.base.BaseRequest;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import org.hibernate.validator.constraints.Length;
import xyz.wbsite.frame.validation.Select;
/**
* RulesCreateRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public class RulesCreateRequest extends BaseRequest {
/**
* .
* :
* :
* :
*/
@Select({"全局", "主机", "路径"})
private String ruleFor;
/**
* .
*/
@Length(min = 0, max = 100, message = "[ruleTitle]规则标题长度不合法(0-100)")
private String ruleTitle;
/**
* .
*/
@Length(min = 0, max = 100, message = "[ruleName]规则名称长度不合法(0-100)")
private String ruleName;
/**
* .
*/
@Length(min = 0, max = 100, message = "[ruleValue]规则属值长度不合法(0-100)")
private String ruleValue;
/**
* .
*/
@Length(min = 0, max = 100, message = "[valueDefault]默认属值长度不合法(0-100)")
private String valueDefault;
/**
* .
*/
@Length(min = 0, max = 100, message = "[valueRegex]属值正则长度不合法(0-100)")
private String valueRegex;
/**
* .
*/
@Length(min = 0, max = 500, message = "[ruleNote]规则描述长度不合法(0-500)")
private String ruleNote;
public String getRuleFor() {
return this.ruleFor;
}
public void setRuleFor(String ruleFor) {
this.ruleFor = ruleFor;
}
public String getRuleTitle() {
return this.ruleTitle;
}
public void setRuleTitle(String ruleTitle) {
this.ruleTitle = ruleTitle;
}
public String getRuleName() {
return this.ruleName;
}
public void setRuleName(String ruleName) {
this.ruleName = ruleName;
}
public String getRuleValue() {
return this.ruleValue;
}
public void setRuleValue(String ruleValue) {
this.ruleValue = ruleValue;
}
public String getValueDefault() {
return this.valueDefault;
}
public void setValueDefault(String valueDefault) {
this.valueDefault = valueDefault;
}
public String getValueRegex() {
return this.valueRegex;
}
public void setValueRegex(String valueRegex) {
this.valueRegex = valueRegex;
}
public String getRuleNote() {
return this.ruleNote;
}
public void setRuleNote(String ruleNote) {
this.ruleNote = ruleNote;
}
}

@ -6,13 +6,13 @@ import javax.validation.constraints.NotNull;
/**
* ConfigDeleteRequest -
* RulesDeleteRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDeleteRequest extends BaseRequest {
public class RulesDeleteRequest extends BaseRequest {
/**
* .

@ -0,0 +1,175 @@
package xyz.wbsite.module.admin.req;
import xyz.wbsite.frame.base.BaseFindRequest;
import java.util.Date;
import xyz.wbsite.frame.validation.Select;
/**
* RulesFindRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public class RulesFindRequest extends BaseFindRequest {
/**
* .
* :
* :
* :
*/
@Select({"全局", "主机", "路径"})
private String ruleFor;
/**
* .
*/
private String ruleTitle;
/**
* .
*/
private String ruleTitleLike;
/**
* .
*/
private String ruleName;
/**
* .
*/
private String ruleNameLike;
/**
* .
*/
private String ruleValue;
/**
* .
*/
private String ruleValueLike;
/**
* .
*/
private String valueDefault;
/**
* .
*/
private String valueRegex;
/**
* .
*/
private String ruleNoteLike;
/**
* .
*/
private Date startDate;
/**
* .
*/
private Date endDate;
public String getRuleFor() {
return this.ruleFor;
}
public void setRuleFor(String ruleFor) {
this.ruleFor = ruleFor;
}
public String getRuleTitle() {
return this.ruleTitle;
}
public void setRuleTitle(String ruleTitle) {
this.ruleTitle = ruleTitle;
}
public String getRuleTitleLike() {
return this.ruleTitleLike;
}
public void setRuleTitleLike(String ruleTitleLike) {
this.ruleTitleLike = ruleTitleLike;
}
public String getRuleName() {
return this.ruleName;
}
public void setRuleName(String ruleName) {
this.ruleName = ruleName;
}
public String getRuleNameLike() {
return this.ruleNameLike;
}
public void setRuleNameLike(String ruleNameLike) {
this.ruleNameLike = ruleNameLike;
}
public String getRuleValue() {
return this.ruleValue;
}
public void setRuleValue(String ruleValue) {
this.ruleValue = ruleValue;
}
public String getRuleValueLike() {
return this.ruleValueLike;
}
public void setRuleValueLike(String ruleValueLike) {
this.ruleValueLike = ruleValueLike;
}
public String getValueDefault() {
return this.valueDefault;
}
public void setValueDefault(String valueDefault) {
this.valueDefault = valueDefault;
}
public String getValueRegex() {
return this.valueRegex;
}
public void setValueRegex(String valueRegex) {
this.valueRegex = valueRegex;
}
public String getRuleNoteLike() {
return this.ruleNoteLike;
}
public void setRuleNoteLike(String ruleNoteLike) {
this.ruleNoteLike = ruleNoteLike;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}

@ -0,0 +1,133 @@
package xyz.wbsite.module.admin.req;
import xyz.wbsite.frame.base.BaseUpdateRequest;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;
import xyz.wbsite.frame.validation.Select;
/**
* RulesUpdateRequest -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public class RulesUpdateRequest extends BaseUpdateRequest {
/**
* .
*/
@NotNull(message = "[id]主键不能为NULL")
private Long id;
/**
* .
* :
* :
* :
*/
@Select({"全局", "主机", "路径"})
private String ruleFor;
/**
* .
*/
@Length(min = 0, max = 100, message = "[ruleTitle]规则标题长度不合法(0-100)")
private String ruleTitle;
/**
* .
*/
@Length(min = 0, max = 100, message = "[ruleName]规则名称长度不合法(0-100)")
private String ruleName;
/**
* .
*/
@Length(min = 0, max = 100, message = "[ruleValue]规则属值长度不合法(0-100)")
private String ruleValue;
/**
* .
*/
@Length(min = 0, max = 100, message = "[valueDefault]默认属值长度不合法(0-100)")
private String valueDefault;
/**
* .
*/
@Length(min = 0, max = 100, message = "[valueRegex]属值正则长度不合法(0-100)")
private String valueRegex;
/**
* .
*/
@Length(min = 0, max = 500, message = "[ruleNote]规则描述长度不合法(0-500)")
private String ruleNote;
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getRuleFor() {
return this.ruleFor;
}
public void setRuleFor(String ruleFor) {
this.ruleFor = ruleFor;
}
public String getRuleTitle() {
return this.ruleTitle;
}
public void setRuleTitle(String ruleTitle) {
this.ruleTitle = ruleTitle;
}
public String getRuleName() {
return this.ruleName;
}
public void setRuleName(String ruleName) {
this.ruleName = ruleName;
}
public String getRuleValue() {
return this.ruleValue;
}
public void setRuleValue(String ruleValue) {
this.ruleValue = ruleValue;
}
public String getValueDefault() {
return this.valueDefault;
}
public void setValueDefault(String valueDefault) {
this.valueDefault = valueDefault;
}
public String getValueRegex() {
return this.valueRegex;
}
public void setValueRegex(String valueRegex) {
this.valueRegex = valueRegex;
}
public String getRuleNote() {
return this.ruleNote;
}
public void setRuleNote(String ruleNote) {
this.ruleNote = ruleNote;
}
}

@ -11,7 +11,7 @@ import xyz.wbsite.frame.validation.Select;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ServicesCreateRequest extends BaseRequest {
@ -50,7 +50,6 @@ public class ServicesCreateRequest extends BaseRequest {
/**
* .
*/
@NotNull(message = "[valid]是否启用不能为NULL")
private Boolean valid;
/**

@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ServicesDeleteRequest extends BaseRequest {

@ -9,7 +9,7 @@ import xyz.wbsite.frame.validation.Select;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ServicesFindRequest extends BaseFindRequest {

@ -12,7 +12,7 @@ import xyz.wbsite.frame.validation.Select;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ServicesUpdateRequest extends BaseUpdateRequest {

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDataCreateResponse extends BaseResponse {

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDataDeleteResponse extends BaseResponse {

@ -8,7 +8,7 @@ import xyz.wbsite.module.admin.ent.ConfigData;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDataFindResponse extends BaseFindResponse<ConfigData> {
}

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDataUpdateResponse extends BaseResponse {

@ -1,14 +0,0 @@
package xyz.wbsite.module.admin.rsp;
import xyz.wbsite.frame.base.BaseFindResponse;
import xyz.wbsite.module.admin.ent.Config;
/**
* ConfigFindResponse -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
*/
public class ConfigFindResponse extends BaseFindResponse<Config> {
}

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class LocationsCreateResponse extends BaseResponse {

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class LocationsDeleteResponse extends BaseResponse {

@ -8,7 +8,7 @@ import xyz.wbsite.module.admin.ent.Locations;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class LocationsFindResponse extends BaseFindResponse<Locations> {
}

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class LocationsUpdateResponse extends BaseResponse {

@ -3,13 +3,13 @@ package xyz.wbsite.module.admin.rsp;
import xyz.wbsite.frame.base.BaseResponse;
/**
* ConfigCreateResponse -
* RulesCreateResponse -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigCreateResponse extends BaseResponse {
public class RulesCreateResponse extends BaseResponse {
/**
*

@ -3,13 +3,13 @@ package xyz.wbsite.module.admin.rsp;
import xyz.wbsite.frame.base.BaseResponse;
/**
* ConfigDeleteResponse -
* RulesDeleteResponse -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigDeleteResponse extends BaseResponse {
public class RulesDeleteResponse extends BaseResponse {
/**
*

@ -0,0 +1,14 @@
package xyz.wbsite.module.admin.rsp;
import xyz.wbsite.frame.base.BaseFindResponse;
import xyz.wbsite.module.admin.ent.Rules;
/**
* RulesFindResponse -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
public class RulesFindResponse extends BaseFindResponse<Rules> {
}

@ -3,13 +3,13 @@ package xyz.wbsite.module.admin.rsp;
import xyz.wbsite.frame.base.BaseResponse;
/**
* ConfigUpdateResponse -
* RulesUpdateResponse -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ConfigUpdateResponse extends BaseResponse {
public class RulesUpdateResponse extends BaseResponse {
/**
*

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ServicesCreateResponse extends BaseResponse {

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ServicesDeleteResponse extends BaseResponse {

@ -8,7 +8,7 @@ import xyz.wbsite.module.admin.ent.Services;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ServicesFindResponse extends BaseFindResponse<Services> {
}

@ -7,7 +7,7 @@ import xyz.wbsite.frame.base.BaseResponse;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
public class ServicesUpdateResponse extends BaseResponse {

@ -45,17 +45,17 @@ CREATE TABLE IF NOT EXISTS NA_LOCATIONS (
);
-- ----------------------------
-- Table structure for CONFIG - 配置预设
-- Table structure for CONFIG_DATA - 配置数据
-- Target : SQLite
-- Author : wangbing
-- Date: : 2021-02-08
-- ----------------------------
CREATE TABLE IF NOT EXISTS NA_CONFIG (
CREATE TABLE IF NOT EXISTS NA_CONFIG_DATA (
"ID" BIGINT PRIMARY KEY NOT NULL,
"CONF_NAME" VARCHAR(50) NOT NULL,
"CONF_TYPE" VARCHAR(50) NOT NULL,
"CONF_KEY" VARCHAR(50) NOT NULL,
"CONF_VALUE" VARCHAR(250) NOT NULL,
"TARGET_ID" BIGINT NOT NULL,
"RULE_ID" BIGINT,
"CONF_NAME" VARCHAR(100) NOT NULL,
"CONF_VALUE" VARCHAR(100) NOT NULL,
"CONF_NOTE" VARCHAR(250),
"ROW_VERSION" BIGINT NOT NULL,
"IS_DELETED" BOOLEAN NOT NULL,
@ -66,19 +66,20 @@ CREATE TABLE IF NOT EXISTS NA_CONFIG (
);
-- ----------------------------
-- Table structure for CONFIG_DATA - 配置数据
-- Table structure for RULES - 配置规则
-- Target : SQLite
-- Author : wangbing
-- Date: : 2021-02-08
-- ----------------------------
CREATE TABLE IF NOT EXISTS NA_CONFIG_DATA (
CREATE TABLE IF NOT EXISTS NA_RULES (
"ID" BIGINT PRIMARY KEY NOT NULL,
"TARGET_ID" BIGINT NOT NULL,
"CONF_NAME" VARCHAR(50) NOT NULL,
"CONF_TYPE" VARCHAR(50) NOT NULL,
"CONF_KEY" VARCHAR(50) NOT NULL,
"CONF_VALUE" VARCHAR(250) NOT NULL,
"CONF_NOTE" VARCHAR(250),
"RULE_FOR" VARCHAR(20),
"RULE_TITLE" VARCHAR(100),
"RULE_NAME" VARCHAR(100),
"RULE_VALUE" VARCHAR(100),
"VALUE_DEFAULT" VARCHAR(100),
"VALUE_REGEX" VARCHAR(100),
"RULE_NOTE" VARCHAR(500),
"ROW_VERSION" BIGINT NOT NULL,
"IS_DELETED" BOOLEAN NOT NULL,
"CREATE_BY" BIGINT NOT NULL,

@ -7,10 +7,9 @@
CREATE TABLE IF NOT EXISTS NA_CONFIG_DATA (
"ID" BIGINT PRIMARY KEY NOT NULL,
"TARGET_ID" BIGINT NOT NULL,
"CONF_NAME" VARCHAR(50) NOT NULL,
"CONF_TYPE" VARCHAR(50) NOT NULL,
"CONF_KEY" VARCHAR(50) NOT NULL,
"CONF_VALUE" VARCHAR(250) NOT NULL,
"RULE_ID" BIGINT,
"CONF_NAME" VARCHAR(100) NOT NULL,
"CONF_VALUE" VARCHAR(100) NOT NULL,
"CONF_NOTE" VARCHAR(250),
"ROW_VERSION" BIGINT NOT NULL,
"IS_DELETED" BOOLEAN NOT NULL,

@ -1,16 +1,18 @@
-- ----------------------------
-- Table structure for CONFIG - 配置预设
-- Table structure for RULES - 配置规则
-- Target : SQLite
-- Author : wangbing
-- Date: : 2021-02-08
-- ----------------------------
CREATE TABLE IF NOT EXISTS NA_CONFIG (
CREATE TABLE IF NOT EXISTS NA_RULES (
"ID" BIGINT PRIMARY KEY NOT NULL,
"CONF_NAME" VARCHAR(50) NOT NULL,
"CONF_TYPE" VARCHAR(50) NOT NULL,
"CONF_KEY" VARCHAR(50) NOT NULL,
"CONF_VALUE" VARCHAR(250) NOT NULL,
"CONF_NOTE" VARCHAR(250),
"RULE_FOR" VARCHAR(20),
"RULE_TITLE" VARCHAR(100),
"RULE_NAME" VARCHAR(100),
"RULE_VALUE" VARCHAR(100),
"VALUE_DEFAULT" VARCHAR(100),
"VALUE_REGEX" VARCHAR(100),
"RULE_NOTE" VARCHAR(500),
"ROW_VERSION" BIGINT NOT NULL,
"IS_DELETED" BOOLEAN NOT NULL,
"CREATE_BY" BIGINT NOT NULL,

@ -3,7 +3,7 @@
<modules>
<module name="admin" needGenerate="true" note="配置模块" prefix="NA_">
<table ajax="true" api="false" create="true" delete="true" find="true" get="false" html="true" methods="[]" msvr="false" pageAdd="true" pageDel="true" pageExp="true" pageImp="true" search="false" sys="true" tableComment="虚拟主机" tableName="SERVICES" update="true">
<field defaultValue="" fieldComment="主键" fieldLength="19" fieldName="ID" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="NULL" fieldComment="主机标题" fieldLength="50" fieldName="TITLE" fieldType="String_var50" isLike="true" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="true"/>
<field defaultValue="NULL" fieldComment="主机域名" fieldLength="50" fieldName="DOMAIN" fieldType="String_var50" isLike="false" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="true"/>
<field defaultValue="NULL" fieldComment="服务类型" fieldLength="20" fieldName="TYPE" fieldType="Select" isLike="false" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false">
@ -17,11 +17,11 @@
<field defaultValue="NULL" fieldComment="是否启用" fieldLength="0" fieldName="VALID" fieldType="Boolean" isLike="false" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="启用过滤" fieldLength="0" fieldName="FILTER" fieldType="Boolean" isLike="false" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="过滤配置" fieldLength="500" fieldName="FILTER_CONF" fieldType="String_var500" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="" fieldComment="行版本" fieldLength="19" fieldName="ROW_VERSION" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="0" fieldComment="是否已删除" fieldLength="1" fieldName="IS_DELETED" fieldType="Boolean" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="创建用户" fieldLength="19" fieldName="CREATE_BY" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="创建用户" fieldLength="0" fieldName="CREATE_BY" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="NULL" fieldComment="创建时间" fieldLength="0" fieldName="CREATE_TIME" fieldType="Date" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="最后更新用户" fieldLength="19" fieldName="LAST_UPDATE_BY" fieldType="Long" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="最后更新用户" fieldLength="0" fieldName="LAST_UPDATE_BY" fieldType="Long" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="最后更新时间" fieldLength="0" fieldName="LAST_UPDATE_TIME" fieldType="Date" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
</table>
<table ajax="true" api="false" create="true" delete="true" find="true" get="false" html="true" methods="[]" msvr="false" pageAdd="true" pageDel="true" pageExp="true" pageImp="true" search="false" sys="true" tableComment="路径配置" tableName="LOCATIONS" update="true">
@ -37,19 +37,15 @@
<field defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="创建用户" fieldLength="0" fieldName="CREATE_BY" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="NULL" fieldComment="创建时间" fieldLength="0" fieldName="CREATE_TIME" fieldType="Date" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="最后更新用户" fieldLength="19" fieldName="LAST_UPDATE_BY" fieldType="Long" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="最后更新用户" fieldLength="0" fieldName="LAST_UPDATE_BY" fieldType="Long" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="最后更新时间" fieldLength="0" fieldName="LAST_UPDATE_TIME" fieldType="Date" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
</table>
<table ajax="true" api="false" create="true" delete="true" find="true" get="false" html="true" methods="[]" msvr="false" pageAdd="true" pageDel="true" pageExp="true" pageImp="true" search="false" sys="true" tableComment="配置预设" tableName="CONFIG" update="true">
<table ajax="true" api="false" create="true" delete="true" find="true" get="false" html="false" methods="[]" msvr="false" pageAdd="false" pageDel="false" pageExp="false" pageImp="false" search="false" sys="true" tableComment="配置数据" tableName="CONFIG_DATA" update="true">
<field defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="NULL" fieldComment="配置名称" fieldLength="50" fieldName="CONF_NAME" fieldType="String_var50" isLike="true" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="true"/>
<field defaultValue="NULL" fieldComment="配置类型" fieldLength="50" fieldName="CONF_TYPE" fieldType="Select" isLike="false" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false">
<selectItem label="全局配置" value="HTTP"/>
<selectItem label="主机配置" value="SERVER"/>
<selectItem label="路径配置" value="LOCATION"/>
</field>
<field defaultValue="NULL" fieldComment="配置属名" fieldLength="50" fieldName="CONF_KEY" fieldType="String_var50" isLike="true" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="配置属值" fieldLength="255" fieldName="CONF_VALUE" fieldType="String_var255" isLike="true" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="目标主键" fieldLength="0" fieldName="TARGET_ID" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="规则主键" fieldLength="0" fieldName="RULE_ID" fieldType="Long" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="配置名称" fieldLength="100" fieldName="CONF_NAME" fieldType="String_var100" isLike="true" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="true"/>
<field defaultValue="NULL" fieldComment="配置属值" fieldLength="100" fieldName="CONF_VALUE" fieldType="String_var100" isLike="true" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="配置备注" fieldLength="255" fieldName="CONF_NOTE" fieldType="String_var255" isLike="true" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
@ -58,18 +54,19 @@
<field defaultValue="" fieldComment="最后更新用户" fieldLength="0" fieldName="LAST_UPDATE_BY" fieldType="Long" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="最后更新时间" fieldLength="0" fieldName="LAST_UPDATE_TIME" fieldType="Date" isLike="false" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
</table>
<table ajax="true" api="false" create="true" delete="true" find="true" get="false" html="false" methods="[]" msvr="false" pageAdd="false" pageDel="false" pageExp="false" pageImp="false" search="false" sys="true" tableComment="配置数据" tableName="CONFIG_DATA" update="true">
<table ajax="true" api="false" create="true" delete="true" find="true" get="false" html="true" methods="[]" msvr="false" pageAdd="true" pageDel="true" pageExp="true" pageImp="true" search="false" sys="true" tableComment="配置规则" tableName="RULES" update="true">
<field defaultValue="" fieldComment="主键" fieldLength="0" fieldName="ID" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="true" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="NULL" fieldComment="目标主键" fieldLength="0" fieldName="TARGET_ID" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="配置名称" fieldLength="50" fieldName="CONF_NAME" fieldType="String_var50" isLike="true" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="true"/>
<field defaultValue="NULL" fieldComment="配置类型" fieldLength="50" fieldName="CONF_TYPE" fieldType="Select" isLike="false" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false">
<selectItem label="全局配置" value="HTTP"/>
<selectItem label="主机配置" value="SERVER"/>
<selectItem label="路径配置" value="LOCATION"/>
<field defaultValue="NULL" fieldComment="规则目标" fieldLength="20" fieldName="RULE_FOR" fieldType="Select" isLike="false" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="true">
<selectItem label="全局" value="全局"/>
<selectItem label="主机" value="主机"/>
<selectItem label="路径" value="路径"/>
</field>
<field defaultValue="NULL" fieldComment="配置属名" fieldLength="50" fieldName="CONF_KEY" fieldType="String_var50" isLike="true" isMust="true" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="配置属值" fieldLength="255" fieldName="CONF_VALUE" fieldType="String_var255" isLike="true" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="配置备注" fieldLength="255" fieldName="CONF_NOTE" fieldType="String_var255" isLike="true" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="规则标题" fieldLength="100" fieldName="RULE_TITLE" fieldType="String_var100" isLike="true" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="规则名称" fieldLength="100" fieldName="RULE_NAME" fieldType="String_var100" isLike="true" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="true"/>
<field defaultValue="NULL" fieldComment="规则属值" fieldLength="100" fieldName="RULE_VALUE" fieldType="String_var100" isLike="true" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="默认属值" fieldLength="100" fieldName="VALUE_DEFAULT" fieldType="String_var100" isLike="false" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="属值正则" fieldLength="100" fieldName="VALUE_REGEX" fieldType="String_var100" isLike="false" isMust="false" isPrimaryKey="false" isQuery="true" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="NULL" fieldComment="规则描述" fieldLength="500" fieldName="RULE_NOTE" fieldType="String_var500" isLike="true" isMust="false" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="false" isUnique="false"/>
<field defaultValue="" fieldComment="行版本" fieldLength="0" fieldName="ROW_VERSION" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="0" fieldComment="是否已删除" fieldLength="0" fieldName="IS_DELETED" fieldType="Boolean" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>
<field defaultValue="" fieldComment="创建用户" fieldLength="0" fieldName="CREATE_BY" fieldType="Long" isLike="false" isMust="true" isPrimaryKey="false" isQuery="false" isSearch="false" isSystem="true" isUnique="false"/>

@ -1,319 +0,0 @@
<div id="app" v-cloak>
<div class="form-search">
<el-form ref="vm" :model="vm" :inline="true" :label-width="'70px'">
<el-form-item label="配置名称" prop="confName" size="mini">
<el-input v-model="vm.confName" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入配置名称"></el-input>
</el-form-item>
<el-form-item label="配置名称" prop="confNameLike" size="mini">
<el-input v-model="vm.confNameLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入配置名称模糊查询"></el-input>
</el-form-item>
<el-form-item label="配置类型" prop="confType" size="mini">
<el-select v-model="vm.confType" clearable size="mini" filterable placeholder="请输入配置类型">
<el-option key="HTTP" label="全局配置" value="HTTP"></el-option>
<el-option key="SERVER" label="主机配置" value="SERVER"></el-option>
<el-option key="LOCATION" label="路径配置" value="LOCATION"></el-option>
</el-select>
</el-form-item>
<el-form-item label="配置属名" prop="confKey" size="mini">
<el-input v-model="vm.confKey" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入配置属名"></el-input>
</el-form-item>
<el-form-item label="配置属名" prop="confKeyLike" size="mini">
<el-input v-model="vm.confKeyLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入配置属名模糊查询"></el-input>
</el-form-item>
<el-form-item label="配置属值" prop="confValue" size="mini">
<el-input v-model="vm.confValue" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入配置属值"></el-input>
</el-form-item>
<el-form-item label="配置属值" prop="confValueLike" size="mini">
<el-input v-model="vm.confValueLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入配置属值模糊查询"></el-input>
</el-form-item>
<el-form-item label="配置备注" prop="confNoteLike" size="mini">
<el-input v-model="vm.confNoteLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入配置备注模糊查询"></el-input>
</el-form-item>
<el-form-item label="开始日期" prop="startDate" size="mini">
<el-date-picker v-model="vm.startDate" clearable size="mini" placeholder="请输入开始日期" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item label="结束日期" prop="endDate" size="mini">
<el-date-picker v-model="vm.endDate" clearable size="mini" placeholder="请输入结束日期" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item size="mini">
<el-button-group>
<el-button type="primary" size="mini" icon="el-icon-search" @click="onSearch">搜索</el-button>
<el-button type="warning" size="mini" icon="el-icon-refresh-left" @click="onReset('vm')">重置</el-button>
</el-button-group>
</el-form-item>
</el-form>
</div>
<div class="form-table">
<el-row type="flex" justify="space-between">
<el-button-group>
<#if token.hasRes("/ajax/admin/config/create")>
<el-button type="success" size="mini" icon="el-icon-plus" @click="onCreate">新增</el-button>
</#if>
<#if token.hasRes("/ajax/admin/config/delete")>
<el-button type="danger" size="mini" icon="el-icon-delete" @click="onBitchDelete">删除</el-button>
</#if>
</el-button-group>
<el-button-group style="float: right;">
<#if token.hasRes("/ajax/admin/config/template")>
<el-tooltip effect="dark" content="Excel导入模板下载" placement="bottom">
<el-button size="mini" icon="el-icon-date" @click="onTemplate"></el-button>
</el-tooltip>
</#if>
<#if token.hasRes("/ajax/admin/config/imports")>
<el-tooltip effect="dark" content="Excel导入" placement="bottom">
<el-button size="mini" icon="el-icon-upload2" @click="onImport"></el-button>
</el-tooltip>
</#if>
<#if token.hasRes("/ajax/admin/config/exports")>
<el-tooltip effect="dark" content="Excel导出" placement="bottom">
<el-button size="mini" icon="el-icon-download" @click="onExport"></el-button>
</el-tooltip>
</#if>
<el-tooltip effect="dark" content="刷新" placement="bottom">
<el-button size="mini" icon="el-icon-refresh" @click="onFind"></el-button>
</el-tooltip>
</el-button-group>
</el-row>
<el-table
:data="result"
:size="'mini'"
:border="true"
:stripe="true"
:empty-text="'无数据'"
@selection-change="onSelectionChange">
<el-table-column
align="center"
width="45"
type="selection">
</el-table-column>
<el-table-column
align="center"
width="140"
prop="id"
label="主键">
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="confName"
label="配置名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="100"
prop="confType"
label="配置类型">
<template slot-scope="scope">
<el-tag size="mini" v-if="scope.row.confType == 'HTTP'">全局配置</el-tag>
<el-tag size="mini" v-if="scope.row.confType == 'SERVER'">主机配置</el-tag>
<el-tag size="mini" v-if="scope.row.confType == 'LOCATION'">路径配置</el-tag>
</template>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="confKey"
label="配置属名"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="confValue"
label="配置属值"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="confNote"
label="配置备注"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="140"
prop="createTime"
label="创建时间">
</el-table-column>
<el-table-column
align="center"
width="120"
fixed="right"
label="操作">
<template slot-scope="scope">
<wb-table-ops :arg="scope.row">
<#if token.hasRes("/ajax/admin/config/update")>
<wb-table-op slot="menu" icon="el-icon-edit" @click="onEdit">编辑</wb-table-op>
</#if>
<#if token.hasRes("/ajax/admin/config/delete")>
<wb-table-op slot="menu" icon="el-icon-delete" @click="onDelete">删除</wb-table-op>
</#if>
</wb-table-ops>
</template>
</el-table-column>
</el-table>
<el-pagination
background
v-if="vm.totalCount > vm.pageSize"
style="margin-top: 10px"
@current-change="onPageChange"
@size-change="onPageSizeChange"
:current-page="vm.pageNumber"
:page-size="vm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="vm.totalCount">
</el-pagination>
</div>
<el-dialog
:fullscreen="false"
:title="form.formTitle"
:custom-class="'form-dialog'"
:close-on-click-modal="false"
:close-on-press-escape="false"
:modal-append-to-body="true"
:visible.sync="form.formShow">
<el-page-header slot="title" @back="form.formShow = false" :content="form.formTitle"></el-page-header>
<el-form
:ref="'form'"
:model="form"
:inline="true"
:rules="formRules"
:label-width="'85px'"
:label-position="'right'">
<el-form-item label="配置名称" prop="confName" size="mini">
<el-input v-model="form.confName" clearable size="mini" placeholder="请输入配置名称" maxlength="50"></el-input>
</el-form-item>
<el-form-item label="配置类型" prop="confType" size="mini">
<el-select v-model="form.confType" clearable size="mini" filterable placeholder="请输入配置类型">
<el-option key="HTTP" label="全局配置" value="HTTP"></el-option>
<el-option key="SERVER" label="主机配置" value="SERVER"></el-option>
<el-option key="LOCATION" label="路径配置" value="LOCATION"></el-option>
</el-select>
</el-form-item>
<el-form-item label="配置属名" prop="confKey" size="mini">
<el-input v-model="form.confKey" clearable size="mini" placeholder="请输入配置属名" maxlength="50"></el-input>
</el-form-item>
<el-form-item label="配置属值" prop="confValue" size="mini" class="full">
<el-input v-model="form.confValue"
rows="7"
clearable
size="mini"
maxlength="255"
type="textarea"
show-word-limit
placeholder="请输入配置属值"></el-input>
</el-form-item>
<el-form-item label="配置备注" prop="confNote" size="mini" class="full">
<el-input v-model="form.confNote"
rows="7"
clearable
size="mini"
maxlength="255"
type="textarea"
show-word-limit
placeholder="请输入配置备注"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="form.formShow = false">取消</el-button>
<el-button size="mini" type="primary" @click="onSave">保存</el-button>
</span>
</el-dialog>
</div>
<script>
var app = new Vue({
mixins: [mixinForMgr],
el: "#app",
data: {
module: 'admin',
target: 'config',
vm: {//条件及分页参数
confName: null,
confNameLike: null,
confType: null,
confKey: null,
confKeyLike: null,
confValue: null,
confValueLike: null,
confNoteLike: null,
startDate: null,
endDate: null,
pageNumber: 1,
pageSize: 10,
totalCount: 0,
sortKey:'CREATE_TIME',
sortType:'DESC'
},
form: {//待提交表单
formTitle: "",
formShow: false,
id: null,
confName: null,
confType: null,
confKey: null,
confValue: null,
confNote: null,
rowVersion: null
},
formRules: {
confName: [
{required: true, message: '配置名称不能为空', trigger: 'blur'},
{min: 1, max: 50, message: '配置名称长度在 1 到 50 个字符', trigger: 'blur'}
],
confType: [
{required: true, message: '配置类型不能为空', trigger: 'blur'},
],
confKey: [
{required: true, message: '配置属名不能为空', trigger: 'blur'},
{min: 1, max: 50, message: '配置属名长度在 1 到 50 个字符', trigger: 'blur'}
],
confValue: [
{required: true, message: '配置属值不能为空', trigger: 'blur'},
{min: 1, max: 255, message: '配置属值长度在 1 到 255 个字符', trigger: 'blur'}
],
confNote: [
{min: 1, max: 255, message: '配置备注长度在 1 到 255 个字符', trigger: 'blur'}
],
}
},
methods: {
onCreate: function () {
this.form.formTitle = "配置预设新增";
this.form.formShow = true;
this.form.id = "";
this.form.confName = "";
this.form.confType = "";
this.form.confKey = "";
this.form.confValue = "";
this.form.confNote = "";
},
onEdit: function (item) {
this.form.formTitle = "配置预设编辑";
this.form.formShow = true;
this.form.id = item.id;
this.form.confName = item.confName;
this.form.confType = item.confType;
this.form.confKey = item.confKey;
this.form.confValue = item.confValue;
this.form.confNote = item.confNote;
this.form.rowVersion = item.rowVersion;
}
},
mounted: function () {
this.onFind();
},
})
</script>

@ -0,0 +1,381 @@
<div id="app" v-cloak>
<div class="form-search">
<el-form ref="vm" :model="vm" :inline="true" :label-width="'70px'">
<el-form-item label="规则目标" prop="ruleFor" size="mini">
<el-select v-model="vm.ruleFor" clearable size="mini" filterable placeholder="请输入规则目标">
<el-option key="全局" label="全局" value="全局"></el-option>
<el-option key="主机" label="主机" value="主机"></el-option>
<el-option key="路径" label="路径" value="路径"></el-option>
</el-select>
</el-form-item>
<el-form-item label="规则标题" prop="ruleTitle" size="mini">
<el-input v-model="vm.ruleTitle" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则标题"></el-input>
</el-form-item>
<el-form-item label="规则标题" prop="ruleTitleLike" size="mini">
<el-input v-model="vm.ruleTitleLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则标题模糊查询"></el-input>
</el-form-item>
<el-form-item label="规则名称" prop="ruleName" size="mini">
<el-input v-model="vm.ruleName" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则名称"></el-input>
</el-form-item>
<el-form-item label="规则名称" prop="ruleNameLike" size="mini">
<el-input v-model="vm.ruleNameLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则名称模糊查询"></el-input>
</el-form-item>
<el-form-item label="规则属值" prop="ruleValue" size="mini">
<el-input v-model="vm.ruleValue" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则属值"></el-input>
</el-form-item>
<el-form-item label="规则属值" prop="ruleValueLike" size="mini">
<el-input v-model="vm.ruleValueLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则属值模糊查询"></el-input>
</el-form-item>
<el-form-item label="默认属值" prop="valueDefault" size="mini">
<el-input v-model="vm.valueDefault" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入默认属值"></el-input>
</el-form-item>
<el-form-item label="属值正则" prop="valueRegex" size="mini">
<el-input v-model="vm.valueRegex" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入属值正则"></el-input>
</el-form-item>
<el-form-item label="规则描述" prop="ruleNoteLike" size="mini">
<el-input v-model="vm.ruleNoteLike" @keyup.enter.native="onSearch" clearable size="mini" placeholder="请输入规则描述模糊查询"></el-input>
</el-form-item>
<el-form-item label="开始日期" prop="startDate" size="mini">
<el-date-picker v-model="vm.startDate" clearable size="mini" placeholder="请输入开始日期" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item label="结束日期" prop="endDate" size="mini">
<el-date-picker v-model="vm.endDate" clearable size="mini" placeholder="请输入结束日期" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
<el-form-item size="mini">
<el-button-group>
<el-button type="primary" size="mini" icon="el-icon-search" @click="onSearch">搜索</el-button>
<el-button type="warning" size="mini" icon="el-icon-refresh-left" @click="onReset('vm')">重置</el-button>
</el-button-group>
</el-form-item>
</el-form>
</div>
<div class="form-table">
<el-row type="flex" justify="space-between">
<el-button-group>
<#if token.hasRes("/ajax/admin/rules/create")>
<el-button type="success" size="mini" icon="el-icon-plus" @click="onCreate">新增</el-button>
</#if>
<#if token.hasRes("/ajax/admin/rules/delete")>
<el-button type="danger" size="mini" icon="el-icon-delete" @click="onBitchDelete">删除</el-button>
</#if>
</el-button-group>
<el-button-group style="float: right;">
<#if token.hasRes("/ajax/admin/rules/template")>
<el-tooltip effect="dark" content="Excel导入模板下载" placement="bottom">
<el-button size="mini" icon="el-icon-date" @click="onTemplate"></el-button>
</el-tooltip>
</#if>
<#if token.hasRes("/ajax/admin/rules/imports")>
<el-tooltip effect="dark" content="Excel导入" placement="bottom">
<el-button size="mini" icon="el-icon-upload2" @click="onImport"></el-button>
</el-tooltip>
</#if>
<#if token.hasRes("/ajax/admin/rules/exports")>
<el-tooltip effect="dark" content="Excel导出" placement="bottom">
<el-button size="mini" icon="el-icon-download" @click="onExport"></el-button>
</el-tooltip>
</#if>
<el-tooltip effect="dark" content="刷新" placement="bottom">
<el-button size="mini" icon="el-icon-refresh" @click="onFind"></el-button>
</el-tooltip>
</el-button-group>
</el-row>
<el-table
:data="result"
:size="'mini'"
:border="true"
:stripe="true"
:empty-text="'无数据'"
@selection-change="onSelectionChange">
<el-table-column
align="center"
width="45"
type="selection">
</el-table-column>
<el-table-column
align="center"
width="140"
prop="id"
label="主键">
</el-table-column>
<el-table-column
align="center"
min-width="100"
prop="ruleFor"
label="规则目标">
<template slot-scope="scope">
<el-tag size="mini" v-if="scope.row.ruleFor == '全局'">全局</el-tag>
<el-tag size="mini" v-if="scope.row.ruleFor == '主机'">主机</el-tag>
<el-tag size="mini" v-if="scope.row.ruleFor == '路径'">路径</el-tag>
</template>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="ruleTitle"
label="规则标题"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="ruleName"
label="规则名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="ruleValue"
label="规则属值"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="valueDefault"
label="默认属值"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="valueRegex"
label="属值正则"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="180"
prop="ruleNote"
label="规则描述"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
min-width="140"
prop="createTime"
label="创建时间">
</el-table-column>
<el-table-column
align="center"
width="120"
fixed="right"
label="操作">
<template slot-scope="scope">
<wb-table-ops :arg="scope.row">
<#if token.hasRes("/ajax/admin/rules/update")>
<wb-table-op slot="menu" icon="el-icon-edit" @click="onEdit">编辑</wb-table-op>
</#if>
<#if token.hasRes("/ajax/admin/rules/delete")>
<wb-table-op slot="menu" icon="el-icon-delete" @click="onDelete">删除</wb-table-op>
</#if>
</wb-table-ops>
</template>
</el-table-column>
</el-table>
<el-pagination
background
v-if="vm.totalCount > vm.pageSize"
style="margin-top: 10px"
@current-change="onPageChange"
@size-change="onPageSizeChange"
:current-page="vm.pageNumber"
:page-size="vm.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="vm.totalCount">
</el-pagination>
</div>
<el-dialog
:fullscreen="false"
:title="form.formTitle"
:custom-class="'form-dialog'"
:close-on-click-modal="false"
:close-on-press-escape="false"
:modal-append-to-body="true"
:visible.sync="form.formShow">
<el-page-header slot="title" @back="form.formShow = false" :content="form.formTitle"></el-page-header>
<el-form
:ref="'form'"
:model="form"
:inline="true"
:rules="formRules"
:label-width="'85px'"
:label-position="'right'">
<el-form-item label="规则目标" prop="ruleFor" size="mini">
<el-select v-model="form.ruleFor" clearable size="mini" filterable placeholder="请输入规则目标">
<el-option key="全局" label="全局" value="全局"></el-option>
<el-option key="主机" label="主机" value="主机"></el-option>
<el-option key="路径" label="路径" value="路径"></el-option>
</el-select>
</el-form-item>
<el-form-item label="规则标题" prop="ruleTitle" size="mini">
<el-input v-model="form.ruleTitle"
clearable
size="mini"
maxlength="100"
show-word-limit
placeholder="请输入规则标题"></el-input>
</el-form-item>
<el-form-item label="规则名称" prop="ruleName" size="mini" class="full">
<el-input v-model="form.ruleName"
rows="3"
clearable
size="mini"
maxlength="100"
type="textarea"
show-word-limit
placeholder="请输入规则名称"></el-input>
</el-form-item>
<el-form-item label="规则属值" prop="ruleValue" size="mini" class="full">
<el-input v-model="form.ruleValue"
rows="3"
clearable
size="mini"
maxlength="100"
type="textarea"
show-word-limit
placeholder="请输入规则属值"></el-input>
</el-form-item>
<el-form-item label="默认属值" prop="valueDefault" size="mini" class="full">
<el-input v-model="form.valueDefault"
rows="3"
clearable
size="mini"
maxlength="100"
type="textarea"
show-word-limit
placeholder="请输入默认属值"></el-input>
</el-form-item>
<el-form-item label="属值正则" prop="valueRegex" size="mini" class="full">
<el-input v-model="form.valueRegex"
rows="3"
clearable
size="mini"
maxlength="100"
type="textarea"
show-word-limit
placeholder="请输入属值正则"></el-input>
</el-form-item>
<el-form-item label="规则描述" prop="ruleNote" size="mini" class="full">
<el-input v-model="form.ruleNote"
rows="10"
clearable
size="mini"
maxlength="500"
type="textarea"
show-word-limit
placeholder="请输入规则描述"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="form.formShow = false">取消</el-button>
<el-button size="mini" type="primary" @click="onSave">保存</el-button>
</span>
</el-dialog>
</div>
<script>
var app = new Vue({
mixins: [mixinForMgr],
el: "#app",
data: {
module: 'admin',
target: 'rules',
vm: {//条件及分页参数
ruleFor: null,
ruleTitle: null,
ruleTitleLike: null,
ruleName: null,
ruleNameLike: null,
ruleValue: null,
ruleValueLike: null,
valueDefault: null,
valueRegex: null,
ruleNoteLike: null,
startDate: null,
endDate: null,
pageNumber: 1,
pageSize: 10,
totalCount: 0,
sortKey:'CREATE_TIME',
sortType:'DESC'
},
form: {//待提交表单
formTitle: "",
formShow: false,
id: null,
ruleFor: null,
ruleTitle: null,
ruleName: null,
ruleValue: null,
valueDefault: null,
valueRegex: null,
ruleNote: null,
rowVersion: null
},
formRules: {
ruleFor: [
],
ruleTitle: [
{min: 1, max: 100, message: '规则标题长度在 1 到 100 个字符', trigger: 'blur'}
],
ruleName: [
{min: 1, max: 100, message: '规则名称长度在 1 到 100 个字符', trigger: 'blur'}
],
ruleValue: [
{min: 1, max: 100, message: '规则属值长度在 1 到 100 个字符', trigger: 'blur'}
],
valueDefault: [
{min: 1, max: 100, message: '默认属值长度在 1 到 100 个字符', trigger: 'blur'}
],
valueRegex: [
{min: 1, max: 100, message: '属值正则长度在 1 到 100 个字符', trigger: 'blur'}
],
ruleNote: [
{min: 1, max: 500, message: '规则描述长度在 1 到 500 个字符', trigger: 'blur'}
],
}
},
methods: {
onCreate: function () {
this.form.formTitle = "配置规则新增";
this.form.formShow = true;
this.form.id = "";
this.form.ruleFor = "";
this.form.ruleTitle = "";
this.form.ruleName = "";
this.form.ruleValue = "";
this.form.valueDefault = "";
this.form.valueRegex = "";
this.form.ruleNote = "";
},
onEdit: function (item) {
this.form.formTitle = "配置规则编辑";
this.form.formShow = true;
this.form.id = item.id;
this.form.ruleFor = item.ruleFor;
this.form.ruleTitle = item.ruleTitle;
this.form.ruleName = item.ruleName;
this.form.ruleValue = item.ruleValue;
this.form.valueDefault = item.valueDefault;
this.form.valueRegex = item.valueRegex;
this.form.ruleNote = item.ruleNote;
this.form.rowVersion = item.rowVersion;
}
},
mounted: function () {
this.onFind();
},
})
</script>

@ -17,28 +17,19 @@
:collapse="prop.coll"
:collapse-transition="prop.tran">
<#if token.hasRes("ADMIN")>
<el-submenu index="37730a50-4f13-4835-bf3f-65af82ca2d98">
<el-submenu index="ccda8ec0-c2f6-4da1-9032-f36c23110ebc">
<template slot="title">
<i class="el-icon-document-copy"></i>
<span slot="title">配置模块</span>
</template>
<#if token.hasRes("ADMIN_SERVICES")>
<el-menu-item index="56799af2-df08-44fa-a97c-faccc0963dd9"
@click="openTab({title: '虚拟主机', name: 'SERVICES', url: '/admin/services.htm'})">
虚拟主机
</el-menu-item>
<el-menu-item index="ddb15bbe-bcf8-4c52-91b5-4df3c91f2c00" @click="openTab({title: '虚拟主机', name: 'SERVICES', url: '/admin/services.htm'})">虚拟主机</el-menu-item>
</#if>
<#if token.hasRes("ADMIN_LOCATIONS")>
<el-menu-item index="03bcbb6e-7a2a-430e-998c-ce512c52b506"
@click="openTab({title: '路径配置', name: 'LOCATIONS', url: '/admin/locations.htm'})">
路径配置
</el-menu-item>
<el-menu-item index="b1fbaeab-ac74-40c5-9b07-a914b209a2ed" @click="openTab({title: '路径配置', name: 'LOCATIONS', url: '/admin/locations.htm'})">路径配置</el-menu-item>
</#if>
<#if token.hasRes("ADMIN_CONFIG")>
<el-menu-item index="60701dea-1083-4a85-b83f-77ea1c099577"
@click="openTab({title: '配置预设', name: 'CONFIG', url: '/admin/config.htm'})">
配置预设
</el-menu-item>
<#if token.hasRes("ADMIN_RULES")>
<el-menu-item index="80eaf604-45f1-4ed1-90ad-2bdaa08196cc" @click="openTab({title: '配置规则', name: 'RULES', url: '/admin/rules.htm'})">配置规则</el-menu-item>
</#if>
</el-submenu>
</#if>
@ -69,14 +60,8 @@
<el-link :underline="false" @click="onHome" icon="el-icon-warning-outline">关于</el-link>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
@click.native="openTab({title: '开发指导', name: 'helpDev', url: '/helpDev.htm'})">
开发指导
</el-dropdown-item>
<el-dropdown-item
@click.native="openTab({title: '使用指导', name: 'help', url: '/help.htm'})">
使用指导
</el-dropdown-item>
<el-dropdown-item @click.native="openTab({title: '开发指导', name: 'helpDev', url: '/helpDev.htm'})">开发指导</el-dropdown-item>
<el-dropdown-item @click.native="openTab({title: '使用指导', name: 'help', url: '/help.htm'})">使用指导</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</li>
@ -109,16 +94,13 @@
:visible.sync="form.formShow">
<el-form class="form" :model="form" :rules="formRules" ref="form" label-position="right" label-width="90px">
<el-form-item label="当前密码" prop="password" size="mini">
<el-input v-model="form.password" type="password" clearable size="mini"
placeholder="请输入当前密码"></el-input>
<el-input v-model="form.password" type="password" clearable size="mini" placeholder="请输入当前密码"></el-input>
</el-form-item>
<el-form-item label="新设密码" prop="newPassword" size="mini">
<el-input v-model="form.newPassword" type="password" clearable size="mini"
placeholder="请输入新设密码"></el-input>
<el-input v-model="form.newPassword" type="password" clearable size="mini" placeholder="请输入新设密码"></el-input>
</el-form-item>
<el-form-item label="密码确认" prop="newPassword_" size="mini">
<el-input v-model="form.newPassword_" type="password" clearable size="mini"
placeholder="请输入密码确认"></el-input>
<el-input v-model="form.newPassword_" type="password" clearable size="mini" placeholder="请输入密码确认"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@ -163,18 +145,18 @@
z-index: 99;
}
#loadingBar div[role=progressbar] .el-progress-bar__outer {
#loadingBar div[role=progressbar] .el-progress-bar__outer{
background-color: transparent;
}
#devMarker {
#devMarker{
position: absolute;
bottom: 50px;
right: 50px;
}
#devMarker:after {
pointer-events: none;
#devMarker:after{
pointer-events:none;
content: attr(marker-value);
font-size: 100px;
color: rgba(188, 188, 188, 0.5);
@ -275,18 +257,18 @@
line-height: 20px;
}
#content, #content .el-tabs__content {
#content,#content .el-tabs__content {
padding: 0;
height: calc(100% - 40px);
}
#content > div, #content .el-tab-pane {
#content > div,#content .el-tab-pane {
padding: 0;
border: 0;
height: 100%;
}
#content div[role=tab] {
#content div[role=tab]{
padding: 0 10px;
}
</style>
@ -305,14 +287,14 @@
tran: <#if prop.tran>true<#else>false</#if>,
full: <#if prop.full>true<#else>false</#if>
},
barStatus: null,
barStatus:null,
barPercent: 0,
barInterval: null,
form: {
formShow: false,
password: '',
newPassword: '',
newPassword_: ''
form:{
formShow:false,
password:'',
newPassword:'',
newPassword_:''
},
formRules: {
password: [
@ -324,8 +306,7 @@
],
newPassword_: [
{required: true, message: '密码确认不能为空', trigger: 'blur'},
{
validator: function (rule, value, callback) {
{ validator: function (rule, value, callback) {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value !== index.form.newPassword) {
@ -333,18 +314,17 @@
} else {
callback();
}
}, trigger: 'blur'
}
}, trigger: 'blur' }
]
},
resultUnRead: []
resultUnRead:[]
},
methods: {
onHome: function () {
this.openTab({
title: '首页',
name: 'home',
url: this.context + '/home.htm'
url: '/home.htm'
})
},
barStart: function () {
@ -389,7 +369,7 @@
//不存在则添加
if (tempTabs.length <= 0) {
this.tabs.push(tab)
}
};
this.prop.tabName = tab.name;
this.onSaveState();
},
@ -411,7 +391,7 @@
return tab.name !== tabName
})
},
onChangePwd: function () {
onChangePwd:function () {
this.$refs['form'].validate(function (valid) {
if (valid) {
new Ajax("wadmin", "user", "changePwd").post(this.form, function (response) {
@ -424,9 +404,9 @@
}
}.bind(this))
},
onLogout: function () {
nav.boxYesNo("退出提示", "是否退出当前登录账户?", function (result) {
if (result) {
onLogout: function() {
nav.boxYesNo("退出提示", "是否退出当前登录账户?" ,function (result) {
if (result){
new Ajax("wframe", "auth", "logout").post({}, function (response) {
if (response.errors.length > 0) {
nav.e(response.errors[0].message);
@ -439,7 +419,7 @@
}.bind(this))
},
onLogoutForChangePwd: function () {
nav.boxYes("退出提示", "密码修改成功立即重新登录?", function (result) {
nav.boxYes("退出提示", "密码修改成功立即重新登录?" ,function (result) {
new Ajax("wadmin", "user").method("logout").post({}, function (response) {
if (response.errors.length > 0) {
nav.e(response.errors[0].message);
@ -450,7 +430,7 @@
}.bind(this));
}.bind(this))
},
switchFullScreen: function () {
switchFullScreen:function(){
this.prop.full = !this.prop.full;
if (this.prop.full) {
nav.screenFull()
@ -479,7 +459,7 @@
var tabs = $.getSessionStorage("tabs");
if (tabs) {
this.tabs = JSON.parse(tabs);
} else {
}else {
this.onHome();
// 开发模式,默认打开指导页
if (this.active === 'dev') {
@ -503,7 +483,7 @@
}.bind(this));
},
watch: {
"prop.tabName": function () {
"prop.tabName":function () {
this.onSaveState();
}
}

@ -9,13 +9,10 @@ import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import xyz.wbsite.frame.base.Token;
import xyz.wbsite.module.admin.mgr.ConfigManager;
import xyz.wbsite.module.admin.mgr.LocationsManager;
import xyz.wbsite.module.admin.mgr.ServicesManager;
import xyz.wbsite.module.admin.req.ConfigCreateRequest;
import xyz.wbsite.module.admin.req.LocationsCreateRequest;
import xyz.wbsite.module.admin.req.ServicesCreateRequest;
import xyz.wbsite.module.admin.rsp.ConfigCreateResponse;
import xyz.wbsite.module.admin.rsp.LocationsCreateResponse;
import xyz.wbsite.module.admin.rsp.ServicesCreateResponse;
@ -26,8 +23,6 @@ public class DataInit {
@Autowired
private Token token;
@Autowired
private ConfigManager configManager;
@Autowired
private ServicesManager servicesManager;
@Autowired
private LocationsManager locationsManager;
@ -57,14 +52,4 @@ public class DataInit {
}
}
}
private void create(String... data) {
ConfigCreateRequest request = new ConfigCreateRequest();
request.setConfName(data[0]);
request.setConfType(data[1]);
request.setConfKey(data[2]);
request.setConfValue(data[3]);
request.setConfNote(data[4]);
ConfigCreateResponse configCreateResponse = configManager.create(request, token);
}
}

@ -24,7 +24,7 @@ import static junit.framework.TestCase.assertTrue;
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
* @since 2021-02-08
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@ -41,8 +41,8 @@ public class ConfigDataTest {
public void testCreate() {
ConfigDataCreateRequest request = new ConfigDataCreateRequest();
request.setTargetId(1L);
request.setRuleId(1L);
request.setConfName("配置名称");
request.setConfType("value");
request.setConfValue("配置属值");
request.setConfNote("配置备注");
@ -57,8 +57,8 @@ public class ConfigDataTest {
//创建数据
ConfigDataCreateRequest createRequest = new ConfigDataCreateRequest();
createRequest.setTargetId(1L);
createRequest.setRuleId(1L);
createRequest.setConfName("配置名称");
createRequest.setConfType("value");
createRequest.setConfValue("配置属值");
createRequest.setConfNote("配置备注");
@ -79,8 +79,8 @@ public class ConfigDataTest {
//创建数据
ConfigDataCreateRequest createRequest = new ConfigDataCreateRequest();
createRequest.setTargetId(1L);
createRequest.setRuleId(1L);
createRequest.setConfName("配置名称");
createRequest.setConfType("value");
createRequest.setConfValue("配置属值");
createRequest.setConfNote("配置备注");
@ -92,8 +92,8 @@ public class ConfigDataTest {
ConfigDataUpdateRequest request = new ConfigDataUpdateRequest();
request.setId(createResponse.getId());
request.setTargetId(1L);
request.setRuleId(1L);
request.setConfName("配置名称");
request.setConfType("value");
request.setConfValue("配置属值");
request.setConfNote("配置备注");
@ -107,7 +107,6 @@ public class ConfigDataTest {
ConfigDataFindRequest request = new ConfigDataFindRequest();
request.setTargetId(1L);
request.setConfName("配置名称");
request.setConfType("value");
ConfigDataFindResponse response = configDataManager.find(request,token);

@ -1,111 +0,0 @@
package xyz.wbsite.admin;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import xyz.wbsite.frame.base.Token;
import xyz.wbsite.module.admin.mgr.ConfigManager;
import xyz.wbsite.module.admin.req.ConfigCreateRequest;
import xyz.wbsite.module.admin.req.ConfigDeleteRequest;
import xyz.wbsite.module.admin.req.ConfigFindRequest;
import xyz.wbsite.module.admin.req.ConfigUpdateRequest;
import xyz.wbsite.module.admin.rsp.ConfigCreateResponse;
import xyz.wbsite.module.admin.rsp.ConfigDeleteResponse;
import xyz.wbsite.module.admin.rsp.ConfigFindResponse;
import xyz.wbsite.module.admin.rsp.ConfigUpdateResponse;
import static junit.framework.TestCase.assertTrue;
/**
* ConfigTest - -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-07
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class ConfigTest {
@Autowired
private Token token;
@Autowired
private ConfigManager configManager;
@Test
public void testCreate() {
ConfigCreateRequest request = new ConfigCreateRequest();
request.setConfName("配置名称");
request.setConfType("value");
request.setConfValue("配置属值");
request.setConfNote("配置备注");
ConfigCreateResponse response = configManager.create(request,token);
assertTrue(!response.hasError());
}
@Test
public void testDelete() {
//创建数据
ConfigCreateRequest createRequest = new ConfigCreateRequest();
createRequest.setConfName("配置名称");
createRequest.setConfType("value");
createRequest.setConfValue("配置属值");
createRequest.setConfNote("配置备注");
ConfigCreateResponse createResponse = configManager.create(createRequest,token);
assertTrue(!createResponse.hasError() && createResponse.getId() > 0);
//删除数据
ConfigDeleteRequest request = new ConfigDeleteRequest();
request.setId(createResponse.getId());
ConfigDeleteResponse response = configManager.delete(request,token);
assertTrue(!response.hasError() && response.getResult() == 1L);
}
@Test
public void testUpdate() {
//创建数据
ConfigCreateRequest createRequest = new ConfigCreateRequest();
createRequest.setConfName("配置名称");
createRequest.setConfType("value");
createRequest.setConfValue("配置属值");
createRequest.setConfNote("配置备注");
ConfigCreateResponse createResponse = configManager.create(createRequest, token);
assertTrue(!createResponse.hasError());
//更新数据
ConfigUpdateRequest request = new ConfigUpdateRequest();
request.setId(createResponse.getId());
request.setConfName("配置名称");
request.setConfType("value");
request.setConfValue("配置属值");
request.setConfNote("配置备注");
ConfigUpdateResponse response = configManager.update(request,token);
assertTrue(!response.hasError() && response.getResult() == 1L);
}
@Test
public void testFind() {
ConfigFindRequest request = new ConfigFindRequest();
request.setConfName("配置名称");
request.setConfType("value");
ConfigFindResponse response = configManager.find(request,token);
assertTrue(!response.hasError());
}
}

@ -0,0 +1,127 @@
package xyz.wbsite.admin;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import xyz.wbsite.frame.base.Token;
import xyz.wbsite.module.admin.mgr.RulesManager;
import xyz.wbsite.module.admin.req.RulesCreateRequest;
import xyz.wbsite.module.admin.req.RulesDeleteRequest;
import xyz.wbsite.module.admin.req.RulesFindRequest;
import xyz.wbsite.module.admin.req.RulesUpdateRequest;
import xyz.wbsite.module.admin.rsp.RulesCreateResponse;
import xyz.wbsite.module.admin.rsp.RulesDeleteResponse;
import xyz.wbsite.module.admin.rsp.RulesFindResponse;
import xyz.wbsite.module.admin.rsp.RulesUpdateResponse;
import static junit.framework.TestCase.assertTrue;
/**
* RulesTest - -
*
* @author wangbing
* @version 0.0.1
* @since 2021-02-08
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class RulesTest {
@Autowired
private Token token;
@Autowired
private RulesManager rulesManager;
@Test
public void testCreate() {
RulesCreateRequest request = new RulesCreateRequest();
request.setRuleFor("value");
request.setRuleTitle("规则标题");
request.setRuleName("规则名称");
request.setRuleValue("规则属值");
request.setValueDefault("默认属值");
request.setValueRegex("属值正则");
request.setRuleNote("规则描述");
RulesCreateResponse response = rulesManager.create(request,token);
assertTrue(!response.hasError());
}
@Test
public void testDelete() {
//创建数据
RulesCreateRequest createRequest = new RulesCreateRequest();
createRequest.setRuleFor("value");
createRequest.setRuleTitle("规则标题");
createRequest.setRuleName("规则名称");
createRequest.setRuleValue("规则属值");
createRequest.setValueDefault("默认属值");
createRequest.setValueRegex("属值正则");
createRequest.setRuleNote("规则描述");
RulesCreateResponse createResponse = rulesManager.create(createRequest,token);
assertTrue(!createResponse.hasError() && createResponse.getId() > 0);
//删除数据
RulesDeleteRequest request = new RulesDeleteRequest();
request.setId(createResponse.getId());
RulesDeleteResponse response = rulesManager.delete(request,token);
assertTrue(!response.hasError() && response.getResult() == 1L);
}
@Test
public void testUpdate() {
//创建数据
RulesCreateRequest createRequest = new RulesCreateRequest();
createRequest.setRuleFor("value");
createRequest.setRuleTitle("规则标题");
createRequest.setRuleName("规则名称");
createRequest.setRuleValue("规则属值");
createRequest.setValueDefault("默认属值");
createRequest.setValueRegex("属值正则");
createRequest.setRuleNote("规则描述");
RulesCreateResponse createResponse = rulesManager.create(createRequest, token);
assertTrue(!createResponse.hasError());
//更新数据
RulesUpdateRequest request = new RulesUpdateRequest();
request.setId(createResponse.getId());
request.setRuleFor("value");
request.setRuleTitle("规则标题");
request.setRuleName("规则名称");
request.setRuleValue("规则属值");
request.setValueDefault("默认属值");
request.setValueRegex("属值正则");
request.setRuleNote("规则描述");
RulesUpdateResponse response = rulesManager.update(request,token);
assertTrue(!response.hasError() && response.getResult() == 1L);
}
@Test
public void testFind() {
RulesFindRequest request = new RulesFindRequest();
request.setRuleFor("value");
request.setRuleTitle("规则标题");
request.setRuleName("规则名称");
request.setRuleValue("规则属值");
request.setValueDefault("默认属值");
request.setValueRegex("属值正则");
RulesFindResponse response = rulesManager.find(request,token);
assertTrue(!response.hasError());
}
}
Loading…
Cancel
Save

Powered by TurnKey Linux.