Browse Source

update

master
dengbiao 4 months ago
parent
commit
b345060c68
6 changed files with 147 additions and 9 deletions
  1. +1
    -1
      app/db/dbs_map.go
  2. +8
    -8
      consume/init.go
  3. +3
    -0
      super_cloud_issuance/enum/enum_api.go
  4. +7
    -0
      super_cloud_issuance/md/md_api.go
  5. +11
    -0
      super_cloud_issuance/svc/svc_cloud_issuance.go
  6. +117
    -0
      super_cloud_issuance/svc/svc_deal_call_back.go

+ 1
- 1
app/db/dbs_map.go View File

@@ -111,7 +111,7 @@ func GetAllDatabaseDev() *[]model.DbMapping {
if cfg.Local { // 本地调试 加快速度 if cfg.Local { // 本地调试 加快速度
fmt.Println("notice:LOCAL TEST, only masterId:** 123456 ** available!") fmt.Println("notice:LOCAL TEST, only masterId:** 123456 ** available!")
err = Db.Where("deleted_at != ? AND is_dev = '1' AND db_master_id= ?", 1, 123456). err = Db.Where("deleted_at != ? AND is_dev = '1' AND db_master_id= ?", 1, 123456).
Or("db_master_id = ?", 31585332).Find(&m)
Or("db_master_id = ?", 12293740).Find(&m)
} else { } else {
err = Db.Where("deleted_at != ? AND is_dev = '1' ", 1).Find(&m) err = Db.Where("deleted_at != ? AND is_dev = '1' ", 1).Find(&m)
} }


+ 8
- 8
consume/init.go View File

