aa
This commit is contained in:
@@ -1,10 +1,16 @@
|
|||||||
package knowledge
|
package knowledge
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/weixinapi"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetKnowledgeDepot(ctx *jxcontext.Context, keyword string, offset, pageSize int) (page *model.PagedInfo, err error) {
|
func GetKnowledgeDepot(ctx *jxcontext.Context, keyword string, offset, pageSize int) (page *model.PagedInfo, err error) {
|
||||||
@@ -35,21 +41,69 @@ type SNSUploadImgResult struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func SNSUploadImg(ctx *jxcontext.Context, files []*multipart.FileHeader, isThumb bool) (snsUploadImgResult *SNSUploadImgResult, err error) {
|
func SNSUploadImg(ctx *jxcontext.Context, files []*multipart.FileHeader, isThumb bool) (snsUploadImgResult *SNSUploadImgResult, err error) {
|
||||||
//var (
|
var (
|
||||||
// data = []byte{}
|
data = []byte{}
|
||||||
// fileHeader = files[0]
|
fileHeader = files[0]
|
||||||
// fileName = fileHeader.Filename
|
fileName = fileHeader.Filename
|
||||||
//)
|
)
|
||||||
//snsUploadImgResult = &SNSUploadImgResult{}
|
snsUploadImgResult = &SNSUploadImgResult{}
|
||||||
//file, err := fileHeader.Open()
|
file, err := fileHeader.Open()
|
||||||
//file.Read(data)
|
file.Read(data)
|
||||||
//file.Close()
|
file.Close()
|
||||||
////如果不是缩略图,只会返url
|
if len(data) == 0 {
|
||||||
////如果是封面缩略图,则还会返mediaID
|
return snsUploadImgResult, fmt.Errorf("未读取到文件!")
|
||||||
//if !isThumb {
|
}
|
||||||
//
|
//如果不是缩略图,只会返url
|
||||||
//} else {
|
//如果是封面缩略图,则还会返mediaID
|
||||||
//
|
if !isThumb {
|
||||||
//}
|
if url, err := api.WeixinAPI.CBUploadImg(data, fileName, http.DetectContentType(data)); err == nil && url != "" {
|
||||||
|
snsUploadImgResult.URL = url
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if mediaID, url, err := api.WeixinAPI.CBUploadThumb(data, fileName, http.DetectContentType(data)); err == nil && url != "" && mediaID != "" {
|
||||||
|
snsUploadImgResult.URL = url
|
||||||
|
snsUploadImgResult.MediaID = mediaID
|
||||||
|
}
|
||||||
|
}
|
||||||
return snsUploadImgResult, err
|
return snsUploadImgResult, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func AddMaterial(ctx *jxcontext.Context, knowIDs []int, param *weixinapi.CBAddNewsParam) (err error) {
|
||||||
|
var (
|
||||||
|
db = dao.GetDB()
|
||||||
|
s = new(strings.Builder)
|
||||||
|
)
|
||||||
|
if len(knowIDs) == 0 {
|
||||||
|
return fmt.Errorf("请至少勾选一条!")
|
||||||
|
}
|
||||||
|
knows, err := dao.GetKnowledgeDepotNoPage(db, knowIDs)
|
||||||
|
for k, v := range knows {
|
||||||
|
if k != 0 {
|
||||||
|
s.WriteString(weixinapi.SNSCutLine)
|
||||||
|
}
|
||||||
|
s.WriteString(v.Content)
|
||||||
|
}
|
||||||
|
content := s.String()
|
||||||
|
if content != "" {
|
||||||
|
param.Content = content
|
||||||
|
api.WeixinAPI.CBAddNews(param)
|
||||||
|
} else {
|
||||||
|
return fmt.Errorf("读取内容错误!")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func SendSNSMediaMsg(ctx *jxcontext.Context, storeIDs []int, mediaID string) (err error) {
|
||||||
|
var (
|
||||||
|
openIDs []string
|
||||||
|
)
|
||||||
|
for _, v := range storeIDs {
|
||||||
|
if results := weixinmsg.GetWeixinOpenIDsFromStoreID(v); len(results) > 0 {
|
||||||
|
openIDs = append(openIDs, results...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(openIDs) > 0 {
|
||||||
|
return weixinmsg.MediaMessageSendGroup(openIDs, mediaID)
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -174,6 +174,10 @@ func SmartMessageTemplateSend(userOpenID, templateID, downloadURL, miniPageURL s
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MediaMessageSendGroup(openIDs []string, mediaID string) (err error) {
|
||||||
|
return api.WeixinAPI.CBMassSend(openIDs, mediaID)
|
||||||
|
}
|
||||||
|
|
||||||
func getOrderDetailBrief(order *model.GoodsOrder) (brief string) {
|
func getOrderDetailBrief(order *model.GoodsOrder) (brief string) {
|
||||||
sb := new(strings.Builder)
|
sb := new(strings.Builder)
|
||||||
sb.WriteString(order.Skus[0].SkuName)
|
sb.WriteString(order.Skus[0].SkuName)
|
||||||
|
|||||||
@@ -33,3 +33,18 @@ func GetKnowledgeDepot(db *DaoDB, keyword string, offset, pageSize int) (page *m
|
|||||||
}
|
}
|
||||||
return page, err
|
return page, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetKnowledgeDepotNoPage(db *DaoDB, ids []int) (knows []*model.KnowledgeDepot, err error) {
|
||||||
|
sql := `
|
||||||
|
SELECT *
|
||||||
|
FROM knowledge_depot
|
||||||
|
WHERE 1 = 1
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{}
|
||||||
|
if len(ids) > 0 {
|
||||||
|
sql += " AND t1.id IN (" + GenQuestionMarks(len(ids)) + ")"
|
||||||
|
sqlParams = append(sqlParams, ids)
|
||||||
|
}
|
||||||
|
GetRows(db, &knows, sql, sqlParams...)
|
||||||
|
return knows, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package controllers
|
|||||||
import (
|
import (
|
||||||
"git.rosy.net.cn/baseapi/platformapi/weixinapi"
|
"git.rosy.net.cn/baseapi/platformapi/weixinapi"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/knowledge"
|
"git.rosy.net.cn/jx-callback/business/jxstore/knowledge"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
"github.com/astaxie/beego/server/web"
|
"github.com/astaxie/beego/server/web"
|
||||||
)
|
)
|
||||||
@@ -69,12 +70,23 @@ func (c *KnowController) GetMaterialList() {
|
|||||||
// @Param showCoverPic formData int false "内容中是否显示封面,0不显示,1显示"
|
// @Param showCoverPic formData int false "内容中是否显示封面,0不显示,1显示"
|
||||||
// @Param needOpenComment formData int false "是否打开评论,0不打开,1打开"
|
// @Param needOpenComment formData int false "是否打开评论,0不打开,1打开"
|
||||||
// @Param onlyFansCanComment formData int false "是否只允许粉丝才能评论"
|
// @Param onlyFansCanComment formData int false "是否只允许粉丝才能评论"
|
||||||
// @Param content formData string true "内容"
|
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /AddMaterial [post]
|
// @router /AddMaterial [post]
|
||||||
func (c *KnowController) AddMaterial() {
|
func (c *KnowController) AddMaterial() {
|
||||||
c.callAddMaterial(func(params *tKnowAddMaterialParams) (retVal interface{}, errCode string, err error) {
|
c.callAddMaterial(func(params *tKnowAddMaterialParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
new := &weixinapi.CBAddNewsParam{
|
||||||
|
Title: params.Title,
|
||||||
|
Digest: params.Digest,
|
||||||
|
Author: params.Author,
|
||||||
|
ThumbMediaID: params.ThumbMediaID,
|
||||||
|
ShowCoverPic: params.ShowCoverPic,
|
||||||
|
NeedOpenComment: params.NeedOpenComment,
|
||||||
|
OnlyFansCanComment: params.OnlyFansCanComment,
|
||||||
|
}
|
||||||
|
var knowIDs []int
|
||||||
|
jxutils.Strings2Objs(params.KnowIDs, &knowIDs)
|
||||||
|
err = knowledge.AddMaterial(params.Ctx, knowIDs, new)
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -93,3 +105,20 @@ func (c *KnowController) SNSUploadImg() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 发送消息
|
||||||
|
// @Description 发送消息
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param storeIDs formData string false "门店IDs"
|
||||||
|
// @Param mediaID formData string false "素材ID"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /SendSNSMediaMsg [post]
|
||||||
|
func (c *KnowController) SendSNSMediaMsg() {
|
||||||
|
c.callSendSNSMediaMsg(func(params *tKnowSendSNSMediaMsgParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
var storeIDs []int
|
||||||
|
jxutils.Strings2Objs(params.StoreIDs, &storeIDs)
|
||||||
|
err = knowledge.SendSNSMediaMsg(params.Ctx, storeIDs, params.MediaID)
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -3734,4 +3734,13 @@ func init() {
|
|||||||
MethodParams: param.Make(),
|
MethodParams: param.Make(),
|
||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:KnowController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:KnowController"],
|
||||||
|
web.ControllerComments{
|
||||||
|
Method: "SendSNSMediaMsg",
|
||||||
|
Router: `/SendSNSMediaMsg`,
|
||||||
|
AllowHTTPMethods: []string{"post"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Filters: nil,
|
||||||
|
Params: nil})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user