|
|
@@ -7,11 +7,11 @@
|
|
|
package models
|
|
|
|
|
|
import (
|
|
|
- "crypto/aes"
|
|
|
"encoding/hex"
|
|
|
"fmt"
|
|
|
"mtp2_if/db"
|
|
|
"mtp2_if/logger"
|
|
|
+ "mtp2_if/utils"
|
|
|
)
|
|
|
|
|
|
// 客户资料结构
|
|
|
@@ -20,16 +20,48 @@ type ErmcpUserModel struct {
|
|
|
MEMBERUSERID int `json:"memberuserid" xorm:"'MEMBERUSERID'"` // 所属机构ID
|
|
|
USERINFOTYPE string `json:"userinfotype" xorm:"'USERINFOTYPE'"` // 客户类型
|
|
|
CUSTOMERNAME string `json:"customername" xorm:"'CUSTOMERNAME'"` // 企业名称
|
|
|
- CARDTYPE string `json:"cardtype" xorm:"'CARDTYPE'"` // 证件类型
|
|
|
+ CARDTYPE int32 `json:"cardtype" xorm:"'CARDTYPE'"` // 证件类型
|
|
|
+ CARDTYPENAME string `json:"cardtypename" xorm:"'CARDTYPENAME'"` // 证件类型名称
|
|
|
CARDNUM string `json:"cardnum" xorm:"'CARDNUM'"` // 证件号码
|
|
|
MOBILE string `json:"mobile" xorm:"'MOBILE'"` // 手机号码
|
|
|
TELPHONE string `json:"telphone" xorm:"'TELPHONE'"` // 联系电话
|
|
|
ADDRESS string `json:"address" xorm:"'ADDRESS'"` // 通讯地址
|
|
|
REMARK string `json:"remark" xorm:"'REMARK'"` // 备注
|
|
|
STATUS int32 `json:"status" xorm:"'STATUS'"` // 账户状态 - 1:待激活 2:待审核 3:待复审 4:正常 5:审核拒绝 6:注销
|
|
|
- STATUSDESC string `json:"statusdesc" xorm:"'STATUSDESC'"` // 账户状态中文描述
|
|
|
- ATTACHMENT1 string `json:"attachment1" xorm:"'ATTACHMENT1'"` // 附件1
|
|
|
+ STATUSDESC string `json:"statusdesc"` // 账户状态中文描述
|
|
|
+ ATTACHMENT1 string `json:"attachment1" xorm:"'ATTACHMENT1'"` // 附件1
|
|
|
CARDFRONTPHOTOURL string `json:"cardfrontphotourl" xorm:"'CARDFRONTPHOTOURL'"` // 证件正面图片地址
|
|
|
+ COUNTRYID int32 `json:"countryid" xorm:"'COUNTRYID'"` // 国家
|
|
|
+ PROVINCEID int32 `json:"provinceid" xorm:"'PROVINCEID'"` // 省
|
|
|
+ CITYID int32 `json:"cityid" xorm:"'CITYID'"` // 市
|
|
|
+}
|
|
|
+
|
|
|
+func (r *ErmcpUserModel) buildWskhSql(accStatus string) string {
|
|
|
+ str := "select t.userid," +
|
|
|
+ " t.memberareaid MEMBERUSERID," +
|
|
|
+ " t.USERINFOTYPE," +
|
|
|
+ " t.CUSTOMERNAME," +
|
|
|
+ " t.CARDTYPE," +
|
|
|
+ " e.enumdicname CARDTYPENAME," +
|
|
|
+ " t.CARDNUM," +
|
|
|
+ " t.mobilephone MOBILE," +
|
|
|
+ " t.TELPHONE," +
|
|
|
+ " t.cardaddress ADDRESS," +
|
|
|
+ " t.REMARK," +
|
|
|
+ " t.ATTACHMENT1," +
|
|
|
+ " t.CARDFRONTPHOTOURL," +
|
|
|
+ " t.userstate status," +
|
|
|
+ " t.countryid," +
|
|
|
+ " t.provinceid," +
|
|
|
+ " t.cityid" +
|
|
|
+ " from wskh_userinfo t" +
|
|
|
+ " left join enumdicitem e" +
|
|
|
+ " on t.cardtype = e.enumitemname" +
|
|
|
+ " and e.enumdiccode = 'certificatetype'" +
|
|
|
+ " where t.userstate in (%v)" +
|
|
|
+ " and t.usertype = 6" +
|
|
|
+ " and t.memberareaid = %v"
|
|
|
+ return fmt.Sprintf(str, accStatus, r.MEMBERUSERID)
|
|
|
}
|
|
|
|
|
|
func (r *ErmcpUserModel) buildSql(accStatus string) string {
|
|
|
@@ -37,8 +69,8 @@ func (r *ErmcpUserModel) buildSql(accStatus string) string {
|
|
|
" t.memberuserid," +
|
|
|
" u.USERINFOTYPE," +
|
|
|
" u.CUSTOMERNAME," +
|
|
|
- " u.CARDTYPEID," +
|
|
|
- " e.enumdicname CARDTYPE," +
|
|
|
+ " u.CARDTYPEID CARDTYPE," +
|
|
|
+ " e.enumdicname CARDTYPENAME," +
|
|
|
" u.CARDNUM," +
|
|
|
" u.MOBILE," +
|
|
|
" u.TELPHONE," +
|
|
|
@@ -46,15 +78,19 @@ func (r *ErmcpUserModel) buildSql(accStatus string) string {
|
|
|
" u.REMARK," +
|
|
|
" u.ATTACHMENT1," +
|
|
|
" u.CARDFRONTPHOTOURL," +
|
|
|
- " t.accountstatus status," +
|
|
|
- " decode(t.accountstatus,1,'待激活',2,'待审核',3,'待复审',4,'正常',5,'审核拒绝',6,'注销','缺省') StatusDesc" +
|
|
|
+ " t.accountstatus status," +
|
|
|
+ " u.countryid," +
|
|
|
+ " u.provinceid," +
|
|
|
+ " u.cityid" +
|
|
|
" from useraccount t" +
|
|
|
" left join userinfo u" +
|
|
|
" on t.userid = u.userid" +
|
|
|
" left join enumdicitem e" +
|
|
|
" on u.cardtypeid = e.enumitemname" +
|
|
|
" and e.enumdiccode = 'certificatetype'" +
|
|
|
- " where t.usertype=6 and t.accountstatus in (%v) and t.memberuserid=%v"
|
|
|
+ " where t.usertype = 6" +
|
|
|
+ " and t.accountstatus in (%v)" +
|
|
|
+ " and t.memberuserid = %v"
|
|
|
|
|
|
return fmt.Sprintf(str, accStatus, r.MEMBERUSERID)
|
|
|
}
|
|
|
@@ -63,32 +99,56 @@ func (r *ErmcpUserModel) buildSql(accStatus string) string {
|
|
|
func (r *ErmcpUserModel) DecryptField() {
|
|
|
key := "0d299ce2d4105282f7471074cb0f9f9d"
|
|
|
key2, _ := hex.DecodeString(key)
|
|
|
- b, _ := aes.NewCipher(key2)
|
|
|
fd := func(str string) string {
|
|
|
if str == "" {
|
|
|
return str
|
|
|
}
|
|
|
-
|
|
|
d, _ := hex.DecodeString(str)
|
|
|
- b.Decrypt(d, d)
|
|
|
- if len(d) >= 16 {
|
|
|
- if cnt := d[len(d)-1]; int(cnt) < len(d) {
|
|
|
- d = d[:len(d)-int(cnt)]
|
|
|
- }
|
|
|
- return string(d)
|
|
|
+ if dst, err := utils.AESDecrypt(d, key2); err == nil {
|
|
|
+ return string(dst)
|
|
|
}
|
|
|
return str
|
|
|
}
|
|
|
|
|
|
r.CARDNUM = fd(r.CARDNUM)
|
|
|
r.MOBILE = fd(r.MOBILE)
|
|
|
+ r.ADDRESS = fd(r.ADDRESS)
|
|
|
+}
|
|
|
+
|
|
|
+// 账户状态名称
|
|
|
+func (r *ErmcpUserModel) DecodeStausName(queryType int32) {
|
|
|
+ if queryType == 1 || queryType == 2 {
|
|
|
+ // 网上开户状态
|
|
|
+ if r.STATUS == 1 {
|
|
|
+ r.STATUSDESC = "未提交"
|
|
|
+ } else if r.STATUS == 2 || r.STATUS == 4 {
|
|
|
+ r.STATUSDESC = "待审核"
|
|
|
+ }
|
|
|
+ } else if queryType == 3 || queryType == 4 {
|
|
|
+ if r.STATUS == 4 {
|
|
|
+ r.STATUSDESC = "正常"
|
|
|
+ } else if r.STATUS == 6 {
|
|
|
+ r.STATUSDESC = "已注销"
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 查询客户资料
|
|
|
-func (r *ErmcpUserModel) GetData(accStatus string) ([]ErmcpUserModel, error) {
|
|
|
+func (r *ErmcpUserModel) GetData(queryType int32) ([]ErmcpUserModel, error) {
|
|
|
sData := make([]ErmcpUserModel, 0)
|
|
|
e := db.GetEngine()
|
|
|
- s := e.SQL(r.buildSql(accStatus))
|
|
|
+ var sqlId string
|
|
|
+ switch queryType {
|
|
|
+ case 1: //未提交
|
|
|
+ sqlId = r.buildWskhSql("1")
|
|
|
+ case 2: //待审核
|
|
|
+ sqlId = r.buildWskhSql("2,4")
|
|
|
+ case 3: //正常
|
|
|
+ sqlId = r.buildSql("4")
|
|
|
+ case 4: //已停用
|
|
|
+ sqlId = r.buildSql("6")
|
|
|
+ }
|
|
|
+ s := e.SQL(sqlId)
|
|
|
if err := s.Find(&sData); err != nil {
|
|
|
logger.GetLogger().Errorf("ermcp query fail:%v", err)
|
|
|
return sData, err
|
|
|
@@ -97,6 +157,7 @@ func (r *ErmcpUserModel) GetData(accStatus string) ([]ErmcpUserModel, error) {
|
|
|
// 解密
|
|
|
for i := range sData {
|
|
|
sData[i].DecryptField()
|
|
|
+ sData[i].DecodeStausName(queryType)
|
|
|
}
|
|
|
|
|
|
return sData, nil
|