@@ -86,12 +86,12 @@ func initConsumes() {
//jobs[consumeMd.CanalB2cOrderForNumericalStatementConsumeFunName] = CanalB2cOrderForNumericalStatementConsume //jobs[consumeMd.CanalB2cOrderForNumericalStatementConsumeFunName] = CanalB2cOrderForNumericalStatementConsume


//////////////////////////////////////// oneCircles-v1 ///////////////////////////////////////////////////// //////////////////////////////////////// oneCircles-v1 /////////////////////////////////////////////////////
jobs[consumeMd.OneCirclesSignInGreenEnergyFunName] = OneCirclesSignInGreenEnergyConsume
jobs[consumeMd.OneCirclesStartLevelDividendFunName] = OneCirclesStartLevelDividendConsume
jobs[consumeMd.OneCirclesActivityCoinAutoExchangeGreenEnergyFunName] = OneCirclesActivityCoinAutoExchangeGreenEnergyConsume
jobs[consumeMd.OneCirclesActivityCoinAutoExchangeGreenEnergyForTeamFunName] = OneCirclesActivityCoinAutoExchangeGreenEnergyForTeamConsume
jobs[consumeMd.OneCirclesSettlementPublicGiveActivityCoinFunName] = OneCirclesSettlementPublicGiveActivityCoinConsume
jobs[consumeMd.OneCirclesAddPublicPlatoonUserRelationCommissionFunName] = OneCirclesAddPublicPlatoonUserRelationCommissionConsume
//jobs[consumeMd.OneCirclesSignInGreenEnergyFunName] = OneCirclesSignInGreenEnergyConsume
//jobs[consumeMd.OneCirclesStartLevelDividendFunName] = OneCirclesStartLevelDividendConsume
//jobs[consumeMd.OneCirclesActivityCoinAutoExchangeGreenEnergyFunName] = OneCirclesActivityCoinAutoExchangeGreenEnergyConsume
//jobs[consumeMd.OneCirclesActivityCoinAutoExchangeGreenEnergyForTeamFunName] = OneCirclesActivityCoinAutoExchangeGreenEnergyForTeamConsume
//jobs[consumeMd.OneCirclesSettlementPublicGiveActivityCoinFunName] = OneCirclesSettlementPublicGiveActivityCoinConsume
//jobs[consumeMd.OneCirclesAddPublicPlatoonUserRelationCommissionFunName] = OneCirclesAddPublicPlatoonUserRelationCommissionConsume


//////////////////////////////////////// oneCircles-v2 ///////////////////////////////////////////////////// //////////////////////////////////////// oneCircles-v2 /////////////////////////////////////////////////////
//jobs[consumeMd.OneCirclesDealUserCoinConsumeFunName] = OneCirclesDealUserCoinConsume //jobs[consumeMd.OneCirclesDealUserCoinConsumeFunName] = OneCirclesDealUserCoinConsume
@@ -108,8 +108,8 @@ func initConsumes() {
//jobs[consumeMd.InstallmentPaymentAutoRepaidConsumeFunName] = InstallmentPaymentAutoRepaidConsume //分期付 - 自动扣款 //jobs[consumeMd.InstallmentPaymentAutoRepaidConsumeFunName] = InstallmentPaymentAutoRepaidConsume //分期付 - 自动扣款


////////////////////////////////////// SuperCloudIssuance ///////////////////////////////////////////////////// ////////////////////////////////////// SuperCloudIssuance /////////////////////////////////////////////////////
//jobs[consumeMd.SuperCloudIssuanceMsgCallBackFunName] = SuperCloudIssuanceMsgCallBackConsume
//jobs[consumeMd.SuperCloudIssuanceAsyncMLoginFunName] = SuperCloudIssuanceAsyncMLoginConsume
jobs[consumeMd.SuperCloudIssuanceMsgCallBackFunName] = SuperCloudIssuanceMsgCallBackConsume
jobs[consumeMd.SuperCloudIssuanceAsyncMLoginFunName] = SuperCloudIssuanceAsyncMLoginConsume


////////////////////////////////////// DMS ///////////////////////////////////////////////////// ////////////////////////////////////// DMS /////////////////////////////////////////////////////
//jobs[consumeMd.CanalGimMessageConsumeFunName] = CanalGimMessageConsume //jobs[consumeMd.CanalGimMessageConsumeFunName] = CanalGimMessageConsume


+ 3
- 0
super_cloud_issuance/enum/enum_api.go View File

@@ -22,6 +22,7 @@ const (
RobotMacRepeatCircleMethodName = "itaoke.robot.macrepeat.circle" RobotMacRepeatCircleMethodName = "itaoke.robot.macrepeat.circle"
RobotMacSendAppMethodName = "itaoke.robot.macsend.app" RobotMacSendAppMethodName = "itaoke.robot.macsend.app"
RobotMacSendCircleMethodName = "itaoke.robot.macsend.circle" RobotMacSendCircleMethodName = "itaoke.robot.macsend.circle"
RobotMacSendEmojiMethodName = "itaoke.robot.macsend.emoji"
) )


func (gt CloudIssuanceMethodName) String() string { func (gt CloudIssuanceMethodName) String() string {
@@ -64,6 +65,8 @@ func (gt CloudIssuanceMethodName) String() string {
return "转发小程序等XML" return "转发小程序等XML"
case RobotMacSendCircleMethodName: case RobotMacSendCircleMethodName:
return "发送朋友圈" return "发送朋友圈"
case RobotMacSendEmojiMethodName:
return "转发emoji表情"
default: default:
return "未知" return "未知"
} }


+ 7
- 0
super_cloud_issuance/md/md_api.go View File

@@ -142,6 +142,13 @@ type RobotMacSendRecvVideoRequest struct {
Content string `json:"content"` //消息xml内容 Content string `json:"content"` //消息xml内容
} }


type RobotMacSendEmojiRequest struct {
RobotId int `json:"robot_id"` //机器人id
WxId string `json:"wx_id"` //发送微信好友/群id。一般wxid_开头
ImageMd5 string `json:"image_md5"` //取回调中xml中md5字段值
ImageSize string `json:"image_size"` //取回调中xml中len字段值
}

type RobotMacSendCircleRequest struct { type RobotMacSendCircleRequest struct {
RobotId int `json:"robot_id"` //机器人id RobotId int `json:"robot_id"` //机器人id
PicUrl string `json:"pic_url"` //图片url,多个请用;分隔 PicUrl string `json:"pic_url"` //图片url,多个请用;分隔


+ 11
- 0
super_cloud_issuance/svc/svc_cloud_issuance.go View File

@@ -324,6 +324,17 @@ func (svcCloudIssuance *CloudIssuanceService) RobotMacSendRecvVideo(args md.Robo
return return
} }


func (svcCloudIssuance *CloudIssuanceService) RobotMacSendEmoji(args md.RobotMacSendEmojiRequest) (err error) { // 发送文本消息
url := super_cloud_issuance.HttpBuild(svcCloudIssuance.RequestMethodName, svcCloudIssuance.RequestClientIp, map[string]string{
"robot_id": strconv.Itoa(args.RobotId),
"wx_id": args.WxId,
"image_md5": args.ImageMd5,
"image_size": args.ImageSize,
})
_, err = svcCloudIssuance.SendPost(url, args)
return
}

func (svcCloudIssuance *CloudIssuanceService) RobotMacSendCircle(args md.RobotMacSendCircleRequest) (err error) { // 下线机器人 func (svcCloudIssuance *CloudIssuanceService) RobotMacSendCircle(args md.RobotMacSendCircleRequest) (err error) { // 下线机器人
url := super_cloud_issuance.HttpBuild(svcCloudIssuance.RequestMethodName, svcCloudIssuance.RequestClientIp, map[string]string{ url := super_cloud_issuance.HttpBuild(svcCloudIssuance.RequestMethodName, svcCloudIssuance.RequestClientIp, map[string]string{
"robot_id": strconv.Itoa(args.RobotId), "robot_id": strconv.Itoa(args.RobotId),


+ 117
- 0
super_cloud_issuance/svc/svc_deal_call_back.go View File

@@ -15,6 +15,7 @@ import (
"fmt" "fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"math/rand" "math/rand"
"regexp"
"time" "time"
) )


@@ -140,6 +141,60 @@ func (dealSuperCloudIssuanceCallBackService *DealSuperCloudIssuanceCallBackServi
} }
} }
break break
case 20:
if req.Data.MsgType == "47" {
//TODO::表情
dealSuperCloudIssuanceCallBackService.DealSourceGroupMessage(req.Data.FromGroup, req)

utils.FilePutContents("DealSourceGroupMessage_Tmp", utils.SerializeStr(req))
//解析 content 中的xml 数据
// 编译正则表达式
// 注意:这里假设md5和len属性只会出现一次,并且格式如上所述
md5Regex := regexp.MustCompile(`md5="([^"]*)"`)
lenRegex := regexp.MustCompile(`len\s*=\s*"([^"]*)"`)
// 查找md5
md5Matches := md5Regex.FindStringSubmatch(req.Data.Content)
if len(md5Matches) > 1 {
fmt.Println("md5:", md5Matches[1])
} else {
fmt.Println("md5 not found")
return
}
// 查找len
lenMatches := lenRegex.FindStringSubmatch(req.Data.Content)
if len(lenMatches) > 1 {
fmt.Println("len:", lenMatches[1])
} else {
fmt.Println("len not found")
return
}

bindId := dealSuperCloudIssuanceCallBackService.IsNeedDealGroupMessage(req.Data.FromGroup, req.Data.FromUser, req.RobotId)
if bindId == 0 {
return
}
//3、查询需转发的群
superCloudIssuanceUserRobotBindFollowGroupDb := implement.NewSuperCloudIssuanceUserRobotBindFollowGroupDb(engine)
cloudIssuanceUserRobotBindFollowGroups, err := superCloudIssuanceUserRobotBindFollowGroupDb.GetCloudIssuanceUserRobotBindFollowGroupByBindId(bindId)
if err != nil {
fmt.Println("DealCallBack_err::::", err.Error())
return
}
for _, cloudIssuanceUserRobotBindFollowGroup := range cloudIssuanceUserRobotBindFollowGroups {
cloudIssuanceService.Set(nil, enum.RobotMacSendEmojiMethodName, "127.0.0.1")
err = cloudIssuanceService.RobotMacSendEmoji(md.RobotMacSendEmojiRequest{
RobotId: req.RobotId,
WxId: cloudIssuanceUserRobotBindFollowGroup.FollowChatRoomId,
ImageMd5: md5Matches[1],
ImageSize: lenMatches[1],
})
if err != nil {
fmt.Println("DealCallBack_err::::", err.Error())
return
}
}
}
break
} }
} }
} }
@@ -351,6 +406,68 @@ func (dealSuperCloudIssuanceCallBackService *DealSuperCloudIssuanceCallBackServi
} }
} }
break break
case 20:
if req.Data.MsgType == "47" {
//TODO::表情
//解析 content 中的xml 数据
// 编译正则表达式
// 注意:这里假设md5和len属性只会出现一次,并且格式如上所述
md5Regex := regexp.MustCompile(`md5="([^"]*)"`)
lenRegex := regexp.MustCompile(`len\s*=\s*"([^"]*)"`)
// 查找md5
md5Matches := md5Regex.FindStringSubmatch(req.Data.Content)
if len(md5Matches) > 1 {
fmt.Println("md5:", md5Matches[1])
} else {
fmt.Println("md5 not found")
return
}
// 查找len
lenMatches := lenRegex.FindStringSubmatch(req.Data.Content)
if len(lenMatches) > 1 {
fmt.Println("len:", lenMatches[1])
} else {
fmt.Println("len not found")
return
}
//3、查询需转发的群
err = engine.Where("activate_group_id =?", superCloudIssuanceUserRobotBindSource.ActivateGroupId).Find(&superCloudIssuanceUserRobotBindSourceFollowGroups)
if err != nil {
fmt.Println("DealSourceGroupMessage_Err:::::", err.Error())
return err
}
for _, superCloudIssuanceUserRobotBindSourceFollowGroup := range superCloudIssuanceUserRobotBindSourceFollowGroups {
group, err6 := superCloudIssuanceUserRobotWithActivateGroupDb.GetSuperCloudIssuanceUserRobotWithActivateGroup(superCloudIssuanceUserRobotBindSourceFollowGroup.FollowActivateGroupId)
if err6 != nil {
fmt.Println("DealSourceGroupMessage_Err:::::", err6.Error())
return err
}
if group == nil {
fmt.Println("DealSourceGroupMessage_Err:::::", "未查询到激活群记录")
return errors.New("未查询到激活群记录")
}
if group.State != 1 {
continue
}

superCloudIssuanceUserRobotDb := implement.NewSuperCloudIssuanceUserRobotDb(engine, superCloudIssuanceUserRobotBindSourceFollowGroup.Uid, dealSuperCloudIssuanceCallBackService.Context.GetString("mid"))
robot, _ := superCloudIssuanceUserRobotDb.GetSuperCloudIssuanceUserRobot()
if robot != nil {
cloudIssuanceService.Set(nil, enum.RobotMacSendEmojiMethodName, "127.0.0.1")
err5 := cloudIssuanceService.RobotMacSendEmoji(md.RobotMacSendEmojiRequest{
RobotId: robot.RobotId,
WxId: superCloudIssuanceUserRobotBindSourceFollowGroup.FollowChatRoomId,
ImageMd5: md5Matches[1],
ImageSize: lenMatches[1],
})
if err5 != nil {
fmt.Println("DealCallBack_err::::", err5.Error())
return
}
}
}
}
break
} }
} }




Loading…
Cancel
Save