From c82c8c0b9b383a50d8f93d214f7870a26e04db12 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 28 Jun 2026 18:45:04 +0800 Subject: [PATCH] update --- cmd/check_user_invaild.go | 1 + cmd/iom.go | 8 +- cmd/test.go | 142 +++++++++++++++++- cus-eng-con-sys/model/finish_act_process.go | 2 +- cus-eng-con-sys/model/jf_push_process.go | 2 +- cus-eng-con-sys/model/save_pro_and_start.go | 1 - cus-eng-con-sys/model/update_act_info.go | 4 +- .../model/update_act_info_org_staff.go | 8 +- cus-eng-con-sys/service/finish_act.go | 1 - 9 files changed, 154 insertions(+), 15 deletions(-) create mode 100644 cmd/check_user_invaild.go diff --git a/cmd/check_user_invaild.go b/cmd/check_user_invaild.go new file mode 100644 index 0000000..1d619dd --- /dev/null +++ b/cmd/check_user_invaild.go @@ -0,0 +1 @@ +package cmd diff --git a/cmd/iom.go b/cmd/iom.go index c285e22..9042c19 100644 --- a/cmd/iom.go +++ b/cmd/iom.go @@ -75,7 +75,7 @@ func runIOM() { for _, zhuang := range treeZhuang { //拿幢获取单元 zhuangHao := gjson.Get(zhuang.String(), "name").String() - //TODO ALL: ALL的时候注释掉 + //note: ALL的时候注释掉 if zhuangHao == "0幢" || zhuangHao == "0号楼" { continue } @@ -144,7 +144,7 @@ func runIOM() { //对于每个室进行处理 for _, shi := range treeShi { _ = commonkit.RecoverFuncWrapper(func() { - //TODO ALL: 如果删除全部,注释if,只运行else + //note: 如果删除全部,注释if,只运行else //大于等于3层的:每个室取消关联 name := gjson.Get(shi.String(), "name").String() if name != "101室" && name != "201室" && name != "301室" && name != "401室" { @@ -222,7 +222,7 @@ func runIOM() { } //} else { // //小于3层的:除了101、102、201、202以及商铺的不取消,其他取消并invalid - // //TODO ALL: 如果删除全部,name和下面的if判断2行 + // //note: 如果删除全部,name和下面的if判断2行 // name := gjson.Get(shi.String(), "name").String() // if name != "101室" && name != "102室" && name != "201室" && name != "202室" && !strings.Contains(name, "商铺") { // resp, err = client.R(). @@ -307,7 +307,7 @@ func runIOM() { }) } //处理完每个室后,对于大于等于3层的,直接删除整层,删除前要先POST验证,如果还有用户,会报错拦截 - //TODO ALL:如果要删除全部,注释if + //note:如果要删除全部,注释if //if cast.ToInt(temp) >= 2 { // m := ceng.Map() // resultMap := make(map[string]interface{}) diff --git a/cmd/test.go b/cmd/test.go index 5f3a953..bcb17e6 100644 --- a/cmd/test.go +++ b/cmd/test.go @@ -1,7 +1,19 @@ package cmd import ( + "crypto/md5" + "encoding/base64" + "encoding/hex" + "fmt" + "math/rand" + "time" + + "github.com/go-resty/resty/v2" + "github.com/mizuki1412/go-core-kit/class/exception" + "github.com/mizuki1412/go-core-kit/service/configkit" + "github.com/spf13/cast" "github.com/spf13/cobra" + "github.com/tidwall/gjson" ) func init() { @@ -12,6 +24,134 @@ var testCmd = &cobra.Command{ Use: "test", Short: "Only for test", Run: func(cmd *cobra.Command, args []string) { - + res := getUserIds() + fmt.Println(res) + for _, v := range res { + result, err := CheckUser( + v, + WMSToken, + ) + if err != nil { + panic(exception.New(err.Error())) + } + moduleResultList := gjson.Get(result, "data.moduleResultList").Array() + qianfei := moduleResultList[0].Get("itemList").Array()[3].Get("itemResult").String() + lixian := moduleResultList[3].Get("itemList").Array()[0].Get("itemResult").String() + if qianfei == "是" && lixian == "离线" { + fmt.Println(v + " 欠费且离线") + } + } }, } + +func getUserIds() []string { + var m []string + client := resty.New().SetRetryCount(5).SetRetryWaitTime(20 * time.Second) + resp, err := client.R(). + SetHeaders(map[string]string{ + "Authorization": "HaoXian " + cast.ToString(configkit.Get("token", "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo5MzYsInVzZXJfa2V5IjoiNzYzNjQyZTktNmMyZS00ODdkLWE3NWItNTM5NGYyZmFmMjBlIiwidXNlcm5hbWUiOiJ2emphZXhoeTAxMzMifQ.42oypkCmHDoqrRHI2J0K-7Ub2Acc7YjfaddW8xlOjirjaeGtW8Xy1sSUrLDDS0_ep2qgmO8Yj9tqUlHFhYjzVw")), + "Content-Type": "application/json;charset=UTF-8", + "Cookie": "Admin-Expires-In=720; Admin-Token=" + cast.ToString(configkit.Get("token", "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo5MzYsInVzZXJfa2V5IjoiNzYzNjQyZTktNmMyZS00ODdkLWE3NWItNTM5NGYyZmFmMjBlIiwidXNlcm5hbWUiOiJ2emphZXhoeTAxMzMifQ.42oypkCmHDoqrRHI2J0K-7Ub2Acc7YjfaddW8xlOjirjaeGtW8Xy1sSUrLDDS0_ep2qgmO8Yj9tqUlHFhYjzVw")), + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36", + }).SetBody(map[string]string{ + "eqptId": "124390484", + "regionId": "A", + }).Post("http://132.151.25.19:15609/prod-api/eqpt/resEqpt/portOfEqpt") + if err != nil { + panic(exception.New(err.Error())) + } + arr := gjson.Get(resp.String(), "data").Array() + for i, v := range arr { + if i == 0 || v.Get("STATE").String() != "A" { + continue + } else { + id := v.Get("SUBSCRIBER_ID").String() + resp, err = client.R(). + SetHeaders(map[string]string{ + "Authorization": "HaoXian " + cast.ToString(configkit.Get("token", "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo5MzYsInVzZXJfa2V5IjoiNzYzNjQyZTktNmMyZS00ODdkLWE3NWItNTM5NGYyZmFmMjBlIiwidXNlcm5hbWUiOiJ2emphZXhoeTAxMzMifQ.42oypkCmHDoqrRHI2J0K-7Ub2Acc7YjfaddW8xlOjirjaeGtW8Xy1sSUrLDDS0_ep2qgmO8Yj9tqUlHFhYjzVw")), + "Content-Type": "application/json;charset=UTF-8", + "Cookie": "Admin-Expires-In=720; Admin-Token=" + cast.ToString(configkit.Get("token", "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjo5MzYsInVzZXJfa2V5IjoiNzYzNjQyZTktNmMyZS00ODdkLWE3NWItNTM5NGYyZmFmMjBlIiwidXNlcm5hbWUiOiJ2emphZXhoeTAxMzMifQ.42oypkCmHDoqrRHI2J0K-7Ub2Acc7YjfaddW8xlOjirjaeGtW8Xy1sSUrLDDS0_ep2qgmO8Yj9tqUlHFhYjzVw")), + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36", + }).SetQueryParams(map[string]string{ + "productInstanceId": id, + "regionId": "A", + "state": "A", + "sysMenuId": "2166", + }).Get("http://132.151.25.19:15609/prod-api/resource/queryProductInfo/portUserList") + if err != nil { + panic(exception.New(err.Error())) + } + if len(gjson.Get(resp.String(), "data").Array()) > 0 { + m = append(m, gjson.Get(resp.String(), "data").Array()[0].Get("bandNumber").String()) + + } + } + } + return m +} + +const ( + AppID = "gkSystem" + AppSec = "123456" + UserType = 1 + WMSToken = "2521870EF1B066C03DAE4A3F954961A4C22BC06A5FBCD5B54AD4586B24755772817529295CB7A609E022DE1810993F01" +) + +const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + +func randomString(n int) string { + r := rand.New(rand.NewSource(time.Now().UnixNano())) + + b := make([]byte, n) + for i := range b { + b[i] = chars[r.Intn(len(chars))] + } + + return string(b) +} + +func buildSign() (string, string, int64) { + timestamp := time.Now().UnixMilli() + nonceStr := randomString(32) + raw := fmt.Sprintf( + "%s_%s_%d_%s", + AppID, + AppSec, + timestamp, + nonceStr, + ) + sum := md5.Sum([]byte(raw)) + md5Hex := hex.EncodeToString(sum[:]) + + sign := base64.StdEncoding.EncodeToString( + []byte(md5Hex), + ) + + return sign, nonceStr, timestamp +} + +func CheckUser(account string, token string) (string, error) { + sign, nonceStr, timestamp := buildSign() + body := map[string]any{ + "account": base64.StdEncoding.EncodeToString([]byte(account)), + "type": UserType, + "appId": AppID, + "sign": sign, + "nonceStr": nonceStr, + "timestamp": timestamp, + } + resp, err := resty.New(). + R(). + SetHeader("Content-Type", "application/json"). + SetQueryParam("touchKey", AppID). + SetQueryParam("appSec", AppSec). + SetQueryParam("token", token). + SetBody(body). + Post("https://zjgkappservice.zj186.com/diagnosed/checkUser") + + if err != nil { + panic(exception.New(err.Error())) + } + + return resp.String(), nil +} diff --git a/cus-eng-con-sys/model/finish_act_process.go b/cus-eng-con-sys/model/finish_act_process.go index ecaf705..1b0104b 100644 --- a/cus-eng-con-sys/model/finish_act_process.go +++ b/cus-eng-con-sys/model/finish_act_process.go @@ -33,7 +33,7 @@ func NewFinishActProcess(proInsId, taskId, assigneeId, processDefinitionKey stri switch processDefinitionKey { case config.ProcessHouse: finishActProcess.TaskDefinitionKey = "ZYLR" - finishActProcess.Assignee = "3106207" //todo 张滋豪 写死 + finishActProcess.Assignee = "3106207" //张滋豪 写死 finishActProcess.Comment = "请进行资源录入" case config.ProcessLX: finishActProcess.TaskDefinitionKey = "YSSQ" diff --git a/cus-eng-con-sys/model/jf_push_process.go b/cus-eng-con-sys/model/jf_push_process.go index 2529031..e6e3a89 100644 --- a/cus-eng-con-sys/model/jf_push_process.go +++ b/cus-eng-con-sys/model/jf_push_process.go @@ -33,7 +33,7 @@ func NewJFPushProcess(processInsId, taskId, deliveryId, businessKey string) *JFP jfPushProcess.TaskId = taskId jfPushProcess.DeliveryId = deliveryId jfPushProcess.TaskDefinitionKey = "JFQR" - jfPushProcess.Assignee = "3072887" //todo 每个人都是这个吗 + jfPushProcess.Assignee = "3072887" jfPushProcess.Comment = "请确认" jfPushProcess.HandleType = "1" jfPushProcess.BusinessKey = businessKey diff --git a/cus-eng-con-sys/model/save_pro_and_start.go b/cus-eng-con-sys/model/save_pro_and_start.go index a90157e..5aab92f 100644 --- a/cus-eng-con-sys/model/save_pro_and_start.go +++ b/cus-eng-con-sys/model/save_pro_and_start.go @@ -30,7 +30,6 @@ type SaveProAndStart struct { func NewSaveProAndStart(parentProcInsId, actOrgName string) *SaveProAndStart { accConfirm := new(SaveProAndStart) accConfirm.ProcessDefinitionKey = "YSJFProcess" - //accConfirm.Assignee = "3083195,3098707,3105305,3083564,3106207,3096322" //TODO 暂时写死 switch actOrgName { case "中憬科技集团有限公司": accConfirm.Assignee = "3080148,3102931,3105305,3083564,3106207,3083195" diff --git a/cus-eng-con-sys/model/update_act_info.go b/cus-eng-con-sys/model/update_act_info.go index 8883d5b..53ab876 100644 --- a/cus-eng-con-sys/model/update_act_info.go +++ b/cus-eng-con-sys/model/update_act_info.go @@ -96,7 +96,7 @@ type UpdateActInfo struct { BuildModel string `map:"buildModel"` Countys string `map:"countys"` LinkCode string `map:"linkCode"` - BusiId string `map:"busiId'"` //todo 这是工建的bug + BusiId string `map:"busiId'"` //这是工建的bug TaskIds string `map:"taskIds"` SpecC string `map:"specC"` Pass string `map:"pass"` @@ -194,7 +194,7 @@ func NewUpdateActInfo(html string) *UpdateActInfo { updateActInfo.RemandId = util.HTMLContentFindFirst(html, "remandId") updateActInfo.SplitRemandId = util.HTMLContentFindFirst(html, "splitRemandId") updateActInfo.IsSplitedRemand = util.HTMLContentFindFirst(html, "isSplitedRemand") - updateActInfo.SaveOrUpdateType = "2" // todo 确认下 + updateActInfo.SaveOrUpdateType = "2" updateActInfo.Prov = util.HTMLContentFindFirst(html, "prov") updateActInfo.BussCode = util.HTMLContentFindFirst(html, "bussCode") updateActInfo.ProcInsId = util.HTMLContentFindFirst(html, "procInsId") diff --git a/cus-eng-con-sys/model/update_act_info_org_staff.go b/cus-eng-con-sys/model/update_act_info_org_staff.go index 40e85cd..c112080 100644 --- a/cus-eng-con-sys/model/update_act_info_org_staff.go +++ b/cus-eng-con-sys/model/update_act_info_org_staff.go @@ -26,11 +26,11 @@ func NewUpdateActInfoOrgAndStaff(actId, processDefinitionKey string) *UpdateActI updateActInfoOrgAndStaff := new(UpdateActInfoOrgAndStaff) switch processDefinitionKey { case config.ProcessHouse: //小区(包括扩容) - updateActInfoOrgAndStaff.ActStartOrgId = "3104398" //todo 余秉 - updateActInfoOrgAndStaff.ActOrgCode = "1538688" //todo 余秉 + updateActInfoOrgAndStaff.ActStartOrgId = "3104398" //余秉 写死 + updateActInfoOrgAndStaff.ActOrgCode = "1538688" //余秉 写死 case config.ProcessLX: - updateActInfoOrgAndStaff.ActStartOrgId = "3109710" //todo 周秋伟 - updateActInfoOrgAndStaff.ActOrgCode = "1538443" //todo 周秋伟 + updateActInfoOrgAndStaff.ActStartOrgId = "3109710" //周秋伟 写死 + updateActInfoOrgAndStaff.ActOrgCode = "1538443" //周秋伟 写死 } updateActInfoOrgAndStaff.ActId = actId updateActInfoOrgAndStaff.Ranstr = cryptokit.RandomStr(true, 10, 32) diff --git a/cus-eng-con-sys/service/finish_act.go b/cus-eng-con-sys/service/finish_act.go index d66c37f..9aa33e4 100644 --- a/cus-eng-con-sys/service/finish_act.go +++ b/cus-eng-con-sys/service/finish_act.go @@ -20,7 +20,6 @@ import ( func ReqFinishAct(ctx *model.Ctx) { //这里YSSQ指的是下一个步骤,获取下一个步骤办理人员 - //todo 目前只能用于零星,小区的下一步是资源录入 processDefinitionKey := ctx.Data.Get("processDefinitionKey").String() docUploadWGQR(ctx) switch processDefinitionKey {