first commit
This commit is contained in:
3
comm/Syspara/WebContent/META-INF/MANIFEST.MF
Executable file
3
comm/Syspara/WebContent/META-INF/MANIFEST.MF
Executable file
@@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
Class-Path:
|
||||
|
||||
15
comm/Syspara/build/classes/applicationContext-syspara.xml
Executable file
15
comm/Syspara/build/classes/applicationContext-syspara.xml
Executable file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://code.alibabatech.com/schema/dubbo
|
||||
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
|
||||
">
|
||||
|
||||
<bean id="sysparaService" class="project.syspara.internal.SysparaServiceImpl">
|
||||
<property name="hibernateTemplate" ref="hibernateTemplate" />
|
||||
<property name="pagedQueryDao" ref="pagedDao" />
|
||||
</bean>
|
||||
<dubbo:service interface="project.syspara.SysparaService" ref="sysparaService"/>
|
||||
</beans>
|
||||
17
comm/Syspara/build/classes/applicationContext-syspara_admin.xml
Executable file
17
comm/Syspara/build/classes/applicationContext-syspara_admin.xml
Executable file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://code.alibabatech.com/schema/dubbo
|
||||
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
|
||||
">
|
||||
|
||||
<dubbo:reference id="sysparaService"
|
||||
interface="project.syspara.SysparaService" check="false" />
|
||||
|
||||
<bean id="adminUserSysparaAction" class="project.syspara.action.AdminUserSysparaAction"
|
||||
scope="prototype">
|
||||
<property name="adminProductService" ref="adminProductService" />
|
||||
</bean>
|
||||
</beans>
|
||||
30
comm/Syspara/build/classes/project/syspara/mapping/Syspara.hbm.xml
Executable file
30
comm/Syspara/build/classes/project/syspara/mapping/Syspara.hbm.xml
Executable file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
||||
<hibernate-mapping>
|
||||
<class name="project.syspara.Syspara" table="T_SYSPARA">
|
||||
<id name="id" type="java.lang.String">
|
||||
<column name="UUID" />
|
||||
<generator class="uuid.hex" />
|
||||
</id>
|
||||
<property name="partyId" type="java.lang.String">
|
||||
<column name="PARTY_ID" />
|
||||
</property>
|
||||
<property name="value" type="java.lang.String">
|
||||
<column name="SVALUE" />
|
||||
</property>
|
||||
<property name="code" type="java.lang.String">
|
||||
<column name="CODE" />
|
||||
</property>
|
||||
|
||||
<property name="type" type="int">
|
||||
<column name="STYPE" />
|
||||
</property>
|
||||
<property name="order" type="int">
|
||||
<column name="SORDER" />
|
||||
</property>
|
||||
<property name="notes" type="java.lang.String">
|
||||
<column name="NOTES" />
|
||||
</property>
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
17
comm/Syspara/config/spring/applicationContext-syspara.xml
Executable file
17
comm/Syspara/config/spring/applicationContext-syspara.xml
Executable file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://code.alibabatech.com/schema/dubbo
|
||||
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
|
||||
">
|
||||
|
||||
<bean id="sysparaService" class="project.syspara.internal.SysparaServiceImpl">
|
||||
<property name="hibernateTemplate" ref="hibernateTemplate" />
|
||||
<property name="pagedQueryDao" ref="pagedDao" />
|
||||
</bean>
|
||||
<!--
|
||||
<dubbo:service interface="project.syspara.SysparaService" ref="sysparaService"/>
|
||||
-->
|
||||
</beans>
|
||||
30
comm/Syspara/dbscript/1.0/SYSPARA-DDL-MYSQL.SQL
Executable file
30
comm/Syspara/dbscript/1.0/SYSPARA-DDL-MYSQL.SQL
Executable file
@@ -0,0 +1,30 @@
|
||||
/*==============================================================*/
|
||||
/* 系统参数 */
|
||||
/*==============================================================*/
|
||||
DROP TABLE IF EXISTS T_SYSPARA;
|
||||
CREATE TABLE T_SYSPARA
|
||||
(
|
||||
UUID VARCHAR(64) NOT NULL,
|
||||
CODE VARCHAR(32),
|
||||
PARTY_ID VARCHAR(32),
|
||||
SVALUE VARCHAR(128),
|
||||
SORDER int,
|
||||
STYPE int,
|
||||
NOTES varchar(1024),
|
||||
PRIMARY KEY (UUID)
|
||||
)ENGINE=INNODB DEFAULT CHARSET=UTF8;
|
||||
|
||||
CREATE INDEX INX_SYSPARA_STYPE ON T_SYSPARA
|
||||
(
|
||||
STYPE,SORDER
|
||||
);
|
||||
|
||||
CREATE INDEX INX_SYSPARA_CODE ON T_SYSPARA
|
||||
(
|
||||
CODE
|
||||
);
|
||||
|
||||
CREATE INDEX INX_SYSPARA_PARTY_ID ON T_SYSPARA
|
||||
(
|
||||
PARTY_ID,CODE
|
||||
);
|
||||
51
comm/Syspara/dbscript/2.1/SYSPARA-DML-MYSQL.SQL
Executable file
51
comm/Syspara/dbscript/2.1/SYSPARA-DML-MYSQL.SQL
Executable file
@@ -0,0 +1,51 @@
|
||||
|
||||
|
||||
|
||||
|
||||
--提现差额限制是否开启
|
||||
INSERT INTO T_SYSPARA VALUES ('withdraw_limit_open', 'withdraw_limit_open', null, 'false', '100', '2', '提现差额限制是否开启(true开启,false关闭)');
|
||||
--推荐矿机收益奖金参数
|
||||
INSERT INTO T_SYSPARA VALUES ('miner_bonus_parameters', 'miner_bonus_parameters', null, '0.1,0.05,0.03', '100', '2', '推荐矿机收益奖金参数');
|
||||
--推荐人充值推荐奖金是否开启(true开启,false关闭)
|
||||
INSERT INTO T_SYSPARA VALUES ('user_recom_bonus_open', 'user_recom_bonus_open', null, 'true', '100', '2', '推荐人充值推荐奖金是否开启(true开启,false关闭)');
|
||||
|
||||
|
||||
|
||||
|
||||
INSERT INTO T_SYSPARA VALUES ('withdraw_limit_num', 'withdraw_limit_num', null, '0', '100', '2', '当天提现次数限制,若为0或空则不做限制');
|
||||
|
||||
INSERT INTO T_SYSPARA VALUES ('withdraw_limit_time', 'withdraw_limit_time', null, '', '100', '2', '每日可提现时间段限制,若为空则不做限制,例如(13:00:00-18:00:00)');
|
||||
|
||||
|
||||
|
||||
|
||||
UPDATE T_SYSPARA SET NOTES = '提现手续费收取方式,fixed是单笔固定金额,rate是百分比,part是分段', SVALUE = 'part' WHERE UUID ='withdraw_fee_type';
|
||||
|
||||
--提现类型part的分段手续费1000为1的手续费,1000-10000为2的手续费
|
||||
INSERT INTO T_SYSPARA VALUES ('withdraw_fee_part', 'withdraw_fee_part', null, '1000,1,10000,2,999999999999,3', '100', '2', '提现类型part的分段手续费1000为1的手续费,1000-10000为2的手续费');
|
||||
|
||||
|
||||
|
||||
-- 推荐首次购买矿机收益奖金参数
|
||||
INSERT INTO T_SYSPARA VALUES ('miner_first_bonus_parameters', 'miner_first_bonus_parameters', null, '0.05,0.03,0.01', '100', '2', '推荐首次购买矿机收益奖金参数');
|
||||
-- 修改矿机推荐奖励比率
|
||||
UPDATE T_SYSPARA SET SVALUE='0.2,0.1,0.05' WHERE UUID='miner_bonus_parameters';
|
||||
|
||||
|
||||
-- 用户转账手续费
|
||||
INSERT INTO T_SYSPARA VALUES ('user_transfer_fee', 'user_transfer_fee', null, '1', '100', '2', '用户之间转账手续费,输入10实际为(10%)');
|
||||
|
||||
|
||||
|
||||
-- 最低充值金额
|
||||
INSERT INTO T_SYSPARA VALUES ('recharge_limit_min', 'recharge_limit_min', null, '1', '100', '2', '充值最低金额(USDT),充值其他币种会被计算成usdt检查是否达到');
|
||||
|
||||
|
||||
-- 最高充值金额
|
||||
INSERT INTO T_SYSPARA VALUES ('recharge_limit_max', 'recharge_limit_max', null, '9999999', '100', '2', '充值最高金额(USDT),充值其他币种会被计算成usdt检查是否超过');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INSERT INTO T_SYSPARA VALUES ('fund_manager_uid_sequence', 'fund_manager_uid_sequence', null, '2000000', '100', '2', '基金经理人uid自增序列');
|
||||
52
comm/Syspara/src/project/data/loadcache/SysparaLoadCacheService.java
Executable file
52
comm/Syspara/src/project/data/loadcache/SysparaLoadCacheService.java
Executable file
@@ -0,0 +1,52 @@
|
||||
package project.data.loadcache;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
|
||||
|
||||
import project.RedisKeys;
|
||||
import project.onlinechat.OnlineChatMessage;
|
||||
import project.redis.RedisHandler;
|
||||
import project.syspara.Syspara;
|
||||
|
||||
public class SysparaLoadCacheService extends HibernateDaoSupport {
|
||||
//private static final Log logger = LogFactory.getLog(PartyLoadCacheService.class);
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
private RedisHandler redisHandler;
|
||||
|
||||
public void loadcache() {
|
||||
loadSyspara();
|
||||
logger.info("完成Syspara数据加载redis");
|
||||
}
|
||||
|
||||
private void loadSyspara() {
|
||||
// StringBuffer queryString = new StringBuffer(" FROM Syspara ");
|
||||
// List<Syspara> list = this.getHibernateTemplate().find(queryString.toString());
|
||||
|
||||
try {
|
||||
List<Syspara> list = (List<Syspara>) this.getHibernateTemplate().find(" FROM Syspara ");
|
||||
Map<String, Syspara> cache = new ConcurrentHashMap<String, Syspara>();
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
Syspara syspara = list.get(i);
|
||||
redisHandler.setSync(RedisKeys.SYSPARA_CODE + syspara.getCode(), syspara);
|
||||
cache.put(list.get(i).getId().toString(), syspara);
|
||||
}
|
||||
redisHandler.setSync(RedisKeys.SYSPARA_MAP, cache);
|
||||
} catch (Exception e) {
|
||||
logger.error("[SysparaLoadCacheService loadSyspara] 加载缓存数报错: ", e);
|
||||
}
|
||||
}
|
||||
|
||||
public void setRedisHandler(RedisHandler redisHandler) {
|
||||
this.redisHandler = redisHandler;
|
||||
}
|
||||
|
||||
}
|
||||
79
comm/Syspara/src/project/syspara/SysParaCode.java
Executable file
79
comm/Syspara/src/project/syspara/SysParaCode.java
Executable file
@@ -0,0 +1,79 @@
|
||||
package project.syspara;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
public enum SysParaCode {
|
||||
// 用户通过手机短信登录或者校验身份时使用
|
||||
SEND_CODE_TEXT("send_code_text", "短信验证码消息模板"),
|
||||
|
||||
// 用户修改绑定邮箱时使用
|
||||
SEND_EMAIL_CODE_TEXT("send_email_code_text", "邮件验证码消息模板"),
|
||||
|
||||
// 用户修改绑定邮箱时使用
|
||||
SEND_EMAIL_CODE_TITLE("send_email_code_title", "邮件验证码标题"),
|
||||
|
||||
// 用户上架商品时校验充值指标
|
||||
ONSHELF_RECHARGE_AMOUNT_LIMIT("onshelf_recharge_amount_limit", "上架商品校验充值金额最低指标"),
|
||||
|
||||
// 是否实时统计商品展示权重
|
||||
SYNC_REFRESH_SELLER_GOODS_SHOW_WEIGHT("sync_refresh_seller_goods_show_weight", "发生相关事件后是否同步更新商品展示权重"),
|
||||
|
||||
// 几天内新上架的商品要被标记为推荐新品
|
||||
NEW_SELLER_GOODS_DAY_LIMIT("new_seller_goods_day_limit", "设置新商品时间限制"),
|
||||
|
||||
// 商铺升级业务中的有效累计充值金额
|
||||
VALID_RECHARGE_AMOUNT_FOR_SELLER_UPGRADE("valid_recharge_amount_for_seller_upgrade", "店铺升级业务有效充值额度"),
|
||||
|
||||
// 商铺升级业务中的计算团队人数的累计有效充值额度
|
||||
VALID_RECHARGE_AMOUNT_FOR_TEAM_NUM("valid_recharge_amount_for_team_num", "商铺升级业务中的计算团队人数的累计有效充值额度"),
|
||||
|
||||
// 商城推广拉人活动,首次充值有效充值额度
|
||||
VALID_RECHARGE_AMOUNT_FOR_FIRST_RECHARGE_BONUS("valid_recharge_amount_for_first_recharge_bonus", "商城推广拉人活动首次充值赠送礼金有效充值额度"),
|
||||
|
||||
// 是否需要绑定提现地址,默认或无配置记录时为:不需要(false)
|
||||
MUST_BIND_WITHDRAW_ADDRESS("must_bind_withdraw_address", "是否需要绑定提现地址"),
|
||||
|
||||
// 是否需要绑定提现地址,默认或无配置记录时为:不需要(false)
|
||||
RECHARGE_COMMISSION_RATE("recharge_commission_rate", "充值提成比例"),
|
||||
|
||||
CLERK_IS_OPEN("clerk_is_open", "盘口是否显示业务员需求"),
|
||||
|
||||
WITHDRAW_COMMISSION_RATE("withdraw_commission_rate", "提现提成扣除"),
|
||||
|
||||
RECHARGE_IS_OPEN("recharge_is_open", "充值审核是否可以修改金额 0-不修改 1-修改"),
|
||||
|
||||
;
|
||||
|
||||
|
||||
private String code;
|
||||
|
||||
private String description;
|
||||
|
||||
private SysParaCode(String code, String description) {
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public static SysParaCode codeOf(String inputCode) {
|
||||
if (StrUtil.isBlank(inputCode)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
SysParaCode[] values = SysParaCode.values();
|
||||
for (SysParaCode one : values) {
|
||||
if (one.getCode().equals(inputCode)) {
|
||||
return one;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
}
|
||||
321
comm/Syspara/src/project/syspara/Syspara.java
Executable file
321
comm/Syspara/src/project/syspara/Syspara.java
Executable file
@@ -0,0 +1,321 @@
|
||||
package project.syspara;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import kernel.bo.EntityObject;
|
||||
import kernel.util.StringUtils;
|
||||
|
||||
/**
|
||||
* 系统参数
|
||||
*/
|
||||
public class Syspara extends EntityObject {
|
||||
|
||||
private static final long serialVersionUID = -6738793277776213674L;
|
||||
|
||||
private Serializable partyId;
|
||||
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 0/ROOT可见; 2/管理员可见; 1/用户参数;
|
||||
*/
|
||||
private int type;
|
||||
|
||||
/**
|
||||
* 0/可修改;1/不可修改;
|
||||
*/
|
||||
private int modify;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private int order;
|
||||
|
||||
private String value;
|
||||
|
||||
/**
|
||||
* 业务含义
|
||||
*/
|
||||
private String notes;
|
||||
|
||||
/**
|
||||
* 类型0:连单,1:dapp
|
||||
*/
|
||||
private int bagType;
|
||||
|
||||
public int getModify() {
|
||||
return modify;
|
||||
}
|
||||
|
||||
public void setModify(int modify) {
|
||||
this.modify = modify;
|
||||
}
|
||||
|
||||
public int getOrder() {
|
||||
return order;
|
||||
}
|
||||
|
||||
public void setOrder(int order) {
|
||||
this.order = order;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public Serializable getPartyId() {
|
||||
return partyId;
|
||||
}
|
||||
|
||||
public void setPartyId(Serializable partyId) {
|
||||
this.partyId = partyId;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public int getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常
|
||||
* </p>
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Integer getInteger() {
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
return Integer.parseInt(value);
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常
|
||||
* </p>
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Long getLong() {
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return Long.parseLong(value);
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常
|
||||
* </p>
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Double getDouble() {
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return Double.parseDouble(value);
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常
|
||||
* </p>
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Float getFloat() {
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
return Float.parseFloat(value);
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常
|
||||
* </p>
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public BigDecimal getBigDecimal() {
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
return new BigDecimal(value);
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常<BR />
|
||||
* 3.默认格式:yyyy-MM-dd
|
||||
* </p>
|
||||
*
|
||||
* @return "yyyy-MM-dd"
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Date getDate() {
|
||||
return getDate("yyyy-MM-dd");
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常<BR />
|
||||
* 3.按传入的日期格式,将value转化成date
|
||||
* </p>
|
||||
*
|
||||
* @param date
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
public Date getDate(String pattern) {
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
return (new SimpleDateFormat(pattern)).parse(value);
|
||||
} catch (Exception ex) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常<BR />
|
||||
* 3.按指定的enum的类型转化
|
||||
* </p>
|
||||
*
|
||||
* @param str
|
||||
* @return
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public Enum<?> getEnum(String enumType) {
|
||||
try {
|
||||
return getEnum(Class.forName(enumType).asSubclass(Enum.class));
|
||||
} catch (ClassNotFoundException ex) {
|
||||
throw new IllegalArgumentException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 1.空值或者空字串返回null<BR />
|
||||
* 2.如果转换失败,直接抛异常<BR />
|
||||
* 3.按指定的enum的类型转化
|
||||
* </p>
|
||||
*
|
||||
* @param enumType
|
||||
* @return
|
||||
*/
|
||||
public <T extends Enum<T>> T getEnum(Class<T> enumType) {
|
||||
if (StringUtils.isNullOrEmpty(value)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return T.valueOf(enumType, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Description: 调用object的toString文件保存数据
|
||||
* </p>
|
||||
*
|
||||
* @param value
|
||||
*/
|
||||
public void setValue(Object value) {
|
||||
setValue((value == null) ? null : value.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* <p>
|
||||
* Description: 获取boolean值,会将参数值转化为boolean值
|
||||
* </p>
|
||||
*
|
||||
* @return true or false
|
||||
*/
|
||||
public boolean getBoolean() {
|
||||
if ("Y".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value) || "1".equals(value)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Syspara clone() throws CloneNotSupportedException {
|
||||
return (Syspara) super.clone();
|
||||
}
|
||||
|
||||
public String getNotes() {
|
||||
return notes;
|
||||
}
|
||||
|
||||
public void setNotes(String notes) {
|
||||
this.notes = notes;
|
||||
}
|
||||
|
||||
public int getBagType() {
|
||||
return bagType;
|
||||
}
|
||||
|
||||
public void setBagType(int bagType) {
|
||||
this.bagType = bagType;
|
||||
}
|
||||
}
|
||||
40
comm/Syspara/src/project/syspara/SysparaService.java
Executable file
40
comm/Syspara/src/project/syspara/SysparaService.java
Executable file
@@ -0,0 +1,40 @@
|
||||
package project.syspara;
|
||||
|
||||
import kernel.web.Page;
|
||||
|
||||
/**
|
||||
* 系统参数
|
||||
*/
|
||||
public interface SysparaService {
|
||||
|
||||
public Syspara find(String code);
|
||||
|
||||
/**
|
||||
* 数据库读取,主要用于bean初始化,(spring 初始化bean在redis数据加载之前,导致无法读取问题)
|
||||
*
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
public Syspara findByDB(String code);
|
||||
|
||||
public void save(Syspara entity);
|
||||
|
||||
public void update(Syspara entity);
|
||||
|
||||
/**
|
||||
* 返回type=2(系统参数,管理员可修改)参数
|
||||
*/
|
||||
public Page pagedQuery(int pageNo, int pageSize);
|
||||
|
||||
/**
|
||||
* 获取 系统参数(ROOT) 列表
|
||||
*/
|
||||
public Page pagedQueryByNotes(int pageNo, int pageSize, String notes_para);
|
||||
|
||||
/**
|
||||
* 获取 系统参数(ADMIN) 列表
|
||||
*/
|
||||
public Page pagedQueryByNotesAdmin(int pageNo, int pageSize, String notes_para);
|
||||
|
||||
void loadCacheUpdate();
|
||||
}
|
||||
187
comm/Syspara/src/project/syspara/internal/SysparaServiceImpl.java
Executable file
187
comm/Syspara/src/project/syspara/internal/SysparaServiceImpl.java
Executable file
@@ -0,0 +1,187 @@
|
||||
package project.syspara.internal;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
|
||||
|
||||
import kernel.util.StringUtils;
|
||||
import kernel.web.Page;
|
||||
import kernel.web.PagedQueryDao;
|
||||
import project.RedisKeys;
|
||||
import project.redis.RedisHandler;
|
||||
import project.syspara.Syspara;
|
||||
import project.syspara.SysparaService;
|
||||
|
||||
public class SysparaServiceImpl extends HibernateDaoSupport implements SysparaService {
|
||||
private PagedQueryDao pagedQueryDao;
|
||||
|
||||
private RedisHandler redisHandler;
|
||||
|
||||
@Override
|
||||
public Syspara find(String code) {
|
||||
if (StrUtil.isBlank(code)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 读数据库
|
||||
*/
|
||||
Syspara syspara = (Syspara) redisHandler.get(RedisKeys.SYSPARA_CODE + code);
|
||||
if (syspara != null) {
|
||||
return syspara;
|
||||
}
|
||||
|
||||
syspara = findByDB(code);
|
||||
if (syspara != null) {
|
||||
redisHandler.setSync(RedisKeys.SYSPARA_CODE + code, syspara);
|
||||
}
|
||||
|
||||
return syspara;
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据库读取,主要用于bean初始化,(spring 初始化bean在redis数据加载之前,导致无法读取问题)
|
||||
*
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
public Syspara findByDB(String code) {
|
||||
/**
|
||||
* 读数据库
|
||||
*/
|
||||
// List<Syspara> list = this.getHibernateTemplate().find("FROM Syspara WHERE code=?", new Object[] { code });
|
||||
|
||||
List<Syspara> list = (List<Syspara>) this.getHibernateTemplate().find("FROM Syspara WHERE code=?0",new Object[] {code});
|
||||
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(Syspara entity) {
|
||||
if (entity.getType() == 0) {
|
||||
return;
|
||||
}
|
||||
this.getHibernateTemplate().update(entity);
|
||||
redisHandler.setSync(RedisKeys.SYSPARA_CODE + entity.getCode(), entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page pagedQuery(int pageNo, int pageSize) {
|
||||
// StringBuffer queryString = new StringBuffer("FROM Syspara");
|
||||
// queryString.append(" where 1=1 ");
|
||||
//
|
||||
// Map<String, Object> parameters = new HashMap<String, Object>();
|
||||
//
|
||||
// queryString.append(" order by code desc ");
|
||||
//
|
||||
// Page page = pagedQueryDao.pagedQueryHql(pageNo, pageSize, queryString.toString(), parameters);
|
||||
//
|
||||
// return page;
|
||||
|
||||
StringBuffer queryString = new StringBuffer();
|
||||
queryString.append(" SELECT ");
|
||||
queryString.append(" sp.CODE code, sp.SVALUE value, sp.NOTES notes ");
|
||||
queryString.append(" FROM T_SYSPARA sp ");
|
||||
queryString.append(" WHERE 1=1 ");
|
||||
queryString.append(" order by code desc ");
|
||||
|
||||
Map<String, Object> parameters = new HashMap<String, Object>();
|
||||
|
||||
Page page = this.pagedQueryDao.pagedQuerySQL(pageNo, pageSize, queryString.toString(), parameters);
|
||||
return page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 系统参数(ROOT) 列表
|
||||
*/
|
||||
@Override
|
||||
public Page pagedQueryByNotes(int pageNo, int pageSize, String notes_para) {
|
||||
|
||||
StringBuffer queryString = new StringBuffer();
|
||||
queryString.append(" SELECT ");
|
||||
queryString.append(" sp.CODE code, sp.SVALUE value, sp.NOTES notes, sp.MODIFY modify ");
|
||||
queryString.append(" FROM T_SYSPARA sp ");
|
||||
queryString.append(" WHERE 1=1 AND sp.BAG_TYPE = 0");
|
||||
|
||||
Map<String, Object> parameters = new HashMap<String, Object>();
|
||||
|
||||
if (!StringUtils.isNullOrEmpty(notes_para)) {
|
||||
queryString.append(" and sp.NOTES like :notes ");
|
||||
parameters.put("notes", "%" + notes_para + "%");
|
||||
}
|
||||
|
||||
queryString.append(" order by code desc ");
|
||||
|
||||
Page page = this.pagedQueryDao.pagedQuerySQL(pageNo, pageSize, queryString.toString(), parameters);
|
||||
return page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 系统参数(ADMIN) 列表
|
||||
*/
|
||||
@Override
|
||||
public Page pagedQueryByNotesAdmin(int pageNo, int pageSize, String notes_para) {
|
||||
|
||||
StringBuffer queryString = new StringBuffer();
|
||||
queryString.append(" SELECT ");
|
||||
queryString.append(" sp.CODE code, sp.SVALUE value, sp.NOTES notes, sp.MODIFY modify ");
|
||||
queryString.append(" FROM T_SYSPARA sp ");
|
||||
queryString.append(" WHERE 1=1 AND sp.BAG_TYPE = 0");
|
||||
|
||||
Map<String, Object> parameters = new HashMap<String, Object>();
|
||||
|
||||
if (!StringUtils.isNullOrEmpty(notes_para)) {
|
||||
queryString.append(" and sp.NOTES like :notes ");
|
||||
parameters.put("notes", "%" + notes_para + "%");
|
||||
}
|
||||
|
||||
// 0/ROOT可见; 2/管理员可见; 1/用户参数;
|
||||
queryString.append(" and sp.STYPE in (:types) ");
|
||||
parameters.put("types", Arrays.asList(2, 1));
|
||||
|
||||
queryString.append(" order by code desc ");
|
||||
|
||||
Page page = this.pagedQueryDao.pagedQuerySQL(pageNo, pageSize, queryString.toString(), parameters);
|
||||
return page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadCacheUpdate() {
|
||||
List<Syspara> list =(List<Syspara>) this.getHibernateTemplate().find(" FROM Syspara ");
|
||||
|
||||
Map<String, Syspara> cache = new ConcurrentHashMap<String, Syspara>();
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
Syspara syspara = list.get(i);
|
||||
redisHandler.setSync(RedisKeys.SYSPARA_CODE + syspara.getCode(), syspara);
|
||||
cache.put(list.get(i).getId().toString(), syspara);
|
||||
}
|
||||
redisHandler.setSync(RedisKeys.SYSPARA_MAP, cache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(Syspara entity) {
|
||||
this.getHibernateTemplate().save(entity);
|
||||
redisHandler.setSync(RedisKeys.SYSPARA_CODE + entity.getCode(), entity);
|
||||
|
||||
}
|
||||
|
||||
public void setPagedQueryDao(PagedQueryDao pagedQueryDao) {
|
||||
this.pagedQueryDao = pagedQueryDao;
|
||||
}
|
||||
|
||||
public void setRedisHandler(RedisHandler redisHandler) {
|
||||
this.redisHandler = redisHandler;
|
||||
}
|
||||
|
||||
}
|
||||
35
comm/Syspara/src/project/syspara/mapping/Syspara.hbm.xml
Executable file
35
comm/Syspara/src/project/syspara/mapping/Syspara.hbm.xml
Executable file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
||||
<hibernate-mapping>
|
||||
<class name="project.syspara.Syspara" table="T_SYSPARA">
|
||||
<id name="id" type="java.lang.String">
|
||||
<column name="UUID" />
|
||||
<generator class="uuid.hex" />
|
||||
</id>
|
||||
<property name="partyId" type="java.lang.String">
|
||||
<column name="PARTY_ID" />
|
||||
</property>
|
||||
<property name="value" type="java.lang.String">
|
||||
<column name="SVALUE" />
|
||||
</property>
|
||||
<property name="code" type="java.lang.String">
|
||||
<column name="CODE" />
|
||||
</property>
|
||||
<property name="type" type="int">
|
||||
<column name="STYPE" />
|
||||
</property>
|
||||
<property name="modify" type="int">
|
||||
<column name="MODIFY" />
|
||||
</property>
|
||||
<property name="order" type="int">
|
||||
<column name="SORDER" />
|
||||
</property>
|
||||
<property name="notes" type="java.lang.String">
|
||||
<column name="NOTES" />
|
||||
</property>
|
||||
<property name="bagType" type="int">
|
||||
<column name="BAG_TYPE" />
|
||||
</property>
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
1096
comm/Syspara/src/project/web/admin/AdminSysparaController.java
Executable file
1096
comm/Syspara/src/project/web/admin/AdminSysparaController.java
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user