customer.go 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  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/errors/gerror"
  7. "github.com/gogf/gf/frame/g"
  8. "github.com/gogf/gf/os/gtime"
  9. "github.com/gogf/gf/util/gconv"
  10. "github.com/gogf/gf/util/gvalid"
  11. model "dashoo.cn/micro/app/model/cust"
  12. server "dashoo.cn/micro/app/service/cust"
  13. )
  14. type CustomerHeader struct{}
  15. var isPublic, noPublic = "10", "20" // 公海,非公海
  16. var noCustomer = true // 区分公海列表 和 客户列表 true 公海
  17. const (
  18. Creates = "创建客户"
  19. UpdateBytransfer = "转移客户"
  20. DistriCustomer = "分配客户"
  21. DeleteById = "删除客户"
  22. MoveToPubic = "移入公海"
  23. Mergecustomer = "合并客户"
  24. UpdateById = "修改客户"
  25. Receive = "领取"
  26. )
  27. //创建客户
  28. func (c *CustomerHeader) Create(ctx context.Context, req *model.CustomerAddSeq, rsp *comm_def.CommonMsg) error {
  29. g.Log().Info("客户名称", req.CustName)
  30. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  31. return err
  32. }
  33. customerServer, err := server.NewCustomerService(ctx)
  34. if err != nil {
  35. g.Log().Error(err)
  36. return err
  37. }
  38. id, err := customerServer.Create(req)
  39. var Ids []int64
  40. Ids = append(Ids, gconv.Int64(id))
  41. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  42. if err != nil {
  43. g.Log().Error(err)
  44. return err
  45. }
  46. //创建客户
  47. c.WriteCustLog(ctx, Creates, Ids, req)
  48. rsp.Data = g.Map{"lastId": id}
  49. return nil
  50. }
  51. //客户详情
  52. func (c *CustomerHeader) GetEntityById(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
  53. if len(req.Ids) == 0 {
  54. return gerror.New("参数有误!")
  55. }
  56. customerServer, err := server.NewCustomerService(ctx)
  57. if err != nil {
  58. return myerrors.New("系统异常,请重新尝试", err)
  59. }
  60. list, err := customerServer.GetEntityById(req.Ids)
  61. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  62. if err != nil {
  63. g.Log().Error(err)
  64. return err
  65. }
  66. rsp.Data = g.Map{"list": list}
  67. return nil
  68. }
  69. //删除客户
  70. func (c *CustomerHeader) DeleteById(ctx context.Context, req *model.DelCustomer, rsp *comm_def.CommonMsg) error {
  71. if req.Id == 0 {
  72. return gerror.New("参数有误!")
  73. }
  74. customerServer, err := server.NewCustomerService(ctx)
  75. if err != nil {
  76. g.Log().Error(err)
  77. return myerrors.New("系统异常,请重新尝试", err)
  78. }
  79. err = customerServer.DeleteById(req.Id)
  80. var Ids []int64
  81. Ids = append(Ids, gconv.Int64(req.Id))
  82. //删除客户
  83. c.WriteCustLog(ctx, DeleteById, Ids, req)
  84. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  85. if err != nil {
  86. g.Log().Error(err)
  87. return err
  88. }
  89. return nil
  90. }
  91. //公海列表
  92. func (c *CustomerHeader) PublicGetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error {
  93. customerServer, err := server.NewCustomerService(ctx)
  94. if err != nil {
  95. g.Log().Error(err)
  96. return err
  97. }
  98. req.IsPublic = noCustomer
  99. g.Log().Info("publicGetlist", req)
  100. total, list, err := customerServer.GetList(req)
  101. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  102. if err != nil {
  103. g.Log().Error(err)
  104. return err
  105. }
  106. rsp.Data = g.Map{"list": list, "total": total}
  107. return nil
  108. }
  109. //客户列表
  110. func (c *CustomerHeader) GetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error {
  111. customerServer, err := server.NewCustomerService(ctx)
  112. if err != nil {
  113. g.Log().Error(err)
  114. return err
  115. }
  116. total, list, err := customerServer.GetList(req)
  117. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  118. if err != nil {
  119. g.Log().Error(err)
  120. return err
  121. }
  122. rsp.Data = g.Map{"list": list, "total": total}
  123. return nil
  124. }
  125. //转移客户
  126. func (c *CustomerHeader) UpdateBytransfer(ctx context.Context, req *model.DistriCustomer, rsp *comm_def.CommonMsg) error {
  127. if len(req.Ids) == 0 || req.SalesId == 0 {
  128. return gerror.New("参数有误!")
  129. }
  130. customerServer, err := server.NewCustomerService(ctx)
  131. if err != nil {
  132. return myerrors.New("系统异常,请重新尝试", err)
  133. }
  134. err = customerServer.UpdateBytransfer(req)
  135. if err != nil {
  136. return gerror.New("转移失败")
  137. }
  138. var Ids []int64
  139. Ids = append(Ids, gconv.Int64(req.Ids))
  140. //转移客户
  141. c.WriteCustLog(ctx, UpdateBytransfer, Ids, req)
  142. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  143. if err != nil {
  144. g.Log().Error(err)
  145. return err
  146. }
  147. return nil
  148. }
  149. //分配客户
  150. func (c *CustomerHeader) DistriCustomer(ctx context.Context, req *model.DistriCustomer, rsp *comm_def.CommonMsg) error {
  151. if len(req.Ids) == 0 || req.SalesId == 0 {
  152. return gerror.New("参数有误!")
  153. }
  154. customerServer, err := server.NewCustomerService(ctx)
  155. if err != nil {
  156. return myerrors.New("系统异常,请重新尝试", err)
  157. }
  158. err = customerServer.DistriCustomer(req)
  159. if err != nil {
  160. return err
  161. }
  162. var behavior string
  163. if req.Receive == "" {
  164. behavior = DistriCustomer
  165. } else {
  166. behavior = Receive
  167. }
  168. c.WriteCustLog(ctx, behavior, req.Ids, req)
  169. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  170. if err != nil {
  171. g.Log().Error(err)
  172. return err
  173. }
  174. return nil
  175. }
  176. //移入公海
  177. func (c *CustomerHeader) MoveToPubic(ctx context.Context, req *model.MoveToPubicRep, rsp *comm_def.CommonMsg) error {
  178. if len(req.Ids) == 0 {
  179. return gerror.New("参数有误!")
  180. }
  181. customerServer, err := server.NewCustomerService(ctx)
  182. if err != nil {
  183. return myerrors.New("系统异常,请重新尝试", err)
  184. }
  185. err = customerServer.MoveToPubic(req.Ids)
  186. if req.Remark == "" {
  187. req.Remark = ""
  188. }
  189. c.WriteCustLog(ctx, MoveToPubic, req.Ids, req)
  190. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  191. if err != nil {
  192. g.Log().Error(err)
  193. return err
  194. }
  195. return nil
  196. }
  197. //客户动态
  198. func (c *CustomerHeader) DynamicsList(ctx context.Context, req *model.CustomerDynameicsReq, rsp *comm_def.CommonMsg) error {
  199. customerServer, err := server.NewCustomerService(ctx)
  200. if err != nil {
  201. return myerrors.New("系统异常,请重新尝试", err)
  202. }
  203. total, list, err := customerServer.DynamicsList(req)
  204. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  205. if err != nil {
  206. return err
  207. }
  208. rsp.Data = g.Map{"list": list, "total": total}
  209. return nil
  210. }
  211. //合并客户
  212. func (c *CustomerHeader) Mergecustomer(ctx context.Context, req *model.MergecustomerRep, rsp *comm_def.CommonMsg) error {
  213. customerServer, err := server.NewCustomerService(ctx)
  214. if err != nil {
  215. return myerrors.New("系统异常,请重新尝试", err)
  216. }
  217. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  218. return err
  219. }
  220. err = customerServer.Mergecustomer(req)
  221. var Ids []int64
  222. Ids = append(Ids, gconv.Int64(req.Id))
  223. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  224. if err != nil {
  225. return err
  226. }
  227. c.WriteCustLog(ctx, Mergecustomer, Ids, req)
  228. return nil
  229. }
  230. //修改客户
  231. func (c *CustomerHeader) UpdateById(ctx context.Context, req *model.UpdateCustomer, rsp *comm_def.CommonMsg) error {
  232. customerServer, err := server.NewCustomerService(ctx)
  233. if err != nil {
  234. return myerrors.New("系统异常,请重新尝试", err)
  235. }
  236. err = customerServer.UpdateById(req)
  237. var Ids []int64
  238. Ids = append(Ids, gconv.Int64(req.Id))
  239. c.WriteCustLog(ctx, UpdateById, Ids, req)
  240. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  241. if err != nil {
  242. return err
  243. }
  244. return nil
  245. }
  246. //客户摘要
  247. func (c *CustomerHeader) CustAbstract(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
  248. if req.Id == 0 {
  249. return gerror.New("参数有误")
  250. }
  251. customerServer, err := server.NewCustomerService(ctx)
  252. if err != nil {
  253. g.Log().Error(err)
  254. return gerror.New("系统异常,请重新尝试")
  255. }
  256. list, err := customerServer.CustAbstract(req.Id)
  257. g.Log().Info("CustAbstract", list)
  258. rsp.Data = g.Map{"list": list}
  259. return nil
  260. }
  261. //操作日志
  262. func (c *CustomerHeader) WriteCustLog(ctx context.Context, custType string, custId []int64, req interface{}) {
  263. CustomerService, _ := server.NewCustomerService(ctx)
  264. custDynameics := new(model.AddCustomerDynameicsReq)
  265. custDynameics.OpnDate = gtime.Now()
  266. custDynameics.OpnType = custType
  267. custDynameics.OpnContent = req
  268. CustomerService.OperationLog(ctx, custId, custDynameics)
  269. }
  270. //导出
  271. func (c *CustomerHeader) DeriveList(ctx context.Context, req *model.CustCustomerExport, rsp *comm_def.CommonMsg) error {
  272. customerServer, err := server.NewCustomerService(ctx)
  273. if err != nil {
  274. g.Log().Error(err)
  275. return gerror.New("系统异常,请重新尝试")
  276. } //Export
  277. buffer, _ := customerServer.Export(req)
  278. rsp.Data = g.Map{"list": buffer}
  279. return nil
  280. }