first commit

This commit is contained in:
Alawn
2023-03-28 13:54:33 +08:00
commit 762aefafe1
455 changed files with 47806 additions and 0 deletions
@@ -0,0 +1,50 @@
package com.hanhui.act.accounting.api.enums;
/**
* <p>帐户分类</p>
* @author anonymous
* @version $Id: AccountFamily.java, v 0.1 2012-9-28 上午10:32:33 anonymous Exp $
*/
public enum AccountFamily {
INNER(1, "内部账户"),
OUTER(2, "客户账户");
/** 代码 */
private final int code;
/** 名称 */
private final String displayName;
/**
* 构造
* @param code
* @param displayName
*/
AccountFamily(int code, String displayName) {
this.code = code;
this.displayName = displayName;
}
/**
* 根据代码获取枚举
* @param code
* @return
*/
public static AccountFamily getByCode(int code) {
for (AccountFamily family : AccountFamily.values()) {
if (family.getCode() == code) {
return family;
}
}
return null;
}
public int getCode() {
return code;
}
public String getDisplayName() {
return displayName;
}
}
@@ -0,0 +1,76 @@
package com.hanhui.act.accounting.api.enums;
/**
* <p>入账规则</p>
* @author anonymous
* @version $Id: AccountingRule.java, v 0.1 2012-9-28 下午2:10:17 anonymous Exp $
*/
public enum AccountingRule {
/**减钱(付款方):先贷记账户后借记账户,加钱(收款方):借记账户*/
DEFAULT(0, "DEFAULT"),
/**只借记子账户*/
DR(1, "DR"),
/**只贷记子账户*/
CR(2, "CR"),
/**只冻结子账户 */
FR(3, "FR");
/** 代码 */
private final int code;
/** 名称 */
private final String displayName;
/**
* 私有构造函数
*
* @param code
* @param name
*/
AccountingRule(int code, String displayName) {
this.code = code;
this.displayName = displayName;
}
/**
* @return Returns the code.
*/
public int getCode() {
return code;
}
/**
* @return Returns the displayName.
*/
public String getDisplayName() {
return displayName;
}
/**
*
* @param rule
* @return
*/
public static boolean isHasFundType(AccountingRule rule) {
if(rule !=null && rule != DEFAULT) {
return true;
} else {
return false;
}
}
/**
* 通过枚举code获得枚举
*
* @param code
* @return name
*/
public static AccountingRule getByCode(int code) {
for (AccountingRule accountingRule : values()) {
if (accountingRule.getCode() == code) {
return accountingRule;
}
}
return null;
}
}
@@ -0,0 +1,77 @@
package com.hanhui.act.accounting.api.enums;
public enum CrDr {
DEBIT(1, "借方") {
@Override
public CrDr reverse() {
return CREDIT;
}
},
CREDIT(2, "贷方") {
@Override
public CrDr reverse() {
return DEBIT;
}
};
/** 代码 */
private final int code;
/** 名称 */
private final String displayName;
/**
* 构造
* @param code
* @param displayName
*/
CrDr(int code, String displayName) {
this.code = code;
this.displayName = displayName;
}
/**
* 根据代码获取枚举
* @param code
* @return
*/
public static CrDr getByCode(int code) {
for (CrDr crdr : CrDr.values()) {
if (crdr.code() == code) {
return crdr;
}
}
return null;
}
/**
* 获取反向借贷
* @param forward
* @return
*/
public abstract CrDr reverse();
public int code() {
return code;
}
public String displayName() {
return displayName;
}
/**
* @return the code
*/
public int getCode() {
return code;
}
/**
* @return the displayName
*/
public String getDisplayName() {
return displayName;
}
}
@@ -0,0 +1,36 @@
package com.hanhui.act.accounting.api.enums;
public class EnumUtil {
public static <E extends IAccountEnum> E valueOf(Class<E> cls, int code) {
for (Object obj : cls.getEnumConstants()) {
IAccountEnum e = (IAccountEnum) obj;
if (e.code() == code) return cls.cast(e);
}
return null;
}
public static IAccountEnum valueOfCode(Class<?> cls, int code) {
for (Object obj : cls.getEnumConstants()) {
IAccountEnum e = (IAccountEnum) obj;
if (e.code() == code) return e;
}
return null;
}
public static IAccountEnum valueOfName(Class<?> cls, String name) {
for (Object obj : cls.getEnumConstants()) {
IAccountEnum e = (IAccountEnum) obj;
if (e.displayName().equalsIgnoreCase(name)) return e;
}
return null;
}
public static boolean In(IAccountEnum compare, IAccountEnum... compareTo) {
for (IAccountEnum e : compareTo) {
if (compare == e) return true;
}
return false;
}
}
@@ -0,0 +1,9 @@
package com.hanhui.act.accounting.api.enums;
public interface IAccountEnum {
int code();
String displayName();
}
@@ -0,0 +1,185 @@
package com.hanhui.act.accounting.api.enums;
/**
* <p>储值基础异常代码定义</p>
* @author anonymous
*
*/
public enum ReturnCode {
//公共start
SUCCESS(0, "成功",""),
PROCESSING(1, "处理中",""),
Fail(2, "处理失败",""),
PARAMETERS_AVAILABILITY_ERROR(1022,"参数有效性验证失败",""),
RECORD_NOT_FOUND(1033,"没有找到任何记录",""),
VALUE_TOOLARGE(1062,"值超长",""),
ENUM_NOT_MATCHING(1063,"枚举值不匹配",""),
NONSUPPORT(1066,"暂不支持此功能",""),
//公共end
UPDATE_BALANCE_ERROR(1000, "更新余额失败",""),
STATUS_MAP_IS_NULL(1001, "账户状态位图不能为空",""),
ACCOUNT_STATUS_NOT_ACTIVATION(1002, "账户状态未激活",""),
ACCOUNT_STATUS_LOCK(1003, "账户状态已锁定",""),
ACCOUNT_STATUS_LOGOUT(1004, "账户已销户",""),
ACCOUNT_STATUS_FROZEN(1005, "账户已冻结",""),
ACCOUNT_STATUS_FUND_IN(1006, "账户已止入",""),
ACCOUNT_STATUS_FUND_OUT(1007, "账户已止出",""),
ACCOUNT_NOT_EXISTS(1008, "账户信息不存在",""),
INSUFFICIENT_ACCOUNT_BALANCE(1009, "余额不足",""),
ACCOUNT_STATUS_INACTIVE_ACCOUNTS(1057, "账户已结转长期不动户",""),
UPDATE_TRANSACTION_STATUS_ERROR(1010, "更新transaction状态失败",""),
UPDATE_ENTRY_STATUS_ERROR(1011, "更新entry状态失败",""),
DUPLICATE_REQUEST_ERROR(1012, "重复请求错误",""),
//账户类start
ACCOUNT_CREATE_FAIL(1013, "创建帐户失败",""),
NOT_DEFINED_ACCOUNT_TYPE(1014,"账户模板未定义",""),
ACCOUNT_ID_ALREADY_EXISTS(1015,"账户ID已存在",""),
FROZEN_SUBACCT_DETAIL_NOT_FOUND(1016,"原冻结记录未找到",""),
BATCHBOOKING(1017,"批量持久化分录成功",""),
QUERY_BATCHACCOUNTINGRESULT_OK(1018,"查询批量入账结果成功",""),
QUERY_BATCHACCOUNTINGRESULT_NOTHING(1019,"没有查询到任何数据",""),
GET_GZIP_ERROR(1020,"批量数据Gzip转换失败",""),
ACCOUNT_ID_NOT_EXISTS(1021,"账户ID不存在",""),
ONLY_ONE_ACCOUNT(1022,"查询只支持单一账户查询,该会员号+账户类型下可能存在多个账户",""),
PARAMETERS_BUSINESS_ERROR(1023,"参数业务规则验证失败",""),
ACCOUNT_STATUS_HAS_ACTIVATED(1024,"账户状态已激活",""),
ACCOUNT_STATUS_UNLOCK(1025, "账户状态已解锁",""),
ACCOUNT_STATUS_HAS_UPDATED(1026, "账户状态已更新,不需要重复更新",""),
ACCOUNTNO_GREATERTHAN_MAX(1059, "开户数超过最大值99",""),
INNERACCOUNT_NONSUPPORT(1064, "内部户不支持此功能",""),
OUTERACCOUNT_NONSUPPORT(1065, "外部户不支持此功能",""),
ACCOUNT_BUFFER_RULE_CONFIGURED(1070, "该账户已配置缓冲入账规则",""),
ACCOUNT_SIZE_NOTEQUAL_PARAMETERSIZE(1071,"查询所得账户数目与传入参数数目不符!",""),
//账户类end
//单笔,批量查询start
TRANSACTION_INIT(1027,"事务状态:初始",""),
TRANSACTION_PROCEEDING(1028,"事务状态:处理中",""),
TRANSACTION_COMPLETE_SUCCESS(1029,"事务状态:入账完成_成功",""),
TRANSACTION_FAIL_PROCEEDING(1030,"事务状态:入账失败_处理中",""),
TRANSACTION_COMPLETE_FAIL(1031,"事务状态:入账完成_失败",""),
TRANSACTION_STATUS_UNKNOW(1032,"事务状态:状态未知",""),
//单笔,批量查询end
CREATE_MORE_BASICS_ACCOUNT(1034,"只能创建一个基本户",""),
MORE_THAN_100_ACCOUNTS_CREATED(1035,"一个用户不能创建超过100个账户",""),
TRANSNO_TXNTYPE_SYSTRACENO_EXIST(1036,"相同事务号,系统跟踪号,入账类型已存在",""),
TRANSACTION_NOT_EXIST(1037,"事务对象不存在",""),
TRANSACTION_CANCELED(1038,"不能重复撤销",""),
REQUEST_EXIST(1039,"请求已存在",""),
UNIQUENESS_RESTRAIN(1040,"违法唯一性约束(transactionNo,sysTraceNo,txnType)",""),
INVALID_PARAM(1041, "输入参数错误",""),
INACTIVE_ACCOUNTS_ERRORS(1042, "会员账户已转不动户",""),
ACCOUNT_NOT_ACTIVATED(1043, "该会员账户没有激活",""),
UNFORZEN_NOTEQUALS_FROZEN(1044, "解冻金额与冻结金额不一致",""),
UNFORZEN_EXIST(1061, "不能重复解冻",""),
TRANSACTIONNO_EXIST(1045, "transactionNo已存在",""),
VOUCHERNO_EXIST(1046, "voucherNo已存在",""),
OPERATER_ERROR(1060, "操作类型非法",""),
//科目类接口start
ACCOUNT_TITLE_NO_NOT_EXISTS(1047,"查询科目号不存在",""),
ACCOUNTTITLE_NOT_ALLOW_DELETE(1048,"科目号已创建账户或有子节点,不允许删除!",""),
ACCOUNTTITLE_EXIST(1049,"科目号已存在,不允许重复录入!",""),
ACCOUNTTITLE_TITLERANGE(1050,"子节点科目范围和父节点不一致!",""),
ACCOUNTTITLE_TITLECODE(1051,"子节点科目号不以父节点科目号起始或首数字与科目类型不符!",""),
ACCOUNTTITLE_BALANCEDIRECTION(1052,"子节点余额方向和父节点科不一致!",""),
ACCOUNTTITLE_TYPE(1053,"子节点类型和父节点不一致!",""),
ACCOUNTTITLE_TYPE_BALANCEDIRECTION(1054,"科目类型和余额方向不符合约定规则!",""),
ACCOUNT_TITLE_IS_NOT_LEAF(1055,"该科目不是叶子结点",""),
ACCOUNT_TITLE_INVALID(1056,"该科目状态无效",""),
ACCOUNT_TITLE_IS_NOT_INNER_ACCOUNT(1058,"该科目不是内部账户",""),
//科目类接口end
//公共
SYS_EXP(9998, "系统异常",""),
DB_EXCEPTION(9999, "数据库异常","");
//充退判断是否订单是否处理完的Map
// private static Map<String, ReturnCode> INST_SUCCESS_MAP = new HashMap<String, ReturnCode>();
//
// static {
//
//// INST_SUCCESS_MAP.put(REFUND_MANUAL.code, REFUND_MANUAL);
//// INST_SUCCESS_MAP.put(CMF_INST_PAY_SUBMIT.code, CMF_INST_PAY_SUBMIT);
//// INST_SUCCESS_MAP.put(CMF_INST_PAY_PROCESS.code, CMF_INST_PAY_PROCESS);
// INST_SUCCESS_MAP.put(PROCESSING.code, PROCESSING);
// INST_SUCCESS_MAP.put(SUCCESS.code, SUCCESS);
// }
/** 错误代码 */
private int code;
/** 错误消息内容格式 */
private String msg;
/** 错误名称 */
private String name;
private ReturnCode(int code, String name, String msg) {
this.code = code;
this.name = name;
this.msg = "返回编码名称:" + name + "\n返回编码详细信息:" + msg;
}
public int getCode() {
return this.code;
}
public String getMsg() {
return this.msg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setCode(int code) {
this.code = code;
}
public void setMsg(String msg) {
this.msg = "返回编码名称:" + name + "\n返回编码详细信息:" + msg;
}
public static ReturnCode hasType(Enum<?> type) {
for (ReturnCode metaype : ReturnCode.values()) {
if (metaype.equals(type)) {
return metaype;
}
}
return null;
}
// public static boolean isSuccess(String returnCode) {
// return INST_SUCCESS_MAP.containsKey(returnCode);
// }
public static ReturnCode getByCode(int code) {
for (ReturnCode value : ReturnCode.values()) {
if (value.getCode()==code) {
return value;
}
}
return null;
}
}
@@ -0,0 +1,53 @@
package com.hanhui.act.accounting.api.responses;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
public class Response implements Serializable{
private static final long serialVersionUID = 5515924664000845459L;
protected int code;
protected String message;
public Response() {
super();
}
public Response(int code) {
this.code = code;
}
public Response(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}
}