123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- package services
- import (
- "encoding/json"
- "errors"
- "fmt"
- "hongze/hongze_yb/global"
- "hongze/hongze_yb/models/response"
- admin2 "hongze/hongze_yb/models/tables/admin"
- "hongze/hongze_yb/models/tables/company_product"
- "hongze/hongze_yb/models/tables/sys_role_admin"
- "hongze/hongze_yb/models/tables/voice_broadcast"
- "hongze/hongze_yb/models/tables/voice_broadcast_statistics"
- "hongze/hongze_yb/models/tables/voice_section"
- "hongze/hongze_yb/services/user"
- "hongze/hongze_yb/utils"
- "time"
- )
- func GetVoiceBroadcastList(pageindex, pagesize, sectionId, broadcastId int, userInfo user.UserInfo) (list []response.Broadcast, err error) {
- if broadcastId == 0 {
- if sectionId == 0 {
- broadList, e := voice_broadcast.GetBroadcast(pageindex, pagesize)
- if e != nil {
- e = errors.New("获取语音播报列表失败 Err:" + e.Error())
- }
- for _, item := range broadList {
- var respItem response.Broadcast
- respItem = response.Broadcast{
- BroadcastId: item.BroadcastId,
- BroadcastName: item.BroadcastName,
- SectionId: item.SectionId,
- SectionName: item.SectionName,
- VarietyId: item.VarietyId,
- VarietyName: item.VarietyName,
- AuthorId: item.AuthorId,
- Author: item.Author,
- ImgUrl: item.ImgUrl,
- VoiceUrl: item.VoiceUrl,
- VoicePlaySeconds: item.VoicePlaySeconds,
- VoiceSize: item.VoiceSize,
- CreateTime: item.CreateTime,
- IsAuthor: false,
- }
- if int(userInfo.UserID) == item.AuthorId {
- respItem.IsAuthor = true
- }
- list = append(list, respItem)
- }
- err = e
- return
- }
- broadList, e := voice_broadcast.GetBroadcastByCondition(pageindex, pagesize, sectionId)
- if e != nil {
- e = errors.New("获取语音播报列表失败 Err:" + e.Error())
- }
- for _, item := range broadList {
- var respItem response.Broadcast
- respItem = response.Broadcast{
- BroadcastId: item.BroadcastId,
- BroadcastName: item.BroadcastName,
- SectionId: item.SectionId,
- SectionName: item.SectionName,
- VarietyId: item.VarietyId,
- VarietyName: item.VarietyName,
- AuthorId: item.AuthorId,
- Author: item.Author,
- ImgUrl: item.ImgUrl,
- VoiceUrl: item.VoiceUrl,
- VoicePlaySeconds: item.VoicePlaySeconds,
- VoiceSize: item.VoiceSize,
- CreateTime: item.CreateTime,
- IsAuthor: false,
- }
- if int(userInfo.UserID) == item.AuthorId {
- respItem.IsAuthor = true
- }
- list = append(list, respItem)
- }
- err = e
- return
- } else {
- broadList, e := voice_broadcast.GetBroadcastByIdAndPage(pageindex, pagesize, broadcastId)
- if e != nil {
- e = errors.New("获取语音播报列表失败 Err:" + e.Error())
- }
- for _, item := range broadList {
- var respItem response.Broadcast
- respItem = response.Broadcast{
- BroadcastId: item.BroadcastId,
- BroadcastName: item.BroadcastName,
- SectionId: item.SectionId,
- SectionName: item.SectionName,
- VarietyId: item.VarietyId,
- VarietyName: item.VarietyName,
- AuthorId: item.AuthorId,
- Author: item.Author,
- ImgUrl: item.ImgUrl,
- VoiceUrl: item.VoiceUrl,
- VoicePlaySeconds: item.VoicePlaySeconds,
- VoiceSize: item.VoiceSize,
- CreateTime: item.CreateTime,
- IsAuthor: false,
- }
- if int(userInfo.UserID) == item.AuthorId {
- respItem.IsAuthor = true
- }
- list = append(list, respItem)
- }
- err = e
- return
- }
- }
- // GetVoiceAdminByUserInfo 判断当前用户是否为语音管理员
- func GetVoiceAdminByUserInfo(userInfo user.UserInfo) (ok bool, adminInfo *admin2.Admin, err error) {
- mobile := userInfo.Mobile
- var email string
- if mobile == "" {
- // 用户有可能是通过邮箱登录
- email = userInfo.Email
- if email == "" {
- return
- }
- }
- if userInfo.CompanyID != 16 {
- return
- }
- if mobile != "" {
- adminInfo, err = admin2.GetAdminByMobile(mobile)
- if err != nil {
- if err == utils.ErrNoRow {
- err = nil
- return
- }
- return
- }
- } else {
- adminInfo, err = admin2.GetAdminByEmail(email)
- if err != nil {
- if err == utils.ErrNoRow {
- err = nil
- return
- }
- return
- }
- }
- if adminInfo.Enabled != 1 {
- return
- }
- _, err = sys_role_admin.GetVoiceAdmin(int(adminInfo.AdminID))
- if err != nil && err != utils.ErrNoRow {
- return
- }
- if err == utils.ErrNoRow {
- ok = false
- return
- }
- ok = true
- return
- }
- func AddBroadcastRecord(userinfo user.UserInfo, source, broadcastId int) {
- var err error
- defer func() {
- if err != nil {
- global.LOG.Critical(fmt.Sprintf("AddBroadcastLog: userId=%d, err:%s", userinfo.UserID, err.Error()))
- }
- }()
- companyProduct, err := company_product.GetByCompany2ProductId(userinfo.CompanyID, 1)
- if err != nil {
- return
- }
- broadcast, err := voice_broadcast.GetBroadcastById(broadcastId)
- if err != nil {
- return
- }
- voiceBroadcastStatistics := voice_broadcast_statistics.VoiceBroadcastStatistics{
- CompanyId: companyProduct.CompanyID,
- CompanyName: companyProduct.CompanyName,
- UserId: int(userinfo.UserID),
- RealName: userinfo.RealName,
- Mobile: userinfo.Mobile,
- Email: userinfo.Email,
- CompanyStatus: companyProduct.Status,
- Source: source,
- BroadcastId: broadcastId,
- BroadcastName: broadcast.BroadcastName,
- SectionId: broadcast.SectionId,
- SectionName: broadcast.SectionName,
- VarietyId: broadcast.VarietyId,
- VarietyName: broadcast.VarietyName,
- AuthorId: broadcast.AuthorId,
- Author: broadcast.Author,
- PublishTime: broadcast.CreateTime,
- CreateTime: time.Now().Format(utils.FormatDateTime),
- }
- err = voiceBroadcastStatistics.AddBroadcastStatistics()
- if err != nil {
- return
- }
- return
- }
- // VoiceBroadcastShareImgPars 语音播报分享图参数
- type VoiceBroadcastShareImgPars struct {
- BackgroundImg string `json:"background_img"`
- Title string `json:"title"`
- CreateTime string `json:"create_time"`
- }
- // UpdateVoiceBroadcastImgUrl 更新历史语音播报分享图
- func UpdateVoiceBroadcastImgUrl() (err error) {
- defer func() {
- if err != nil {
- fmt.Println(err.Error())
- }
- }()
- // 获取语音播报列表
- list, e := voice_broadcast.GetBroadcastList()
- if e != nil {
- err = errors.New("获取语音播报列表失败")
- return
- }
- // 获取语音播报板块分享图
- sectionList, e := voice_section.GetVoiceSection()
- if e != nil {
- err = errors.New("获取语音播报列表失败")
- return
- }
- sectionMap := make(map[int]string, 0)
- sectionNameMap := make(map[int]string, 0)
- for _, s := range sectionList {
- sectionMap[s.SectionId] = s.ImgUrl
- sectionNameMap[s.SectionId] = s.SectionName
- }
- // 生成语音分享图并更新
- listLen := len(list)
- fmt.Println("待更新数:", listLen)
- updateCols := []string{"ImgUrl"}
- for i := 0; i < listLen; i++ {
- item := list[i]
- fmt.Println("正在更新-Id:", item.BroadcastId)
- imgUrl := sectionMap[item.SectionId]
- if imgUrl == "" {
- fmt.Println("背景图为空-Id:", item.BroadcastId)
- continue
- }
- sectionName := sectionNameMap[item.SectionId]
- timeDate := item.CreateTime[0:10]
- pars := VoiceBroadcastShareImgPars{
- BackgroundImg: imgUrl,
- Title: sectionName,
- CreateTime: timeDate,
- }
- parsByte, e := json.Marshal(pars)
- if e != nil {
- err = errors.New("分享图参数有误")
- return
- }
- shareImg, e := GetDynamicShareImg(VoiceBroadcastShareImgSource, string(parsByte))
- //fmt.Println(shareImg)
- if e != nil {
- err = errors.New("生成分享图失败")
- return
- }
- item.ImgUrl = shareImg
- if e = item.Update(updateCols); e != nil {
- err = errors.New("更新语音播报失败")
- return
- }
- fmt.Println("更新成功-Id:", item.BroadcastId)
- }
- return
- }
|