Ver código fonte

修改查询客户资料接口,待审核从网上开户表查

zou.yingbin 4 anos atrás
pai
commit
3fa7b8ad4f
5 arquivos alterados com 1590 adições e 1693 exclusões
  1. 4 4
      controllers/ermcp/qryUser.go
  2. 414 500
      docs/docs.go
  3. 414 500
      docs/swagger.json
  4. 678 670
      docs/swagger.yaml
  5. 80 19
      models/ermcpUser.go

+ 4 - 4
controllers/ermcp/qryUser.go

@@ -17,8 +17,8 @@ import (
 
 // 查询客户资料请求
 type QryUserInfoReq struct {
-	MemberUserID  int    `form:"MemberUserID" binding:"required"`  // 所属机构用户ID
-	AccountStatus string `form:"AccountStatus" binding:"required"` // 账户状态, 逗号隔开(1:待激活 2:待审核 3:待复审 4:正常 5:审核拒绝 6:注销)
+	MemberUserID int   `form:"MemberUserID" binding:"required"` // 所属机构用户ID
+	QueryType    int32 `form:"queryType" binding:"required"`    // 查询类型(1:未提交 2:待审核 3:正常 4:停用)
 }
 
 // 查询客户资料应答
@@ -29,7 +29,7 @@ type QryUserInfoRsp models.ErmcpUserModel
 // @Produce json
 // @Security ApiKeyAuth
 // @Param MemberUserID query int true "所属机构用户ID"
-// @Param AccountStatus query string true "账户状态(可填多个, 逗号隔开) 1:待激活 2:待审核 3:待复审 4:正常 5:审核拒绝 6:注销"
+// @Param queryType query int true "查询类型(1:未提交 2:待审核 3:正常 4:停用)"
 // @Success 200 {array} QryUserInfoRsp
 // @Failure 500 {object} app.Response
 // @Router /Ermcp/QueryUserInfo [get]
@@ -44,7 +44,7 @@ func QueryUserInfo(c *gin.Context) {
 	}
 
 	var m = models.ErmcpUserModel{MEMBERUSERID: req.MemberUserID}
-	if d, err := m.GetData(req.AccountStatus); err == nil {
+	if d, err := m.GetData(req.QueryType); err == nil {
 		appG.Response(http.StatusOK, e.SUCCESS, d)
 	} else {
 		appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)

Diferenças do arquivo suprimidas por serem muito extensas
+ 414 - 500
docs/docs.go


Diferenças do arquivo suprimidas por serem muito extensas
+ 414 - 500
docs/swagger.json


Diferenças do arquivo suprimidas por serem muito extensas
+ 678 - 670
docs/swagger.yaml


+ 80 - 19
models/ermcpUser.go

@@ -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

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff