From 8e0c7ce5e86aeddee21e5e52966ee00ea1067cbb Mon Sep 17 00:00:00 2001 From: richboo111 Date: Fri, 19 Jan 2024 14:44:22 +0800 Subject: [PATCH] 1 --- business/jxstore/act/act.go | 2 +- business/partner/im/im.go | 63 ++++++++++++++++++++------- business/partner/im/im_model.go | 4 +- controllers/im.go | 17 ++++++++ routers/commentsRouter_controllers.go | 9 ++++ 5 files changed, 78 insertions(+), 17 deletions(-) diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index 44a339927..951bca7ee 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -798,7 +798,7 @@ func CreateActForMtByOrder(ctx *jxcontext.Context, act *model.Act, vendorIDs []i var ( actStoreSkuMapUpdate *model.ActStoreSkuMap ) - sql := ` + sql := `weix SELECT * FROM act_store_sku_map WHERE act_id = ? AND store_id = ? AND sku_id = ? ` sqlParams := []interface{}{act.ID, storeID, utils.Str2Int(v.AppFoodCode)} diff --git a/business/partner/im/im.go b/business/partner/im/im.go index 99052b63b..952f3a6ec 100644 --- a/business/partner/im/im.go +++ b/business/partner/im/im.go @@ -363,19 +363,6 @@ func GenMsgListID(jxMsg *JXMsg, vendorID int, elmAppID string) (msgID string) { return msgID } -// GenIsAutoApplyID 生成获取消息自动回复状态 -func GenIsAutoApplyID(jxMsg *JXMsg, vendorID int) (msgID string) { - if vendorID == VendorIDMT { - var d1 = jxMsg.MsgContent.(mtwmapi.PushContentReq) - msgID = utils.Int2Str(d1.AppID) + ":" + utils.Int2Str(d1.OpenUserID) + ":" + utils.Int2Str(d1.MsgID) - } - if vendorID == VendorIDELM { - var d2 = jxMsg.MsgContent.(ebaiapi.ImMessageSend) - msgID = d2.PayLoad.MsgID + ":" + d2.PayLoad.SenderID - } - return msgID -} - // GetImUserList 获取门店用户聊天列表 func GetImUserList(req []RelInfo) (map[string][]interface{}, error) { retVal := make(map[string][]interface{}, 0) @@ -528,7 +515,7 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) { if req.SendType == SendTypeMt { mt := req.MsgContent.(mtwmapi.PushContentReq) key := utils.Int2Str(mt.AppID) + ":" + utils.Int2Str(mt.OpenUserID) + ":autoReply" - //1 检测是否已有回复消息 + //1 检测是否已自动回复 if n, err := rdb.Exists(key); n > 0 && err == nil { str := rdb.LRange(key) for i := 0; i < len(str); i++ { @@ -549,7 +536,12 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) { } temp := mt - temp.MsgContent = AutoReplyByAppID[mt.AppID] + //获取自定义回复模板 + if template := GetCustomTemplate(utils.Int2Str(mt.AppID), mt.AppPoiCode); len(template) != 0 { + temp.MsgContent = template + } else { + temp.MsgContent = AutoReplyByAppID[mt.AppID] + } temp.Cts = int(time.Now().Unix()) temp.MsgID = RandTimeNumber() @@ -575,3 +567,44 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) { //} return nil } + +// GenCustomReplyID 生成门店自动回复模板ID +func GenCustomReplyID(appID, vendorStoreID string) string { + return BaseCusKey + ":" + appID + ":" + vendorStoreID +} + +// GetCustomTemplate 获取自动回复模板 +func GetCustomTemplate(appID, vendorStoreID string) (storeTemplate string) { + key := GenCustomReplyID(appID, vendorStoreID) + temp := rdb.Get(key) + if temp != nil { + storeTemplate = temp.(string) + } + return storeTemplate +} + +// AddOrGetCustomReply 增加以及获取门店自定义回复模板 +func AddOrGetCustomReply(appID, vendorStoreID, replyTemplate string, opType int) (storeTemplate string, err error) { + if len(appID) == 0 || len(vendorStoreID) == 0 { + return "", errors.New("参数错误请检查!") + } + + key := GenCustomReplyID(appID, vendorStoreID) + + switch opType { + case OpTypeAdd: //新增或修改 + if len(replyTemplate) == 0 { + return "", errors.New("新增或修改门店自定义回复模板,不允许为空") + } + err = rdb.Del(key) + if err == nil { + err = rdb.Set(key, replyTemplate, 0) + } + return "", err + + case OpTypeGet: + storeTemplate = GetCustomTemplate(appID, vendorStoreID) + return storeTemplate, nil + } + return "", nil +} diff --git a/business/partner/im/im_model.go b/business/partner/im/im_model.go index 576b88b36..94f8452b8 100644 --- a/business/partner/im/im_model.go +++ b/business/partner/im/im_model.go @@ -54,7 +54,9 @@ var ( SendTypeJx = "jx" //京西客户端发送方标识 SendTypeMt = "mt" //美团用户发送方标识符 SendTypeElm = "elm" //饿了么用户发送方标识符 - + OpTypeAdd = 1 //门店新增或修改自定义回复模板 + OpTypeGet = 2 //门店获取 + BaseCusKey = "customReply" ) const ( diff --git a/controllers/im.go b/controllers/im.go index 36d53d121..644304494 100644 --- a/controllers/im.go +++ b/controllers/im.go @@ -144,3 +144,20 @@ func (c *IMController) GetElmMedia() { return retVal, "", err }) } + +// @Title 增加以及获取门店自定义回复模板 +// @Description 增加以及获取门店自定义回复模板 +// @Param token header string true "认证token" +// @Param appID query string true "京西门店id" +// @Param vendorStoreID query string true "美团门店id" +// @Param replyTemplate query string true "新增或修改自定义模板" +// @Param opType query int true "操作 1-新增 2-获取" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /AddOrGetCustomReply [get] +func (c *IMController) AddOrGetCustomReply() { + c.callAddOrGetCustomReply(func(params *tImAddOrGetCustomReplyParams) (interface{}, string, error) { + retVal, err := im.AddOrGetCustomReply(params.StoreID, params.VendorStoreID, params.ReplyTemplate, params.OpType) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 861c3647a..d688f8cfc 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -4542,6 +4542,15 @@ func init() { MethodParams: param.Make(), Filters: nil, Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:IMController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:IMController"], + web.ControllerComments{ + Method: "AddOrGetCustomReply", + Router: `/AddOrGetCustomReply`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + //web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:FnController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:FnController"], // web.ControllerComments{ // Method: "FnStore",