main
Leo 10 hours ago
parent b034f5d997
commit c82c8c0b9b

@ -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{})

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

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

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

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

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

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

@ -20,7 +20,6 @@ import (
func ReqFinishAct(ctx *model.Ctx) {
//这里YSSQ指的是下一个步骤获取下一个步骤办理人员
//todo 目前只能用于零星,小区的下一步是资源录入
processDefinitionKey := ctx.Data.Get("processDefinitionKey").String()
docUploadWGQR(ctx)
switch processDefinitionKey {

Loading…
Cancel
Save