elec.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. package elec
  2. import (
  3. "context"
  4. "time"
  5. model "go-common/app/interface/main/creative/model/elec"
  6. account "go-common/app/service/main/account/model"
  7. "go-common/app/service/main/archive/api"
  8. "go-common/library/log"
  9. )
  10. const (
  11. ftime = "2006-01-02"
  12. )
  13. // UserInfo get user elec info.
  14. func (s *Service) UserInfo(c context.Context, mid int64, ip string) (data *model.UserInfo, err error) {
  15. if data, err = s.elec.UserInfo(c, mid, ip); err != nil {
  16. log.Error("s.elec.UserInfo(%d) error(%v)", mid, err)
  17. }
  18. return
  19. }
  20. // UserUpdate user join or exit elec.
  21. func (s *Service) UserUpdate(c context.Context, mid int64, st int8, ip string) (data *model.UserInfo, err error) {
  22. if data, err = s.elec.UserUpdate(c, mid, st, ip); err != nil {
  23. log.Error("s.elec.UserUpdate(%d) error(%v)", mid, err)
  24. }
  25. return
  26. }
  27. // ArcUpdate arc open or close elec.
  28. func (s *Service) ArcUpdate(c context.Context, mid, aid int64, st int8, ip string) (err error) {
  29. if err = s.elec.ArcUpdate(c, mid, aid, st, ip); err != nil {
  30. log.Error("s.elec.ArcInfo(%d,%d) error(%v)", mid, aid, err)
  31. }
  32. return
  33. }
  34. // Notify get up-to-date notice.
  35. func (s *Service) Notify(c context.Context, ip string) (data *model.Notify, err error) {
  36. if data, err = s.elec.Notify(c, ip); err != nil {
  37. log.Error("s.elec.Notify error(%v)", err)
  38. }
  39. return
  40. }
  41. // Status get elec setting status.
  42. func (s *Service) Status(c context.Context, mid int64, ip string) (data *model.Status, err error) {
  43. if data, err = s.elec.Status(c, mid, ip); err != nil {
  44. log.Error("s.elec.Status error(%d, %v)", mid, err)
  45. }
  46. return
  47. }
  48. // UpStatus update elec setting status.
  49. func (s *Service) UpStatus(c context.Context, mid int64, spday int, ip string) (err error) {
  50. if err = s.elec.UpStatus(c, mid, spday, ip); err != nil {
  51. log.Error("s.elec.UpStatus(%d) error(%v)", mid, err)
  52. }
  53. return
  54. }
  55. // RecentRank recent rank.
  56. func (s *Service) RecentRank(c context.Context, mid, size int64, ip string) (data []*model.Rank, err error) {
  57. if data, err = s.elec.RecentRank(c, mid, size, ip); err != nil {
  58. log.Error("s.elec.RecentRank error(%d, %v)", mid, err)
  59. }
  60. if len(data) == 0 {
  61. log.Error("s.elec.TotalRank (%d, %v)", mid, data)
  62. return
  63. }
  64. //data, _ = s.CheckIsFriend(c, data, mid, ip)
  65. return
  66. }
  67. // CurrentRank current rank.
  68. func (s *Service) CurrentRank(c context.Context, mid int64, ip string) (data []*model.Rank, err error) {
  69. if data, err = s.elec.CurrentRank(c, mid, ip); err != nil {
  70. log.Error("s.elec.CurrentRank error(%d, %v)", mid, err)
  71. }
  72. if len(data) == 0 {
  73. log.Error("s.elec.TotalRank (%d, %v)", mid, data)
  74. return
  75. }
  76. //data, _ = s.CheckIsFriend(c, data, mid, ip)
  77. return
  78. }
  79. // TotalRank total rank.
  80. func (s *Service) TotalRank(c context.Context, mid int64, ip string) (data []*model.Rank, err error) {
  81. if data, err = s.elec.TotalRank(c, mid, ip); err != nil {
  82. log.Error("s.elec.TotalRank error(%d, %v)", mid, err)
  83. return
  84. }
  85. if len(data) == 0 {
  86. log.Error("s.elec.TotalRank (%d, %v)", mid, data)
  87. return
  88. }
  89. //data, _ = s.CheckIsFriend(c, data, mid, ip)
  90. return
  91. }
  92. // DailyBill daily settlement.
  93. func (s *Service) DailyBill(c context.Context, mid int64, pn, ps int, bg, end, ip string) (data *model.BillList, err error) {
  94. if bg == "" {
  95. bg = time.Now().Add(-7 * 24 * time.Hour).Format(ftime)
  96. }
  97. if end == "" {
  98. end = time.Now().Format(ftime)
  99. }
  100. if data, err = s.elec.DailyBill(c, mid, pn, ps, bg, end, ip); err != nil {
  101. log.Error("s.elec.DailyBill error(%d, %v)", mid, err)
  102. }
  103. return
  104. }
  105. // Balance get battery balance.
  106. func (s *Service) Balance(c context.Context, mid int64, ip string) (data *model.Balance, err error) {
  107. if data, err = s.elec.Balance(c, mid, ip); err != nil {
  108. log.Error("s.elec.Balance error(%d, %v)", mid, err)
  109. }
  110. return
  111. }
  112. // AppDailyBill daily settlement.
  113. func (s *Service) AppDailyBill(c context.Context, mid int64, pn, ps int, ip string) (cb *model.ChargeBill, err error) {
  114. var data *model.BillList
  115. bg := time.Now().Add(-24 * 30 * 12 * time.Hour).Format(ftime)
  116. end := time.Now().Format(ftime)
  117. if data, err = s.elec.DailyBill(c, mid, pn, ps, bg, end, ip); err != nil {
  118. log.Error("s.elec.DailyBill error(%d, %v)", mid, err)
  119. return
  120. }
  121. cb = &model.ChargeBill{}
  122. if data == nil {
  123. log.Error("s.elec.DailyBill mid(%d) data(%v)", mid, data)
  124. return
  125. }
  126. bls := make([]*model.Bill, 0, len(data.List))
  127. for _, v := range data.List {
  128. bl := &model.Bill{}
  129. bl.ID = v.ID
  130. bl.MID = v.MID
  131. bl.ChannelType = v.ChannelType
  132. bl.ChannelTyName = v.ChannelTyName
  133. bl.AddNum = v.AddNum
  134. bl.ReduceNum = v.ReduceNum
  135. bl.WalletBalance = v.WalletBalance
  136. bl.DateVersion = v.DateVersion
  137. bl.Remark = v.Remark
  138. bl.MonthBillResp = v.MonthBillResp
  139. t, _ := time.Parse(ftime, bl.DateVersion)
  140. bl.Weekday = model.Weekday(t)
  141. bls = append(bls, bl)
  142. }
  143. cb.List = bls
  144. cb.Pager.Current = data.Pn
  145. cb.Pager.Size = data.Ps
  146. cb.Pager.Total = data.TotalCount
  147. return
  148. }
  149. // RecentElec get recent charge info.
  150. func (s *Service) RecentElec(c context.Context, mid int64, pn, ps int, ip string) (l *model.RecentElecList, err error) {
  151. if l, err = s.elec.RecentElec(c, mid, pn, ps, ip); err != nil {
  152. log.Error("s.elec.RecentElec error(%d, %v)", mid, err)
  153. return
  154. }
  155. if l == nil || len(l.List) == 0 {
  156. return
  157. }
  158. var (
  159. mids, aids []int64
  160. a map[int64]*api.Arc
  161. u map[int64]*account.Info
  162. )
  163. for _, v := range l.List {
  164. mids = append(mids, v.MID)
  165. if v.AID > 0 {
  166. aids = append(aids, v.AID)
  167. }
  168. }
  169. if len(aids) > 0 {
  170. if a, err = s.arc.Archives(c, aids, ip); err != nil {
  171. log.Error("s.arc.Archives aids(%v), ip(%s) err(%v)", aids, ip, err)
  172. return
  173. }
  174. }
  175. if len(mids) > 0 {
  176. if u, err = s.acc.Infos(c, mids, ip); err != nil {
  177. log.Error("s.acc.Infos mids(%v), ip(%s) err(%v)", mids, ip, err)
  178. return
  179. }
  180. }
  181. els := make([]*model.RecentElec, 0, len(l.List))
  182. for _, v := range l.List {
  183. el := &model.RecentElec{}
  184. el.AID = v.AID
  185. el.MID = v.MID
  186. el.ElecNum = v.ElecNum
  187. el.Avatar = v.Avatar
  188. el.CTime = v.CTime
  189. if ui, ok := u[el.MID]; ok && ui != nil {
  190. el.Avatar = ui.Face
  191. el.Uname = ui.Name
  192. }
  193. if el.AID > 0 {
  194. if av, ok := a[el.AID]; ok && av != nil {
  195. el.Title = av.Title
  196. }
  197. }
  198. els = append(els, el)
  199. }
  200. l.List = els
  201. return
  202. }
  203. // RemarkList get remark list.
  204. func (s *Service) RemarkList(c context.Context, mid int64, pn, ps int, bg, end, ip string) (rms *model.RemarkList, err error) {
  205. if rms, err = s.elec.RemarkList(c, mid, pn, ps, bg, end, ip); err != nil {
  206. log.Error("s.elec.RemarkList error(%d, %v)", mid, err)
  207. }
  208. return
  209. }
  210. // RemarkDetail get remark detail.
  211. func (s *Service) RemarkDetail(c context.Context, mid, id int64, ip string) (rm *model.Remark, err error) {
  212. if rm, err = s.elec.RemarkDetail(c, mid, id, ip); err != nil {
  213. log.Error("s.elec.RemarkDetail error(%d, %d,%v)", mid, id, err)
  214. }
  215. return
  216. }
  217. // Remark reply a msg.
  218. func (s *Service) Remark(c context.Context, mid, id int64, msg, ak, ck, ip string) (status int, err error) {
  219. if status, err = s.elec.Remark(c, mid, id, msg, ak, ck, ip); err != nil {
  220. log.Error("s.elec.Remark error(%d, %d, %v)", mid, id, err)
  221. }
  222. return
  223. }