fix: adjustment directory structure
This commit is contained in:
303
proxy/Nmysql/user_status.go
Normal file
303
proxy/Nmysql/user_status.go
Normal file
@@ -0,0 +1,303 @@
|
||||
package Nmysql
|
||||
|
||||
import "C"
|
||||
import (
|
||||
"fmt"
|
||||
. "proxy/config"
|
||||
l4g "proxy/logger"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func UpdateUserStatus2Mdb(accountId uint32, status byte) error {
|
||||
statusInCrm := 1001
|
||||
switch status {
|
||||
case 1:
|
||||
statusInCrm = 1001
|
||||
case 2:
|
||||
statusInCrm = 1205
|
||||
case 4:
|
||||
statusInCrm = 1101
|
||||
case 6:
|
||||
statusInCrm = 1202
|
||||
}
|
||||
|
||||
if false {
|
||||
stmt, _ := MySqlDb.Prepare("update tb_prd_prd_inst_551 set PRD_INST_STAS_ID=?, MOD_DATE=NOW() where ACCT_ID=?;")
|
||||
defer stmt.Close()
|
||||
|
||||
_, _ = stmt.Exec(statusInCrm, accountId)
|
||||
}
|
||||
|
||||
if status == 4 {
|
||||
stmt, _ := MySqlDb.Prepare("INSERT INTO tb_mobile_disc_cmd set ACCT_ID=?, ACCT_STATUS=0, UPDATE_DATE=NOW();")
|
||||
defer stmt.Close()
|
||||
|
||||
_, err := stmt.Exec(accountId)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("UpdateUserStatus2Mdb acctId[%d] err: %v", accountId, err)
|
||||
//return err
|
||||
}
|
||||
|
||||
l4g.MysqlLog.Debugf("UpdateUserStatus2Mdb acctId[%d] succ!", accountId)
|
||||
|
||||
_ = InsertPrepaidUserDeleteCliCmd(accountId)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func InsertPrepaidUserDeleteCliCmd(accountId uint32) error {
|
||||
//sqlStr := "select PRE_ID, OPER_TYPE, IMSI, SERVICE_NBR, KI, OPC, CUST_ID, STATE, PRD_INST_ID, MOBILE_TYPE, VMS_FLAG, BIRTH_DATE, BALANCE, "
|
||||
//sqlStr += "BALANCE_EXP_DATE, OFR_ID, EXP_DATE, CUG_ID from tb_sync_mobile where ACCT_ID=? ORDER BY PRE_ID DESC limit 1;"
|
||||
sqlStr := "select IMSI, SERVICE_NBR, PRD_INST_ID "
|
||||
sqlStr += "from tb_sync_mobile where ACCT_ID=" + strconv.Itoa(int(accountId)) + " ORDER BY PRE_ID DESC limit 1;"
|
||||
rows, err := MySqlDb.Query(sqlStr)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("Query tb_sync_mobile, accountId[%d] fail: %v", accountId, err)
|
||||
return err
|
||||
}
|
||||
//defer rows.Close()
|
||||
|
||||
var imsi, msisdn string
|
||||
var prdInstId int
|
||||
for rows.Next(){
|
||||
if err = rows.Scan(&imsi, &msisdn, &prdInstId); err != nil {
|
||||
l4g.MysqlLog.Errorf("query row of tb_sync_mobile fail: %v", err)
|
||||
_ = rows.Close()
|
||||
return err
|
||||
}
|
||||
|
||||
break
|
||||
}
|
||||
_ = rows.Close()
|
||||
|
||||
if imsi != "" {
|
||||
cmd := "delete subscriber -imsi " + imsi
|
||||
stmt, _ := MySqlDb.Prepare("INSERT INTO tb_sync_cn_cmd SET cmd_type=?, node_type=?, node_name=?, srv_num=?, command=?, state=1, result=0, timestamp=NOW();")
|
||||
//defer stmt.Close()
|
||||
_, err := stmt.Exec(CT_DISCONNECT_ACCOUNT, NT_HSS, NodeName[NT_HSS], prdInstId, cmd)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("add cmd[%s], msisdn[%s], prdInstId[%d] err: %v", cmd, msisdn, prdInstId, err)
|
||||
//return err
|
||||
} else {
|
||||
l4g.MysqlLog.Debugf("add cmd[%s], msisdn[%s], prdInstId[%d]", cmd, msisdn, prdInstId)
|
||||
}
|
||||
stmt.Close()
|
||||
|
||||
cmd = "delete aucSubscriber -imsi " + imsi
|
||||
stmt, _ = MySqlDb.Prepare("INSERT INTO tb_sync_cn_cmd SET cmd_type=?, node_type=?, node_name=?, srv_num=?, command=?, state=1, result=0, timestamp=NOW();")
|
||||
//defer stmt.Close()
|
||||
_, err = stmt.Exec(CT_DISCONNECT_ACCOUNT, NT_AUC, NodeName[NT_AUC], prdInstId, cmd)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("add cmd[%s], msisdn[%s], prdInstId[%d] err: %v", cmd, msisdn, prdInstId, err)
|
||||
//return err
|
||||
} else {
|
||||
l4g.MysqlLog.Debugf("add cmd[%s], msisdn[%s], prdInstId[%d]", cmd, msisdn, prdInstId)
|
||||
}
|
||||
stmt.Close()
|
||||
|
||||
cmd = "delete vmsSubscriber -msisdn " + msisdn
|
||||
stmt, _ = MySqlDb.Prepare("INSERT INTO tb_sync_cn_cmd SET cmd_type=?, node_type=?, node_name=?, srv_num=?, command=?, state=1, result=0, timestamp=NOW();")
|
||||
//defer stmt.Close()
|
||||
_, err = stmt.Exec(CT_DISCONNECT_ACCOUNT, NT_VMS, NodeName[NT_VMS], prdInstId, cmd)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("add cmd[%s], msisdn[%s], prdInstId[%d] err: %v", cmd, msisdn, prdInstId, err)
|
||||
//return err
|
||||
} else {
|
||||
l4g.MysqlLog.Debugf("add cmd[%s], msisdn[%s], prdInstId[%d]", cmd, msisdn, prdInstId)
|
||||
}
|
||||
stmt.Close()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func CrmDeleteSubsProfile(serviceNbr string, acctType string, acctId string) {
|
||||
if acctType == "1" {
|
||||
//sqlStr := "select PRE_ID, OPER_TYPE, IMSI, SERVICE_NBR, KI, OPC, CUST_ID, STATE, PRD_INST_ID, MOBILE_TYPE, VMS_FLAG, BIRTH_DATE, BALANCE, "
|
||||
//sqlStr += "BALANCE_EXP_DATE, OFR_ID, EXP_DATE, CUG_ID from tb_sync_mobile where ACCT_ID=? ORDER BY PRE_ID DESC limit 1;"
|
||||
sqlStr := "select IMSI, SERVICE_NBR, PRD_INST_ID, MOBILE_TYPE, VMS_FLAG "
|
||||
sqlStr += "from tb_sync_mobile where ACCT_ID=" + acctId + " ORDER BY PRE_ID DESC limit 1;"
|
||||
rows, err := MySqlDb.Query(sqlStr)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("Query tb_sync_mobile, accountId[%d] fail: %v", acctId, err)
|
||||
return
|
||||
}
|
||||
//defer rows.Close()
|
||||
|
||||
var imsi, msisdn string
|
||||
var prdInstId, mobileType, vmsFlag int
|
||||
for rows.Next(){
|
||||
if err = rows.Scan(&imsi, &msisdn, &prdInstId, &mobileType, &vmsFlag); err != nil {
|
||||
l4g.MysqlLog.Errorf("query row of tb_sync_mobile fail: %v", err)
|
||||
_ = rows.Close()
|
||||
return
|
||||
}
|
||||
|
||||
break
|
||||
}
|
||||
_ = rows.Close()
|
||||
|
||||
if imsi != "" {
|
||||
cmd := "delete subscriber -imsi " + imsi
|
||||
stmt, _ := MySqlDb.Prepare("INSERT INTO tb_sync_cn_cmd SET cmd_type=?, node_type=?, node_name=?, srv_num=?, command=?, state=1, result=0, timestamp=NOW();")
|
||||
//defer stmt.Close()
|
||||
_, err := stmt.Exec(CT_DISCONNECT_ACCOUNT, NT_HSS, NodeName[NT_HSS], strconv.Itoa(prdInstId), cmd)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("add cmd[%s], msisdn[%s], prdInstId[%d] err: %v", cmd, msisdn, prdInstId, err)
|
||||
//return err
|
||||
} else {
|
||||
l4g.MysqlLog.Debugf("add cmd[%s], msisdn[%s], prdInstId[%d]", cmd, msisdn, prdInstId)
|
||||
}
|
||||
stmt.Close()
|
||||
|
||||
cmd = "delete aucSubscriber -imsi " + imsi
|
||||
stmt, _ = MySqlDb.Prepare("INSERT INTO tb_sync_cn_cmd SET cmd_type=?, node_type=?, node_name=?, srv_num=?, command=?, state=1, result=0, timestamp=NOW();")
|
||||
//defer stmt.Close()
|
||||
_, err = stmt.Exec(CT_DISCONNECT_ACCOUNT, NT_AUC, NodeName[NT_AUC], strconv.Itoa(prdInstId), cmd)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("add cmd[%s], msisdn[%s], prdInstId[%d] err: %v", cmd, msisdn, prdInstId, err)
|
||||
//return err
|
||||
} else {
|
||||
l4g.MysqlLog.Debugf("add cmd[%s], msisdn[%s], prdInstId[%d]", cmd, msisdn, prdInstId)
|
||||
}
|
||||
stmt.Close()
|
||||
|
||||
if mobileType == 1{
|
||||
cmd = "delete ppsSubscriber -msisdn " + msisdn
|
||||
stmt, _ = MySqlDb.Prepare("INSERT INTO tb_sync_cn_cmd SET cmd_type=?, node_type=?, node_name=?, srv_num=?, command=?, state=2, result=1, cause='0000:Command successful', timestamp=NOW();")
|
||||
//defer stmt.Close()
|
||||
_, err = stmt.Exec(CT_DISCONNECT_ACCOUNT, NT_OCS, NodeName[NT_OCS], strconv.Itoa(prdInstId), cmd)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("add cmd[%s], msisdn[%s], prdInstId[%d] err: %v", cmd, msisdn, prdInstId, err)
|
||||
//return err
|
||||
} else {
|
||||
l4g.MysqlLog.Debugf("add cmd[%s], msisdn[%s], prdInstId[%d]", cmd, msisdn, prdInstId)
|
||||
}
|
||||
stmt.Close()
|
||||
}
|
||||
|
||||
if vmsFlag == 1{
|
||||
cmd = "delete vmsSubscriber -msisdn " + msisdn
|
||||
stmt, _ = MySqlDb.Prepare("INSERT INTO tb_sync_cn_cmd SET cmd_type=?, node_type=?, node_name=?, srv_num=?, command=?, state=1, result=0, timestamp=NOW();")
|
||||
//defer stmt.Close()
|
||||
_, err = stmt.Exec(CT_DISCONNECT_ACCOUNT, NT_VMS, NodeName[NT_VMS], strconv.Itoa(prdInstId), cmd)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("add cmd[%s], msisdn[%s], prdInstId[%d] err: %v", cmd, msisdn, prdInstId, err)
|
||||
//return err
|
||||
} else {
|
||||
l4g.MysqlLog.Debugf("add cmd[%s], msisdn[%s], prdInstId[%d]", cmd, msisdn, prdInstId)
|
||||
}
|
||||
stmt.Close()
|
||||
}
|
||||
}
|
||||
} else if acctType == "2" {
|
||||
ssEntryIdInCrm := Config.Provision.SsEntryIdInCrm
|
||||
orderId := queryOrderIdByServiceNbr(serviceNbr)
|
||||
if orderId == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
examNumStr := queryResourceExamNumByOrderId(orderId)
|
||||
if examNumStr == "" {
|
||||
return
|
||||
}
|
||||
kronePairId, _ := strconv.Atoi(examNumStr)
|
||||
if kronePairId <= 0 {
|
||||
return
|
||||
}
|
||||
|
||||
examNumStr = querySsEntryByResIdAndOrderId(ssEntryIdInCrm, orderId)
|
||||
if examNumStr == "" {
|
||||
return
|
||||
}
|
||||
ssEntry, _ := strconv.Atoi(examNumStr)
|
||||
|
||||
cmdDelPstn := fmt.Sprintf("delete pstn user isdn=%s, krone_pair_id=%d, ssentry=%d, state=Deleted, account_id=%s;",
|
||||
serviceNbr,kronePairId, ssEntry,acctId)
|
||||
insertCmdDelPstn(cmdDelPstn, serviceNbr)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func insertCmdDelPstn(cmd string, serviceNbr string) {
|
||||
stmt, _ := MySqlDb.Prepare("INSERT INTO tb_sync_cn_cmd SET cmd_type=?, node_type=?, node_name=?, srv_num=?, command=?, state=1, result=1, timestamp=NOW();")
|
||||
//defer stmt.Close()
|
||||
_, err := stmt.Exec(CT_DISCONNECT_ACCOUNT, NT_PSTN, NodeName[NT_PSTN], serviceNbr, cmd)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("insertCmdDelPstn cmd[%s], msisdn[%s] err: %v", cmd, serviceNbr, err)
|
||||
//return err
|
||||
} else {
|
||||
l4g.MysqlLog.Debugf("insertCmdDelPstn cmd[%s], msisdn[%s]", cmd, serviceNbr)
|
||||
}
|
||||
stmt.Close()
|
||||
}
|
||||
|
||||
func queryOrderIdByServiceNbr(serviceNbr string) int {
|
||||
sqlStr := "select ORDER_ID from tb_sync_pstn where SERVICE_NBR=" + serviceNbr + " ORDER by ORDER_ID desc limit 1;"
|
||||
rows, err := MySqlDb.Query(sqlStr)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("Query tb_sync_pstn, serviceNbr[%s] fail: %v", serviceNbr, err)
|
||||
return 0
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var orderId int
|
||||
for rows.Next(){
|
||||
if err = rows.Scan(&orderId); err != nil {
|
||||
l4g.MysqlLog.Errorf("query row of tb_sync_pstn fail: %v", err)
|
||||
//_ = rows.Close()
|
||||
return 0
|
||||
}
|
||||
|
||||
return orderId
|
||||
}
|
||||
//_ = rows.Close()
|
||||
return 0
|
||||
}
|
||||
|
||||
func queryResourceExamNumByOrderId(orderId int) string {
|
||||
sqlStr := "SELECT C.RESOURCE_EXAM_NUM FROM TB_PRD_RES_INST_551 A, TB_PRD_RES_INST_DETAIL_551 B, TB_RESOURCE_EXAM C "
|
||||
sqlStr += "WHERE A.RES_INST_ID=B.RES_INST_ID AND B.RESOURCE_EXAM_ID=C.RESOURCE_EXAM_ID AND C.RESOURCE_ID=1046 AND A.ORDER_ID=" + strconv.Itoa(orderId)+";"
|
||||
rows, err := MySqlDb.Query(sqlStr)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("Query TB_RESOURCE_EXAM, orderId[%d] fail: %v", orderId, err)
|
||||
return ""
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var resExamNum string
|
||||
for rows.Next(){
|
||||
if err = rows.Scan(&resExamNum); err != nil {
|
||||
l4g.MysqlLog.Errorf("query row of TB_RESOURCE_EXAM fail: %v", err)
|
||||
//_ = rows.Close()
|
||||
return ""
|
||||
}
|
||||
|
||||
return resExamNum
|
||||
}
|
||||
//_ = rows.Close()
|
||||
return ""
|
||||
}
|
||||
|
||||
func querySsEntryByResIdAndOrderId(resId, orderId int) string {
|
||||
sqlStr := fmt.Sprintf("%s%sC.RESOURCE_ID=%d AND A.ORDER_ID=%d;",
|
||||
"SELECT C.RESOURCE_EXAM_NUM FROM TB_PRD_RES_INST_551 A, TB_PRD_RES_INST_DETAIL_551 B, TB_RESOURCE_EXAM C ",
|
||||
"WHERE A.RES_INST_ID=B.RES_INST_ID AND B.RESOURCE_EXAM_ID=C.RESOURCE_EXAM_ID AND ", resId, orderId)
|
||||
rows, err := MySqlDb.Query(sqlStr)
|
||||
if err != nil {
|
||||
l4g.MysqlLog.Errorf("Query TB_RESOURCE_EXAM, orderId[%d] fail: %v", orderId, err)
|
||||
return ""
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var resExamNum string
|
||||
for rows.Next(){
|
||||
if err = rows.Scan(&resExamNum); err != nil {
|
||||
l4g.MysqlLog.Errorf("query row of TB_RESOURCE_EXAM fail: %v", err)
|
||||
return ""
|
||||
}
|
||||
|
||||
return resExamNum
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
Reference in New Issue
Block a user