business_conf.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "hongze/hz_eta_api/models"
  5. "hongze/hz_eta_api/utils"
  6. "html"
  7. "strings"
  8. "time"
  9. )
  10. // BusinessConfController 商家配置
  11. type BusinessConfController struct {
  12. BaseAuthController
  13. }
  14. // Save
  15. // @Title 保存配置
  16. // @Description 保存配置
  17. // @Param request body models.BusinessConfSaveReq true "type json string"
  18. // @Success 200 Ret=200 操作成功
  19. // @router /save [post]
  20. func (this *BusinessConfController) Save() {
  21. br := new(models.BaseResponse).Init()
  22. defer func() {
  23. if br.ErrMsg == "" {
  24. br.IsSendEmail = false
  25. }
  26. this.Data["json"] = br
  27. this.ServeJSON()
  28. }()
  29. sysUser := this.SysUser
  30. if sysUser == nil {
  31. br.Msg = "请登录"
  32. br.ErrMsg = "请登录,SysUser Is Empty"
  33. br.Ret = 408
  34. return
  35. }
  36. // 参数校验
  37. var req models.BusinessConfSaveReq
  38. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  39. br.Msg = "参数解析异常!"
  40. br.ErrMsg = "参数解析失败,Err:" + e.Error()
  41. return
  42. }
  43. req.Disclaimer = strings.TrimSpace(req.Disclaimer)
  44. if req.Disclaimer == "" {
  45. br.Msg = "请输入免责声明"
  46. return
  47. }
  48. req.CompanyName = strings.TrimSpace(req.CompanyName)
  49. if req.CompanyName == "" {
  50. br.Msg = "请输入公司名称"
  51. return
  52. }
  53. if len(req.CnPptCoverImgs) == 0 {
  54. br.Msg = "请上传中文PPT封面图"
  55. return
  56. }
  57. if len(req.CnPptCoverImgs) > 3 {
  58. br.Msg = "封面图最多上传3张"
  59. return
  60. }
  61. if req.CnPptBackgroundImg == "" {
  62. br.Msg = "请上传中文PPT背景图"
  63. return
  64. }
  65. if req.CnPptBackgroundImg == "" {
  66. br.Msg = "请上传中文PPT封底图"
  67. return
  68. }
  69. if len(req.EnPptCoverImgs) == 0 {
  70. br.Msg = "请上传英文PPT封面图"
  71. return
  72. }
  73. if len(req.EnPptCoverImgs) > 3 {
  74. br.Msg = "封面图最多上传3张"
  75. return
  76. }
  77. if req.EnPptBackgroundImg == "" {
  78. br.Msg = "请上传英文PPT背景图"
  79. return
  80. }
  81. if req.EnPptBottomImg == "" {
  82. br.Msg = "请上传英文PPT封底图"
  83. return
  84. }
  85. if req.UseXf == 1 {
  86. req.XfAppid = strings.TrimSpace(req.XfAppid)
  87. if req.XfAppid == "" {
  88. br.Msg = "请输入科大讯飞APPID"
  89. return
  90. }
  91. req.XfApiKey = strings.TrimSpace(req.XfApiKey)
  92. if req.XfApiKey == "" {
  93. br.Msg = "请输入科大讯飞APIKey"
  94. return
  95. }
  96. req.XfApiSecret = strings.TrimSpace(req.XfApiSecret)
  97. if req.XfApiSecret == "" {
  98. br.Msg = "请输入科大讯飞APISecret"
  99. return
  100. }
  101. req.XfVcn = strings.TrimSpace(req.XfVcn)
  102. if req.XfVcn == "" {
  103. br.Msg = "请输入科大讯飞Vcn"
  104. return
  105. }
  106. }
  107. item, e := models.GetBusinessConf()
  108. if e != nil && e.Error() != utils.ErrNoRow() {
  109. br.Msg = "保存失败"
  110. br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
  111. return
  112. }
  113. isUpdate := false
  114. if item != nil {
  115. isUpdate = true
  116. } else {
  117. item = new(models.BusinessConf)
  118. }
  119. item.CompanyName = req.CompanyName
  120. item.CompanyWatermark = req.CompanyWatermark
  121. item.WatermarkChart = req.WatermarkChart
  122. item.CnPptCoverImgs = strings.Join(req.CnPptCoverImgs, ",")
  123. item.CnPptBackgroundImg = req.CnPptBackgroundImg
  124. item.CnPptBottomImg = req.CnPptBottomImg
  125. item.Disclaimer = html.EscapeString(req.Disclaimer)
  126. item.EnPptCoverImgs = strings.Join(req.EnPptCoverImgs, ",")
  127. item.EnPptBackgroundImg = req.EnPptBackgroundImg
  128. item.EnPptBottomImg = req.EnPptBottomImg
  129. item.UseXf = req.UseXf
  130. item.XfAppid = req.XfAppid
  131. item.XfApiKey = req.XfApiKey
  132. item.XfApiSecret = req.XfApiSecret
  133. item.XfVcn = req.XfVcn
  134. if isUpdate {
  135. cols := []string{
  136. "CompanyName", "CompanyWatermark", "WatermarkChart", "CnPptCoverImgs", "CnPptBackgroundImg", "CnPptBottomImg", "Disclaimer",
  137. "EnPptCoverImgs", "EnPptBackgroundImg", "EnPptBottomImg", "UseXf", "XfAppid", "XfApiKey", "XfApiSecret", "XfVcn",
  138. }
  139. if e = item.Update(cols); e != nil {
  140. br.Msg = "保存失败"
  141. br.ErrMsg = "更新商家配置失败, Err: " + e.Error()
  142. return
  143. }
  144. } else {
  145. if e = item.Create(); e != nil {
  146. br.Msg = "保存失败"
  147. br.ErrMsg = "新增商家配置失败, Err: " + e.Error()
  148. return
  149. }
  150. }
  151. // 操作日志
  152. go func() {
  153. b, e := json.Marshal(req)
  154. if e != nil {
  155. return
  156. }
  157. recordOb := new(models.BusinessConfOperationRecord)
  158. recordOb.SysUserId = sysUser.AdminId
  159. recordOb.SysRealName = sysUser.RealName
  160. recordOb.Content = string(b)
  161. recordOb.CreateTime = time.Now().Local()
  162. _ = recordOb.Create()
  163. }()
  164. br.Ret = 200
  165. br.Success = true
  166. br.Msg = "操作成功"
  167. }
  168. // Fetch
  169. // @Title 获取配置
  170. // @Description 获取配置
  171. // @Success 200 Ret=200 获取成功
  172. // @router /fetch [get]
  173. func (this *BusinessConfController) Fetch() {
  174. br := new(models.BaseResponse).Init()
  175. defer func() {
  176. if br.ErrMsg == "" {
  177. br.IsSendEmail = false
  178. }
  179. this.Data["json"] = br
  180. this.ServeJSON()
  181. }()
  182. sysUser := this.SysUser
  183. if sysUser == nil {
  184. br.Msg = "请登录"
  185. br.ErrMsg = "请登录,SysUser Is Empty"
  186. br.Ret = 408
  187. return
  188. }
  189. item, e := models.GetBusinessConf()
  190. if e != nil && e.Error() != utils.ErrNoRow() {
  191. br.Msg = "保存失败"
  192. br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
  193. return
  194. }
  195. res := new(models.BusinessConfItem)
  196. res.CnPptCoverImgs = make([]string, 0)
  197. res.EnPptCoverImgs = make([]string, 0)
  198. if item != nil {
  199. res.CompanyName = item.CompanyName
  200. res.CompanyWatermark = item.CompanyWatermark
  201. res.WatermarkChart = item.WatermarkChart
  202. res.CnPptCoverImgs = strings.Split(item.CnPptCoverImgs, ",")
  203. res.CnPptBackgroundImg = item.CnPptBackgroundImg
  204. res.CnPptBottomImg = item.CnPptBottomImg
  205. res.Disclaimer = html.UnescapeString(item.Disclaimer)
  206. res.EnPptCoverImgs = strings.Split(item.EnPptCoverImgs, ",")
  207. res.EnPptBackgroundImg = item.EnPptBackgroundImg
  208. res.EnPptBottomImg = item.EnPptBottomImg
  209. res.UseXf = item.UseXf
  210. res.XfAppid = item.XfAppid
  211. res.XfApiKey = item.XfApiKey
  212. res.XfApiSecret = item.XfApiSecret
  213. res.XfVcn = item.XfVcn
  214. }
  215. br.Data = res
  216. br.Ret = 200
  217. br.Success = true
  218. br.Msg = "获取成功"
  219. }