开户、查询完整实现
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java b/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
index 0181720..beb4a88 100644
--- a/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
+++ b/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
@@ -30,4 +30,7 @@
@QueryHints({@QueryHint(name = "javax.persistence.lock.timeout", value = "0")})
@Query("select a from TAccount a where a.userid = ?1")
TAccount getByUseridForUpdateNowait(String userid);
+
+ @Query("select a from TAccount a where a.userid = ?1 and a.subjno=?2")
+ TAccount findByUseridAndSubjno(String userid, String subjno);
}
diff --git a/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java b/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
index 2898f3f..03fbfcd 100644
--- a/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
+++ b/src/main/java/com/supwisdom/dlpay/api/dao/PersonDao.java
@@ -2,11 +2,15 @@
import com.supwisdom.dlpay.api.domain.TPerson;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
/**
* Created by shuwei on 2019/4/12.
*/
public interface PersonDao extends JpaRepository<TPerson, String> {
- TPerson findByThirdUniqueIdenty(String thirdUniqueIdenty);
+ @Query(value = "from TPerson where idtype=?1 and idno=?2 ")
+ TPerson findByIdentity(String idtype, String idno);
+
+ TPerson findByUserid(String userid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java b/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
index 2b8cf43..fafd0e6 100644
--- a/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
+++ b/src/main/java/com/supwisdom/dlpay/api/domain/TPerson.java
@@ -6,7 +6,8 @@
@Entity
@Table(name = "TB_PERSON",
- indexes = {@Index(name = "person_name_idx", columnList = "name")})
+ indexes = {@Index(name = "person_name_idx", columnList = "name"),
+ @Index(name = "person_idno_uk", unique = true, columnList = "idtype,idno")})
public class TPerson {
@Id
@GenericGenerator(name = "idGenerator", strategy = "uuid")
@@ -53,16 +54,10 @@
@Column(name = "LASTSAVED", length = 14)
private String lastsaved;
- /**
- * 第三方唯一标识,可为学工号,银行卡号等
- */
- @Column(name = "THIRD_UNIQUE_IDENTY", length = 32)
- private String thirdUniqueIdenty;
-
public TPerson() {
}
- public TPerson(String name, String sex, String status, String idtype, String idno, String country, String nation, String email, String tel, String mobile, String addr, String zipcode, String lastsaved, String thirdUniqueIdenty) {
+ public TPerson(String name, String sex, String status, String idtype, String idno, String country, String nation, String email, String tel, String mobile, String addr, String zipcode, String lastsaved) {
this.name = name;
this.sex = sex;
this.status = status;
@@ -76,9 +71,10 @@
this.addr = addr;
this.zipcode = zipcode;
this.lastsaved = lastsaved;
- this.thirdUniqueIdenty = thirdUniqueIdenty;
}
+
+
public String getUserid() {
return userid;
}
@@ -190,12 +186,4 @@
public void setLastsaved(String lastsaved) {
this.lastsaved = lastsaved;
}
-
- public String getThirdUniqueIdenty() {
- return thirdUniqueIdenty;
- }
-
- public void setThirdUniqueIdenty(String thirdUniqueIdenty) {
- this.thirdUniqueIdenty = thirdUniqueIdenty;
- }
}
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java b/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
index d825148..73a8126 100644
--- a/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
+++ b/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
@@ -18,6 +18,15 @@
@JoinColumn(name = "USERID")
private TPerson person; //绑定的系统用户
+ public TPersonIdentity() {
+ }
+
+ public TPersonIdentity(String thirdUserid, String thirdSyscode, TPerson person) {
+ this.thirdUserid = thirdUserid;
+ this.thirdSyscode = thirdSyscode;
+ this.person = person;
+ }
+
public String getThirdUserid() {
return thirdUserid;
}
diff --git a/src/main/java/com/supwisdom/dlpay/exception/RequestParamCheckException.java b/src/main/java/com/supwisdom/dlpay/exception/RequestParamCheckException.java
new file mode 100644
index 0000000..328a08d
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/exception/RequestParamCheckException.java
@@ -0,0 +1,14 @@
+package com.supwisdom.dlpay.exception;
+
+public class RequestParamCheckException extends Exception {
+ private int errCode;
+
+ public RequestParamCheckException(int errCode, String message) {
+ super(String.format("Req-%d,%s", errCode, message));
+ this.errCode = errCode;
+ }
+
+ public int getErrCode() {
+ return errCode;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java b/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
index 23c7172..af90257 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
@@ -76,4 +76,6 @@
/********************** 获取【系统参数】【业务参数】通用方法 **********************/
+ String getSubsystemSignKey(String syscode);
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
index c1d9971..80fad1f 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
@@ -234,4 +234,10 @@
return null;
}
+ @Override
+ public String getSubsystemSignKey(String syscode){
+ // fixme: 验证数据无误性签名秘钥
+ return "";
+ }
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
index 8e4e55d..7ea105c 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/HmacUtil.java
@@ -34,33 +34,6 @@
return result;
}
- /**
- * 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串
- *
- * @param params 需要排序并参与字符拼接的参数组
- * @return 拼接后字符串
- */
- public static String createLinkString(Map<String, String> params) {
-
- List<String> keys = new ArrayList<String>(params.keySet());
- Collections.sort(keys);
-
- String prestr = "";
-
- for (int i = 0; i < keys.size(); i++) {
- String key = keys.get(i);
- String value = params.get(key);
-
- if (i == keys.size() - 1) {//拼接时,不包括最后一个&字符
- prestr = prestr + key + "=" + value;
- } else {
- prestr = prestr + key + "=" + value + "&";
- }
- }
-
- return prestr;
- }
-
private static String HMACSHAX(String data, String key, String alg) {
String algorithm = "";
if ("SHA1".equals(alg)) {
@@ -134,7 +107,7 @@
mapValue.put("outtradeno", refno);
mapValue.put("yktshopid", "2");
mapValue.put("shopid", "68512084");
- String signstr = createLinkString(HmacUtil.paraFilter(mapValue));
+ String signstr = StringUtil.createLinkString(HmacUtil.paraFilter(mapValue));
String sign = HmacUtil.HMACSHA1(signstr, "adc4ac6822fd462780f878b86cb94688");
System.out.println("{\"tradeaccount\":\"10000097\",\"tradename\":\"在线点餐\",\"tradeamount\":\"1\"," +
"\"paidamount\": \"1\",\"outtradeno\":\"" + refno + "\",\"yktshopid\": \"2\",\"shopid\":\"68512084\",\"sign\": \"" + sign + "\"}");
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
index c3ff38a..9ca1800 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/StringUtil.java
@@ -1,6 +1,8 @@
package com.supwisdom.dlpay.framework.util;
-import java.util.List;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class StringUtil {
/**
@@ -31,4 +33,102 @@
return str1 == null ? str2 == null : str1.equals(str2);
}
+ /**
+ * 手机号验证
+ *
+ * @param str
+ * @return
+ */
+ public static boolean isMobile(String str) {
+ Pattern p = Pattern.compile("^1[0-9]{10}$"); // 验证手机号
+ Matcher m = p.matcher(str);
+ return m.matches();
+ }
+
+ /**
+ * 邮箱格式验证
+ */
+ public static boolean isEmail(String email) {
+ boolean ret = true;
+ Pattern pattern = Pattern.compile("^([a-zA-Z0-9]+[_|\\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\\.]?)*[a-zA-Z0-9]+\\.[a-zA-Z]{2,3}$");
+ final Matcher mat = pattern.matcher(email);
+ if (!mat.find()) {
+ ret = false;
+ }
+ return ret;
+ }
+
+ /**
+ * 身份证格式验证
+ *
+ * @param str
+ * @return
+ */
+ public static boolean isIdentity(String str) {
+ // 中国公民身份证格式:长度为15或18位,最后一位可以为字母
+ Pattern pattern = Pattern.compile("(\\d{14}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])");
+ final Matcher m = pattern.matcher(str);
+ return m.matches();
+ }
+
+ /**
+ * 除去数组中的空值和签名参数
+ *
+ * @param sArray 签名参数组
+ * @return 去掉空值与签名参数后的新签名参数组
+ */
+ public static Map<String, String> paraFilter(Map<String, String> sArray) {
+ Map<String, String> result = new HashMap<String, String>();
+ if (sArray == null || sArray.size() <= 0) {
+ return result;
+ }
+ for (String key : sArray.keySet()) {
+ String value = sArray.get(key);
+ if (null == value || "".equals(value.trim()) || "null".equalsIgnoreCase(value.trim()) || key.equalsIgnoreCase("sign") || key.equalsIgnoreCase("sign_type")) {
+ continue;
+ }
+ result.put(key, value);
+ }
+ return result;
+ }
+
+ /**
+ * 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串
+ *
+ * @param params 需要排序并参与字符拼接的参数组
+ * @return 拼接后字符串
+ */
+ public static String createLinkString(Map<String, String> params) {
+
+ List<String> keys = new ArrayList<String>(params.keySet());
+ Collections.sort(keys);
+
+ String prestr = "";
+
+ for (int i = 0; i < keys.size(); i++) {
+ String key = keys.get(i);
+ String value = params.get(key);
+
+ if (i == keys.size() - 1) {//拼接时,不包括最后一个&字符
+ prestr = prestr + key + "=" + value;
+ } else {
+ prestr = prestr + key + "=" + value + "&";
+ }
+ }
+
+ return prestr;
+ }
+
+ public static boolean isCharAndNum(String inputStr) {
+ Pattern p = Pattern.compile("\\w+");
+ Matcher m = p.matcher(inputStr);
+ if (m.matches()) {
+ // 除字母和数字外还包含其它字符
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java b/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
index d3e9b11..07e4aaf 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
@@ -10,7 +10,9 @@
public static final String SYSPARA_VALUETYPE_STRING = "string"; //字符串
- public static final int SYSPARAID_NO1 = 1; //paraid=1
+ public static final int SYSPARAID_NO1 = 1; //系统默认最大余额限制的ID
public static final int SYSPARAID_NO2 = 2; //paraid=2
+ public static final double SYSPARA_NO1_DEFAULT = 10000.0; // 系统默认最大余额限制
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java b/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
index 6c97c50..13062ef 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/TradeErrorCode.java
@@ -84,4 +84,25 @@
* */
public static final int LOCK_READ_TIMEOUT = 10015;
+
+ /**
+ * 请求参数错误
+ * */
+ public static final int REQUEST_PARAM_ERROR = 20000;
+
+ /**
+ * 请求参数错误签名错误
+ * */
+ public static final int REQUEST_SIGN_ERROR = 20001;
+
+ /**
+ * 注册用户已经存在
+ */
+ public static final int REGISTER_USER_EXIST = 20003;
+
+
+ //================= 业务处理错误 ==================//
+
+ public static final int BUSINESS_DEAL_ERROR = 30000; //业务处理错误
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java b/src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java
index fefbc51..38695bc 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/XmlUtils.java
@@ -83,6 +83,7 @@
}
return null;
}
+
public static Map<String, String> parseXml(String xml) throws Exception {
Map<String, String> map = new HashMap<String, String>();
Document document = DocumentHelper.parseText(xml);
@@ -92,53 +93,5 @@
map.put(e.getName(), e.getText());
return map;
}
- /**
- * 除去数组中的空值和签名参数
- *
- * @param sArray 签名参数组
- * @return 去掉空值与签名参数后的新签名参数组
- */
- public static Map<String, String> paraFilter(Map<String, String> sArray) {
- Map<String, String> result = new HashMap<String, String>();
- if (sArray == null || sArray.size() <= 0) {
- return result;
- }
- for (String key : sArray.keySet()) {
- String value = sArray.get(key);
- if (value == null || "".equals(value) || "sign".equalsIgnoreCase(key)
- || "sign_type".equalsIgnoreCase(key)) {
- continue;
- }
- result.put(key, value);
- }
- return result;
- }
-
- /**
- * 把数组所有元素排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串
- *
- * @param params 需要排序并参与字符拼接的参数组
- * @return 拼接后字符串
- */
- public static String createLinkString(Map<String, String> params) {
-
- List<String> keys = new ArrayList<String>(params.keySet());
- Collections.sort(keys);
-
- String prestr = "";
-
- for (int i = 0; i < keys.size(); i++) {
- String key = keys.get(i);
- String value = params.get(key);
-
- if (i == keys.size() - 1) {//拼接时,不包括最后一个&字符
- prestr = prestr + key + "=" + value;
- } else {
- prestr = prestr + key + "=" + value + "&";
- }
- }
-
- return prestr;
- }
}
diff --git a/src/main/java/com/supwisdom/dlpay/util/ConstUtil.java b/src/main/java/com/supwisdom/dlpay/util/ConstUtil.java
deleted file mode 100644
index 4a54efa..0000000
--- a/src/main/java/com/supwisdom/dlpay/util/ConstUtil.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.supwisdom.dlpay.util;
-
-/**
- * Created by shuwei on 2019/4/9.
- */
-public class ConstUtil {
- public static final String STATUS_INIT = "init";
- public static final String STATUS_SUCCESS = "success";
- public static final String STATUS_FAIL = "fail";
-
- public static final String ENABLE_YES = "yes";
-
- public static final String ENABLE_NO = "no";
-
-}
diff --git a/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java b/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java
new file mode 100644
index 0000000..7342e18
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java
@@ -0,0 +1,22 @@
+package com.supwisdom.dlpay.util;
+
+/**
+ * Created by shuwei on 2019/4/9.
+ */
+public class ConstantUtil {
+
+ public static final String ENABLE_YES = "yes";
+ public static final String ENABLE_NO = "no";
+
+ public static final String SEX_MALE = "male";
+ public static final String SEX_FEMALE = "female";
+
+ public static final String IDTYPE_IDENTITY = "1"; //身份证
+ public static final String IDTYPE_PASSPORT = "2"; //护照
+ public static final String IDTYPE_DRIVING_LICENSE = "3"; //驾照
+ public static final String IDTYPE_HKM_PASS = "4"; //港澳通行证
+ public static final String IDTYPE_STUEMPNO = "5"; //学工号
+ public static final String IDTYPE_OTHER = "9"; //其他
+ public static final String[] IDTYPE_DICTS = {"1", "2", "3", "4", "5", "9"}; //联动
+
+}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt b/src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt
index e5844c4..2b3b6ee 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/ThirdPayCall.kt
@@ -41,7 +41,7 @@
params.put("timestamp", time)
params.put("sign_method", "HMAC");
params.put("limitflag", "off") //是否判断消费限额,on-判断;off-不判断。默认on(判断限额)。为空或不为off都是on;
- var signstr = HmacUtil.createLinkString(HmacUtil.paraFilter(params))
+ var signstr = StringUtil.createLinkString(HmacUtil.paraFilter(params))
val sign = HmacUtil.HMACSHA1(signstr, appkey)
signstr = "$signstr&sign=$sign&sourcetype=food"
val c = Client.create()
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt b/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt
new file mode 100644
index 0000000..9fd9e5d
--- /dev/null
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt
@@ -0,0 +1,69 @@
+package com.supwisdom.dlpay.api.bean
+
+import com.supwisdom.dlpay.exception.RequestParamCheckException
+import com.supwisdom.dlpay.framework.util.MD5
+import com.supwisdom.dlpay.framework.util.StringUtil
+import com.supwisdom.dlpay.framework.util.TradeErrorCode
+import com.supwisdom.dlpay.util.ConstantUtil
+
+open class APIRequestParam {
+ open val param_map = mutableMapOf<String, String>()
+
+ open fun checkSign(key: String): Boolean {
+ val sign = param_map["sign"]
+ if (StringUtil.isEmpty(sign)) return false //未签名
+
+ //判断签名
+ val signdata = StringUtil.createLinkString(StringUtil.paraFilter(param_map))
+ val md5Sign = MD5.encodeByMD5(signdata + key) //默认MD5
+ if (sign.equals(md5Sign, true)) {
+ return true
+ }
+ return false
+ }
+}
+
+class OpenUserParam : APIRequestParam() {
+ var syscode: String = "" //必传
+ var uid: String = "" //必传
+ var name: String = "" //必传
+ var sex: String? = ""
+ var idtype: String = "" //必传
+ var idno: String = "" //必传
+ var mobile: String? = ""
+ var tel: String? = ""
+ var email: String? = ""
+ var address: String? = ""
+ var zipcode: String? = ""
+ var sign: String = "" //必传
+
+ fun checkParam(): Boolean {
+ if (StringUtil.isEmpty(syscode)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "子系统注册代码不能为空")
+ if (StringUtil.isEmpty(uid)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "用户唯一号不能为空")
+ if (StringUtil.isEmpty(name)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "姓名不能为空")
+ if (!StringUtil.isEmpty(sex) && !ConstantUtil.SEX_MALE.equals(sex, true) && !ConstantUtil.SEX_FEMALE.equals(sex, true)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "性别非法[male|female]")
+ if (StringUtil.isEmpty(idtype) || !ConstantUtil.IDTYPE_DICTS.contains(idtype)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "证件类型非法")
+ if (StringUtil.isEmpty(idno) || !StringUtil.isCharAndNum(idno)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "证件号不能为空,且仅支持数字和字母")
+ if (ConstantUtil.IDTYPE_IDENTITY == idtype && !StringUtil.isIdentity(idno)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "身份证格式错误")
+ if (!StringUtil.isEmpty(mobile) && !StringUtil.isMobile(mobile)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "手机号格式错误")
+ if (!StringUtil.isEmpty(email) && !StringUtil.isEmail(email)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "邮箱格式错误")
+
+ param_map.plus(mapOf("syscode" to syscode, "uid" to uid, "name" to name, "sex" to sex, "idtype" to idtype, "idno" to idno, "mobile" to mobile, "tel" to tel, "email" to email, "address" to address, "zipcode" to zipcode, "sign" to sign))
+ return true
+ }
+}
+
+class QueryUserParam : APIRequestParam() {
+ var syscode: String = "" //必传
+ var userid: String? = "" // 用户ID二选一 (两者都传取userid)
+ var uid: String? = "" // 用户ID二选一
+ var sign: String = "" //必传
+
+ fun checkParam(): Boolean {
+ if (StringUtil.isEmpty(syscode)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "子系统注册代码不能为空")
+ if (StringUtil.isEmpty(userid) && StringUtil.isEmpty(uid)) throw RequestParamCheckException(TradeErrorCode.REQUEST_PARAM_ERROR, "用户唯一号不能为空")
+
+ param_map.plus(mapOf("syscode" to syscode, "userid" to userid, "uid" to uid, "sign" to sign))
+ return true
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_service.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
similarity index 97%
rename from src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_service.kt
rename to src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
index f83569b..66cdb7d 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
@@ -10,7 +10,7 @@
import com.supwisdom.dlpay.exception.TransactionException
import com.supwisdom.dlpay.framework.ResponseBodyBuilder
import com.supwisdom.dlpay.framework.util.*
-import com.supwisdom.dlpay.util.ConstUtil
+import com.supwisdom.dlpay.util.ConstantUtil
import com.supwisdom.dlpay.util.PaytypeUtil
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.ResponseEntity
@@ -76,7 +76,7 @@
//一卡通支付款 112240
return try {
val paytype = paytypeService.getByPaytype(PaytypeUtil.YKTPAY)
- if (paytype == null || ConstUtil.ENABLE_YES != paytype.enable) {
+ if (paytype == null || ConstantUtil.ENABLE_YES != paytype.enable) {
ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(1, "支付方式未开启"))
}
@@ -129,7 +129,7 @@
val dtl = personBalancePayService.wip(refno)
val person = personService.getPersonByUserid(dtl.userid)
val code = CallService.callYktPay(paytypeService.getPaytypeConfigByPaytype(PaytypeUtil.YKTPAY),
- dtl, DateUtil.getNow(), person.thirdUniqueIdenty, yktshopid, devphyid)
+ dtl, DateUtil.getNow(), "", yktshopid, devphyid)
if (code.retcode == "0") {
PersonTransBuilder.newBuilder(accountUtilServcie)
.done(dtl.refno, TradeDict.DTL_STATUS_SUCCESS, personBalancePayService)
@@ -164,7 +164,7 @@
wechattype: String, realip: String?, qrcode: String?, openid: String?): ResponseEntity<Any> {
return try {
val paytype = paytypeService.getByPaytype(PaytypeUtil.WECHAT)
- if (paytype == null || ConstUtil.ENABLE_YES != paytype.enable) {
+ if (paytype == null || ConstantUtil.ENABLE_YES != paytype.enable) {
ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(1, "支付方式未开启"))
}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_controller.kt
index d0fabc1..408cc3d 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/notify_controller.kt
@@ -5,6 +5,7 @@
import com.supwisdom.dlpay.api.service.PaytypeService
import com.supwisdom.dlpay.api.service.PersonBalancePayService
import com.supwisdom.dlpay.framework.util.MD5
+import com.supwisdom.dlpay.framework.util.StringUtil
import com.supwisdom.dlpay.framework.util.TradeDict
import com.supwisdom.dlpay.framework.util.XmlUtils
import com.supwisdom.dlpay.util.PaytypeUtil
@@ -62,9 +63,9 @@
logger.error("签名错误")
return "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[签名错误]]></return_msg></xml>"
}
- map = XmlUtils.paraFilter(map)
+ map = StringUtil.paraFilter(map)
//TODO 校验签名
- var signStr = XmlUtils.createLinkString(map)
+ var signStr = StringUtil.createLinkString(map)
val config = paytypeService.getPaytypeConfigByPaytype(PaytypeUtil.WECHAT)
if (config["appkey"].isNullOrEmpty()) {
logger.error("签名错误")
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
index 998597c..69f081e 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
@@ -1,11 +1,101 @@
package com.supwisdom.dlpay.api.controller
+import com.supwisdom.dlpay.api.bean.OpenUserParam
+import com.supwisdom.dlpay.api.bean.QueryUserParam
+import com.supwisdom.dlpay.api.service.UserService
+import com.supwisdom.dlpay.exception.RequestParamCheckException
+import com.supwisdom.dlpay.exception.TransactionException
+import com.supwisdom.dlpay.framework.ResponseBodyBuilder
+import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.framework.util.TradeErrorCode
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.http.ResponseEntity
+import org.springframework.web.bind.annotation.PostMapping
+import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
@RestController
@RequestMapping("/api/user")
class UserAPIController {
+ @Autowired
+ private lateinit var useService: UserService
+ @Autowired
+ private lateinit var systemUtilService: SystemUtilService
+
+ @PostMapping("/open")
+ fun openAccount(@RequestBody request: OpenUserParam): ResponseEntity<Any> {
+ return try {
+ if (request.checkParam() && request.checkSign(systemUtilService.getSubsystemSignKey(request.syscode))) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误"))
+ }
+ useService.findByThirdUniqueIdenty(request.uid, request.syscode).let {
+ if (null != it) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(TradeErrorCode.REGISTER_USER_EXIST, "改用户唯一号已经注册"))
+ }
+
+ useService.registerUser(request).let {
+ if (null != it) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .data("userid", it.userid)
+ .data("uid", request.uid)
+ .success())
+ }
+
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(TradeErrorCode.BUSINESS_DEAL_ERROR, "用户注册失败"))
+ }
+ }
+ } catch (ex: RequestParamCheckException) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .requestException(ex, "请求参数错误"))
+ } catch (et: TransactionException) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .transException(et, "业务处理错误"))
+ }
+ }
+
+ @PostMapping("/query")
+ fun queryAccount(@RequestBody request: QueryUserParam): ResponseEntity<Any> {
+ return try {
+ if (request.checkParam() && request.checkSign(systemUtilService.getSubsystemSignKey(request.syscode))) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误"))
+ }
+
+ useService.findByUseridOrThirdUniqueIdenty(request.userid, request.uid, request.syscode).let {
+ if (null != it) {
+ val account = useService.findAccountByUserid(it.userid, null)
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .data("userid", it.userid)
+ .data("name", it.name)
+ .data("idtype", it.idtype)
+ .data("idno", it.idno)
+ .data("status", it.status)
+ .data("balance", account.let {
+ if (null == it) {
+ 0.0
+ } else {
+ it.availbal
+ }
+ })
+ .data("points", 0) //积分
+ .success())
+ }
+
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .fail(TradeErrorCode.ACCOUNT_NOT_EXISTS, "账户不存在"))
+ }
+ } catch (ex: RequestParamCheckException) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .requestException(ex, "请求参数错误"))
+ } catch (et: TransactionException) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .transException(et, "业务处理错误"))
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/person_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/person_service_impl.kt
index 5ba6a54..6d05a8d 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/person_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/person_service_impl.kt
@@ -15,7 +15,7 @@
lateinit var personDao: PersonDao
override fun getPersonByThirdUniqueIdenty(thirdUniqueIdenty: String): TPerson {
- return personDao.findByThirdUniqueIdenty(thirdUniqueIdenty)
+ return personDao.findByUserid(thirdUniqueIdenty)
}
override fun getPersonByUserid(userid: String): TPerson {
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
new file mode 100644
index 0000000..77c687f
--- /dev/null
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
@@ -0,0 +1,110 @@
+package com.supwisdom.dlpay.api.service.impl
+
+import com.supwisdom.dlpay.api.bean.OpenUserParam
+import com.supwisdom.dlpay.api.dao.AccountDao
+import com.supwisdom.dlpay.api.dao.PersonDao
+import com.supwisdom.dlpay.api.dao.PersonIdentityDao
+import com.supwisdom.dlpay.api.domain.TAccount
+import com.supwisdom.dlpay.api.domain.TPerson
+import com.supwisdom.dlpay.api.domain.TPersonIdentity
+import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.api.service.UserService
+import com.supwisdom.dlpay.exception.TransactionProcessException
+import com.supwisdom.dlpay.framework.util.*
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Service
+import java.net.URLDecoder
+
+/**
+ * Created by shuwei on 2019/4/15.
+ */
+@Service
+class UserServiceImpl : UserService {
+ @Autowired
+ private lateinit var personDao: PersonDao
+ @Autowired
+ private lateinit var accountDao: AccountDao
+ @Autowired
+ private lateinit var personIdentityDao: PersonIdentityDao
+ @Autowired
+ private lateinit var systemUtilService: SystemUtilService
+
+ override fun registerUser(param: OpenUserParam): TPerson {
+ val username = URLDecoder.decode(param.name, Charsets.UTF_8.toString())
+ var person = personDao.findByIdentity(param.idtype, param.idno)
+ if (null != person && username != person.name)
+ throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "证件指定用户与请求的用户名不匹配")
+
+ val systemdatetime = systemUtilService.sysdatetime
+ if (null == person) {
+ person = personDao.save(TPerson().apply {
+ name = username
+ sex = param.sex ?: null
+ status = TradeDict.STATUS_NORMAL
+ idtype = param.idtype
+ idno = param.idno
+ email = param.email ?: null
+ tel = param.tel ?: null
+ mobile = param.mobile ?: null
+ addr = param.address?.let { URLDecoder.decode(param.address, Charsets.UTF_8.toString()) }
+ zipcode = param.zipcode ?: null
+ lastsaved = systemdatetime.hostdatetime
+ })
+ }
+
+ if (accountDao.findByUseridAndSubjno(person.userid, Subject.SUBJNO_PERSONAL_DEPOSIT) == null) {
+ //开户
+ TAccount().apply {
+ accname = person.name
+ subjno = Subject.SUBJNO_PERSONAL_DEPOSIT
+ userid = person.userid
+ status = person.status
+ balance = 0.0
+ availbal = 0.0
+ frozebal = 0.0
+ lowfreeFlag = false
+ lowfreeLimit = lowfreeLimit
+ daylimit = daylimit
+ maxbal = systemUtilService.getSysparaValueAsDouble(SysparaUtil.SYSPARAID_NO1, SysparaUtil.SYSPARA_NO1_DEFAULT)
+ lasttransdate = systemdatetime.hostdate
+ lastdayTransamt = 0.0
+ lastdayDpsamt = 0.0
+ opendate = systemdatetime.hostdate
+ tac = this.generateTac()
+ accountDao.save(this)
+ }
+ }
+ personIdentityDao.save(TPersonIdentity().apply {
+ thirdUserid = param.uid
+ thirdSyscode = param.syscode
+ person = person
+ }) //保存绑定关系
+
+ return person
+ }
+
+ override fun findByThirdUniqueIdenty(thirdUniqueIdenty: String, syscode: String): TPerson? {
+ return personIdentityDao.getPersonIdentityById(thirdUniqueIdenty, syscode)?.let { it.person }
+ }
+
+ override fun findByUseridOrThirdUniqueIdenty(userid: String?, thirdUniqueIdenty: String?, syscode: String): TPerson? {
+ return if (!StringUtil.isEmpty(userid)) {
+ personDao.findByUserid(userid)
+ } else {
+ personIdentityDao.getPersonIdentityById(thirdUniqueIdenty, syscode)?.let { it.person }
+ }
+ }
+
+ override fun findPersonByUserid(userid: String): TPerson? {
+ return personDao.findByUserid(userid)
+ }
+
+ override fun findAccountByUserid(userid: String, subjno: String?): TAccount? {
+ return if (!StringUtil.isEmpty(subjno)) {
+ accountDao.findByUseridAndSubjno(userid, subjno)
+ } else {
+ accountDao.findByUseridAndSubjno(userid, Subject.SUBJNO_PERSONAL_DEPOSIT)
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
new file mode 100644
index 0000000..f01258d
--- /dev/null
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
@@ -0,0 +1,29 @@
+package com.supwisdom.dlpay.api.service
+
+import com.supwisdom.dlpay.api.bean.OpenUserParam
+import com.supwisdom.dlpay.api.domain.TAccount
+import com.supwisdom.dlpay.api.domain.TPerson
+import org.springframework.transaction.annotation.Propagation
+import org.springframework.transaction.annotation.Transactional
+
+/**
+ * Created by shuwei on 2019/4/15.
+ */
+interface UserService {
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class))
+ fun registerUser(param: OpenUserParam): TPerson
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+ fun findByThirdUniqueIdenty(thirdUniqueIdenty: String, syscode: String): TPerson?
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+ fun findByUseridOrThirdUniqueIdenty(userid: String?, thirdUniqueIdenty: String?, syscode: String): TPerson?
+
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+ fun findPersonByUserid(userid: String): TPerson?
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+ fun findAccountByUserid(userid: String, subjno:String?): TAccount?
+
+}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt b/src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt
new file mode 100644
index 0000000..d857281
--- /dev/null
+++ b/src/main/kotlin/com/supwisdom/dlpay/app/bean/app_request_param.kt
@@ -0,0 +1,2 @@
+package com.supwisdom.dlpay.app.bean
+
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
index e5ed5fe..894ad77 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
@@ -1,13 +1,18 @@
package com.supwisdom.dlpay.framework
+import com.google.gson.Gson
+import com.supwisdom.dlpay.exception.RequestParamCheckException
import com.supwisdom.dlpay.exception.TransactionCheckException
import com.supwisdom.dlpay.exception.TransactionException
import com.supwisdom.dlpay.framework.util.TradeErrorCode
+import org.apache.log4j.Logger
+
class ResponseBodyBuilder private constructor() {
companion object {
private const val INVALIDE_RETCODE = -0x7FFFFFFF
private val RESERVED_KEY = setOf("retcode", "retmsg", "exception")
+ private val LOGGER = Logger.getLogger(ResponseBodyBuilder::class.java)
fun create() = ResponseBodyBuilder()
}
@@ -51,6 +56,12 @@
return build()
}
+ fun requestException(exception: RequestParamCheckException, msg: String): Map<String, Any> {
+ data("exception", exception.message!!)
+ result(exception.errCode, "$msg - [${exception.message}]")
+ return build()
+ }
+
fun data(name: String, value: Any): ResponseBodyBuilder {
if (name in RESERVED_KEY) {
throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR, "返回值 <$name> 为保留值,不能使用")
@@ -62,6 +73,8 @@
private fun build(): Map<String, Any> {
if (retCode == INVALIDE_RETCODE) {
throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR, "未设置返回码!")
+ } else if (retCode != 0) {
+ LOGGER.error(Gson().toJson(this.respData))
}
return this.respData.plus(mapOf("retcode" to retCode, "retmsg" to retMsg))
}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/shop/bean/shop_param.kt b/src/main/kotlin/com/supwisdom/dlpay/shop/bean/shop_param.kt
index 4b8388a..749dd3a 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/shop/bean/shop_param.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/shop/bean/shop_param.kt
@@ -10,12 +10,4 @@
var mobile: String = ""
var contactman: String = ""
var uniqueId: String? = ""
-}
-
-class UserParam {
- var uniqueId: String? = ""
- var userid: String? = ""
- var name: String = ""
- var addr: String? = ""
- var mobile: String? = ""
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/user/controller/user_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/user/controller/user_controller.kt
deleted file mode 100644
index 47cb717..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/user/controller/user_controller.kt
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.supwisdom.dlpay.user.controller
-
-import com.supwisdom.dlpay.api.domain.TPerson
-import com.supwisdom.dlpay.framework.ResponseBodyBuilder
-import com.supwisdom.dlpay.framework.util.TradeDict
-import com.supwisdom.dlpay.shop.bean.UserParam
-import com.supwisdom.dlpay.user.service.UserService
-import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.http.ResponseEntity
-import org.springframework.web.bind.annotation.*
-
-/**
- * Created by shuwei on 2019/4/15.
- */
-@RestController
-@RequestMapping("/api/user")
-class UserController {
- @Autowired
- private lateinit var useService: UserService
-
- @PostMapping("/open")
- fun openAccount(@RequestBody request: UserParam): ResponseEntity<Any> {
- if (!request.uniqueId.isNullOrEmpty()) {
- val person = useService.findByThirdUniqueIdenty(request.uniqueId!!)
- if (person != null) {
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .fail(1, "[uniqueId]该值已存在"))
- }
- }
- if (request.name.isEmpty()) {
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .fail(1, "[name]不能为空"))
- }
- val person = TPerson()
- person.addr = request.addr
- person.name = request.name
- person.mobile = request.mobile
- person.status = TradeDict.STATUS_NORMAL
- person.thirdUniqueIdenty = request.uniqueId
- useService.save(person)
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .data("userid", person.userid)
- .success())
- }
-
- @PostMapping("/get")
- fun queryShop(@RequestBody request: UserParam): ResponseEntity<Any> {
- if (!request.uniqueId.isNullOrEmpty()) {
- val person = useService.findByThirdUniqueIdenty(request.uniqueId!!)
- if (person != null) {
- val account = useService.findAccountByUserid(person.userid)
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .data("person", person)
- .data("account", account!!)
- .success())
- }
- } else if (!request.userid.isNullOrEmpty()) {
- val person = useService.findPersonByUserid(request.userid!!)
- if (person != null) {
- val account = useService.findAccountByUserid(person.userid)
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .data("person", person)
- .data("account", account!!)
- .success())
- }
- }
- return ResponseEntity.ok(ResponseBodyBuilder.create()
- .fail(1, "数据不存在"))
- }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/user/service/impl/user_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/user/service/impl/user_service_impl.kt
deleted file mode 100644
index cb57ca1..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/user/service/impl/user_service_impl.kt
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.supwisdom.dlpay.user.service.impl
-
-import com.supwisdom.dlpay.api.dao.AccountDao
-import com.supwisdom.dlpay.api.dao.PersonDao
-import com.supwisdom.dlpay.api.domain.TAccount
-import com.supwisdom.dlpay.api.domain.TPerson
-import com.supwisdom.dlpay.framework.service.SystemUtilService
-import com.supwisdom.dlpay.framework.util.Subject
-import com.supwisdom.dlpay.user.service.UserService
-import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.stereotype.Service
-
-/**
- * Created by shuwei on 2019/4/15.
- */
-@Service
-class UserServiceImpl : UserService {
- @Autowired
- private lateinit var personDao: PersonDao
- @Autowired
- private lateinit var accountDao: AccountDao
- @Autowired
- private lateinit var systemUtilService: SystemUtilService
-
- override fun save(person: TPerson): TPerson {
- //TODO check tac
- personDao.save(person)
- if (accountDao.findByUserid(person.userid) == null) {
- val systemdatetime = systemUtilService.sysdatetime
- TAccount().apply {
- accname = person.name
- opendate = systemdatetime.hostdate
- userid = person.userid
- status = person.status
- subjno = Subject.SUBJNO_PERSONAL_DEPOSIT
- balance = 0.0
- availbal = 0.0
- frozebal = 0.0
- lowfreeFlag = false
- accountDao.save(this)
- }
- }
- return person
- }
-
- override fun findByThirdUniqueIdenty(thirdUniqueIdenty: String): TPerson? {
- return personDao.findByThirdUniqueIdenty(thirdUniqueIdenty)
- }
-
- override fun findPersonByUserid(userid: String): TPerson? {
- return personDao.getOne(userid)
- }
-
- override fun findAccountByUserid(userid: String): TAccount? {
- return accountDao.findByUserid(userid)
- }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/user/service/user_service.kt b/src/main/kotlin/com/supwisdom/dlpay/user/service/user_service.kt
deleted file mode 100644
index 6bac9c9..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/user/service/user_service.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.supwisdom.dlpay.user.service
-
-import com.supwisdom.dlpay.api.domain.TAccount
-import com.supwisdom.dlpay.api.domain.TPerson
-import org.springframework.transaction.annotation.Propagation
-import org.springframework.transaction.annotation.Transactional
-
-/**
- * Created by shuwei on 2019/4/15.
- */
-interface UserService {
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class))
- fun save(person: TPerson): TPerson
-
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
- fun findByThirdUniqueIdenty(thirdUniqueIdenty: String): TPerson?
-
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
- fun findPersonByUserid(userid: String): TPerson?
-
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
- fun findAccountByUserid(userid: String): TAccount?
-}
\ No newline at end of file
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt b/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
index 4147974..44724a3 100644
--- a/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
+++ b/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
@@ -2,9 +2,10 @@
import com.google.gson.Gson
import com.supwisdom.dlpay.MvcBaseTest
+import com.supwisdom.dlpay.api.bean.OpenUserParam
+import com.supwisdom.dlpay.api.bean.QueryUserParam
import com.supwisdom.dlpay.api.domain.TAccount
import com.supwisdom.dlpay.api.domain.TPerson
-import com.supwisdom.dlpay.shop.bean.UserParam
import org.junit.Assert
import org.junit.Test
import org.springframework.http.MediaType
@@ -24,11 +25,12 @@
@Test
fun open() {
- val userParam = UserParam()
- userParam.uniqueId = ""//random req
+ val userParam = OpenUserParam()
+ userParam.syscode = "ykt"
+ userParam.uid = ""//random req
userParam.name = "测试名称"
- val ret = mvc.perform(MockMvcRequestBuilders.post("/user/open").content(gson.toJson(userParam))
+ val ret = mvc.perform(MockMvcRequestBuilders.post("/api/user/open").content(gson.toJson(userParam))
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk)
.andDo(MockMvcResultHandlers.print())
@@ -44,11 +46,12 @@
@Test
fun get() {
- val userParam = UserParam()
- userParam.uniqueId = "testuseruniqueId"//测试用
- userParam.name = "测试名称:testuseruniqueId"
+
+ val userParam = QueryUserParam()
+ userParam.syscode = "ykt"
+ userParam.uid = "testuseruniqueId"//测试用
val gson = Gson()
- val ret = mvc.perform(MockMvcRequestBuilders.post("/user/open").content(gson.toJson(userParam))
+ val ret = mvc.perform(MockMvcRequestBuilders.post("/api/user/open").content(gson.toJson(userParam))
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk)
.andDo(MockMvcResultHandlers.print())
@@ -60,7 +63,7 @@
Assert.assertNotNull(retBeanOpen.userid)
userParam.userid = retBeanOpen.userid
- val retGet = mvc.perform(MockMvcRequestBuilders.get("/user/get").content(gson.toJson(userParam))
+ val retGet = mvc.perform(MockMvcRequestBuilders.get("/api/user/query").content(gson.toJson(userParam))
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk)
.andDo(MockMvcResultHandlers.print())