customer.go 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. package cust
  2. import (
  3. "context"
  4. "dashoo.cn/common_definition/comm_def"
  5. "dashoo.cn/opms_libary/myerrors"
  6. "github.com/gogf/gf/frame/g"
  7. "github.com/gogf/gf/util/gvalid"
  8. model "dashoo.cn/micro/app/model/cust"
  9. server "dashoo.cn/micro/app/service/cust"
  10. )
  11. type CustomerHeader struct{}
  12. var isPublic, noPublic = "10", "20" // 公海,非公海
  13. var noCustomer = true // 区分公海列表 和 客户列表 true 公海
  14. //GetList 客户列表
  15. func (c *CustomerHeader) GetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error {
  16. customerServer, err := server.NewCustomerService(ctx)
  17. if err != nil {
  18. return err
  19. }
  20. total, list, err := customerServer.GetList(req)
  21. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  22. if err != nil {
  23. return err
  24. }
  25. rsp.Data = g.Map{"list": list, "total": total}
  26. return nil
  27. }
  28. //PublicGetList 公海列表
  29. func (c *CustomerHeader) PublicGetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error {
  30. customerServer, err := server.NewCustomerService(ctx)
  31. if err != nil {
  32. return err
  33. }
  34. req.IsPublic = noCustomer
  35. total, list, err := customerServer.GetList(req)
  36. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  37. if err != nil {
  38. return err
  39. }
  40. rsp.Data = g.Map{"list": list, "total": total}
  41. return nil
  42. }
  43. //Create 创建客户
  44. func (c *CustomerHeader) Create(ctx context.Context, req *model.CustomerAddSeq, rsp *comm_def.CommonMsg) error {
  45. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  46. return err
  47. }
  48. s, err := server.NewCustomerService(ctx)
  49. if err != nil {
  50. return err
  51. }
  52. id, err := s.Create(req)
  53. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  54. if err != nil {
  55. return err
  56. }
  57. s.CreateDynamics("创建客户", req, id)
  58. rsp.Data = g.Map{"lastId": id}
  59. return nil
  60. }
  61. //UpdateById 修改客户
  62. func (c *CustomerHeader) UpdateById(ctx context.Context, req *model.UpdateCustomer, rsp *comm_def.CommonMsg) error {
  63. s, err := server.NewCustomerService(ctx)
  64. if err != nil {
  65. return err
  66. }
  67. err = s.UpdateById(req)
  68. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  69. if err != nil {
  70. return err
  71. }
  72. s.CreateDynamics("编辑客户", req, req.Id)
  73. return nil
  74. }
  75. //GetEntityById 客户详情
  76. func (c *CustomerHeader) GetEntityById(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
  77. if len(req.Ids) == 0 {
  78. return myerrors.NewMsgError(nil, "参数有误")
  79. }
  80. customerServer, err := server.NewCustomerService(ctx)
  81. if err != nil {
  82. return err
  83. }
  84. list, err := customerServer.GetEntityById(req.Ids)
  85. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  86. if err != nil {
  87. return err
  88. }
  89. rsp.Data = g.Map{"list": list}
  90. return nil
  91. }
  92. //DeleteById 删除客户
  93. func (c *CustomerHeader) DeleteById(ctx context.Context, req *model.DelCustomer, rsp *comm_def.CommonMsg) error {
  94. if len(req.Ids) == 0 {
  95. return myerrors.NewMsgError(nil, "参数有误")
  96. }
  97. s, err := server.NewCustomerService(ctx)
  98. if err != nil {
  99. return err
  100. }
  101. err = s.DeleteByIds(req.Ids)
  102. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  103. if err != nil {
  104. return err
  105. }
  106. //删除客户
  107. s.CreateDynamics("删除客户", req, req.Ids...)
  108. return nil
  109. }
  110. //GetCustNameIsExist 判断客户名称是否存在 bool
  111. func (c *CustomerHeader) GetCustNameIsExist(ctx context.Context, req *model.IsExistsCustName, rsp *comm_def.CommonMsg) error {
  112. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  113. return err
  114. }
  115. customerServer, err := server.NewCustomerService(ctx)
  116. if err != nil {
  117. return err
  118. }
  119. exist, err := customerServer.GetCustNameIsExist(req)
  120. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  121. if err != nil {
  122. return err
  123. }
  124. rsp.Data = g.Map{"list": exist}
  125. return nil
  126. }
  127. //TransCustomer 转移客户
  128. func (c *CustomerHeader) TransCustomer(ctx context.Context, req *model.AssignCustomerReq, rsp *comm_def.CommonMsg) error {
  129. if len(req.Ids) == 0 || req.SalesId == 0 {
  130. return myerrors.NewMsgError(nil, "参数有误")
  131. }
  132. s, err := server.NewCustomerService(ctx)
  133. if err != nil {
  134. return err
  135. }
  136. err = s.TransCustomer(req)
  137. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  138. if err != nil {
  139. return err
  140. }
  141. //转移客户
  142. s.CreateDynamics("转移客户", req, req.Ids...)
  143. return nil
  144. }
  145. //AssignCustomer 分配,领取客户
  146. func (c *CustomerHeader) AssignCustomer(ctx context.Context, req *model.AssignCustomerReq, rsp *comm_def.CommonMsg) error {
  147. if len(req.Ids) == 0 || req.SalesId == 0 {
  148. return myerrors.NewMsgError(nil, "参数有误")
  149. }
  150. s, err := server.NewCustomerService(ctx)
  151. if err != nil {
  152. return err
  153. }
  154. var behavior string
  155. if req.Receive == "" {
  156. behavior = "分配客户"
  157. } else {
  158. behavior = "领取"
  159. }
  160. err = s.AssignCustomer(req)
  161. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  162. if err != nil {
  163. return err
  164. }
  165. s.CreateDynamics(behavior, req, req.Ids...)
  166. return nil
  167. }
  168. //MoveToPubic 移入公海
  169. func (c *CustomerHeader) MoveToPubic(ctx context.Context, req *model.MoveToPubicRep, rsp *comm_def.CommonMsg) error {
  170. if len(req.Ids) == 0 {
  171. return myerrors.NewMsgError(nil, "参数有误")
  172. }
  173. s, err := server.NewCustomerService(ctx)
  174. if err != nil {
  175. return err
  176. }
  177. err = s.MoveToPubic(req.Ids)
  178. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  179. if err != nil {
  180. return err
  181. }
  182. if req.Remark == "" {
  183. req.Remark = ""
  184. }
  185. s.CreateDynamics("移入公海", req, req.Ids...)
  186. return nil
  187. }
  188. //GetDynamicsList 客户动态
  189. func (c *CustomerHeader) GetDynamicsList(ctx context.Context, req *model.CustomerDynameicsReq, rsp *comm_def.CommonMsg) error {
  190. customerServer, err := server.NewCustomerService(ctx)
  191. if err != nil {
  192. return err
  193. }
  194. total, list, err := customerServer.GetDynamicsList(req)
  195. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  196. if err != nil {
  197. return err
  198. }
  199. rsp.Data = g.Map{"list": list, "total": total}
  200. return nil
  201. }
  202. //MergeCustomer 合并客户
  203. func (c *CustomerHeader) MergeCustomer(ctx context.Context, req *model.MergeCustomerRep, rsp *comm_def.CommonMsg) error {
  204. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  205. return err
  206. }
  207. s, err := server.NewCustomerService(ctx)
  208. if err != nil {
  209. return err
  210. }
  211. err = s.MergeCustomer(req)
  212. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  213. if err != nil {
  214. return err
  215. }
  216. s.CreateDynamics("合并客户", req, req.Id)
  217. return nil
  218. }
  219. //GetCustAbstract 客户摘要
  220. func (c *CustomerHeader) GetCustAbstract(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
  221. if req.Id == 0 {
  222. return myerrors.NewMsgError(nil, "参数有误")
  223. }
  224. customerServer, err := server.NewCustomerService(ctx)
  225. if err != nil {
  226. return err
  227. }
  228. list, err := customerServer.CustAbstract(req.Id)
  229. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  230. if err != nil {
  231. return err
  232. }
  233. rsp.Data = g.Map{"list": list}
  234. return nil
  235. }
  236. //Export 导出
  237. func (c *CustomerHeader) Export(ctx context.Context, req *model.CustCustomerExport, rsp *comm_def.CommonMsg) error {
  238. customerServer, err := server.NewCustomerService(ctx)
  239. if err != nil {
  240. return err
  241. } //Export
  242. buffer, err := customerServer.Export(req)
  243. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  244. if err != nil {
  245. return err
  246. }
  247. rsp.Data = g.Map{"list": buffer}
  248. return nil
  249. }