| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /**
- * @Author: zou.yingbin
- * @Create : 2021/1/7 17:31
- * @Modify : 2021/1/7 17:31
- */
- package models
- import (
- "crypto/aes"
- "encoding/hex"
- "fmt"
- "mtp2_if/db"
- "mtp2_if/logger"
- )
- // 客户资料结构
- type ErmcpUserModel struct {
- USERID int `json:"userid" xorm:"'USERID'"` // 用户ID
- 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'"` // 证件类型
- 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
- CARDFRONTPHOTOURL string `json:"cardfrontphotourl" xorm:"'CARDFRONTPHOTOURL'"` // 证件正面图片地址
- }
- func (r *ErmcpUserModel) buildSql(accStatus string) string {
- str := "select t.userid," +
- " t.memberuserid," +
- " u.USERINFOTYPE," +
- " u.CUSTOMERNAME," +
- " u.CARDTYPEID," +
- " e.enumdicname CARDTYPE," +
- " u.CARDNUM," +
- " u.MOBILE," +
- " u.TELPHONE," +
- " u.ADDRESS," +
- " u.REMARK," +
- " u.ATTACHMENT1," +
- " u.CARDFRONTPHOTOURL," +
- " t.accountstatus status," +
- " decode(t.accountstatus,1,'待激活',2,'待审核',3,'待复审',4,'正常',5,'审核拒绝',6,'注销','缺省') StatusDesc" +
- " 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"
- return fmt.Sprintf(str, accStatus, r.MEMBERUSERID)
- }
- // 解密卡号和电话号码字段
- 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)
- }
- return str
- }
- r.CARDNUM = fd(r.CARDNUM)
- r.MOBILE = fd(r.MOBILE)
- }
- // 查询客户资料
- func (r *ErmcpUserModel) GetData(accStatus string) ([]ErmcpUserModel, error) {
- sData := make([]ErmcpUserModel, 0)
- e := db.GetEngine()
- s := e.SQL(r.buildSql(accStatus))
- if err := s.Find(&sData); err != nil {
- logger.GetLogger().Errorf("ermcp query fail:%v", err)
- return sData, err
- }
- // 解密
- for i := range sData {
- sData[i].DecryptField()
- }
- return sData, nil
- }
|