customer.go 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  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. )
  26. //公海列表
  27. func (c *CustomerHeader) PublicGetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error {
  28. customerServer, err := server.NewCustomerService(ctx)
  29. if err != nil {
  30. g.Log().Error(err)
  31. return err
  32. }
  33. req.IsPublic = noCustomer
  34. g.Log().Info("publicGetlist", req)
  35. total, list, err := customerServer.GetList(req)
  36. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  37. if err != nil {
  38. g.Log().Error(err)
  39. return err
  40. }
  41. rsp.Data = g.Map{"list": list, "total": total}
  42. return nil
  43. }
  44. //客户列表
  45. func (c *CustomerHeader) GetList(ctx context.Context, req *model.CustCustomerSearchReq, rsp *comm_def.CommonMsg) error {
  46. customerServer, err := server.NewCustomerService(ctx)
  47. if err != nil {
  48. g.Log().Error(err)
  49. return err
  50. }
  51. total, list, err := customerServer.GetList(req)
  52. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  53. if err != nil {
  54. g.Log().Error(err)
  55. return err
  56. }
  57. rsp.Data = g.Map{"list": list, "total": total}
  58. return nil
  59. }
  60. //创建客户
  61. func (c *CustomerHeader) Create(ctx context.Context, req *model.Customer, rsp *comm_def.CommonMsg) error {
  62. g.Log().Info("客户名称", req.CustName)
  63. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  64. return err
  65. }
  66. customerServer, err := server.NewCustomerService(ctx)
  67. if err != nil {
  68. g.Log().Error(err)
  69. return err
  70. }
  71. id, err := customerServer.Create(req)
  72. var Ids []int64
  73. Ids = append(Ids, gconv.Int64(id))
  74. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  75. if err != nil {
  76. g.Log().Error(err)
  77. return err
  78. }
  79. //创建客户
  80. c.WriteCustLog(ctx, Creates, Ids, req)
  81. rsp.Data = g.Map{"lastId": id}
  82. return nil
  83. }
  84. //客户详情
  85. func (c *CustomerHeader) GetEntityById(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
  86. if len(req.Ids) == 0 {
  87. return gerror.New("参数有误!")
  88. }
  89. customerServer, err := server.NewCustomerService(ctx)
  90. if err != nil {
  91. g.Log().Error(err)
  92. return gerror.New("系统异常,请重新尝试")
  93. }
  94. list, err := customerServer.GetEntityById(req.Ids)
  95. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  96. if err != nil {
  97. g.Log().Error(err)
  98. return err
  99. }
  100. rsp.Data = g.Map{"list": list}
  101. return nil
  102. }
  103. //转移客户
  104. func (c *CustomerHeader) UpdateBytransfer(ctx context.Context, req *model.CustSalesReq, rsp *comm_def.CommonMsg) error {
  105. if len(req.Ids) == 0 || req.SalesIds == 0 {
  106. return gerror.New("参数有误!")
  107. }
  108. customerServer, err := server.NewCustomerService(ctx)
  109. if err != nil {
  110. g.Log().Error(err)
  111. return gerror.New("系统异常,请重新尝试")
  112. }
  113. _, err = customerServer.UpdateBytransfer(req)
  114. var Ids []int64
  115. Ids = append(Ids, gconv.Int64(req.Ids))
  116. //转移客户
  117. c.WriteCustLog(ctx, UpdateBytransfer, Ids, req)
  118. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  119. if err != nil {
  120. g.Log().Error(err)
  121. return err
  122. }
  123. return nil
  124. }
  125. //分配客户
  126. func (c *CustomerHeader) DistriCustomer(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. g.Log().Error(err)
  133. return gerror.New("系统异常,请重新尝试")
  134. }
  135. err = customerServer.DistriCustomer(req)
  136. c.WriteCustLog(ctx, DistriCustomer, req.Ids, req)
  137. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  138. if err != nil {
  139. g.Log().Error(err)
  140. return err
  141. }
  142. return nil
  143. }
  144. //删除客户
  145. func (c *CustomerHeader) DeleteById(ctx context.Context, req *model.DelCustomer, rsp *comm_def.CommonMsg) error {
  146. if req.Id == 0 {
  147. return gerror.New("参数有误!")
  148. }
  149. customerServer, err := server.NewCustomerService(ctx)
  150. if err != nil {
  151. g.Log().Error(err)
  152. return gerror.New("系统异常,请重新尝试")
  153. }
  154. err = customerServer.DeleteById(req.Id)
  155. var Ids []int64
  156. Ids = append(Ids, gconv.Int64(req.Id))
  157. //删除客户
  158. c.WriteCustLog(ctx, DeleteById, Ids, req)
  159. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  160. if err != nil {
  161. g.Log().Error(err)
  162. return err
  163. }
  164. return nil
  165. }
  166. //移入公海
  167. func (c *CustomerHeader) MoveToPubic(ctx context.Context, req *model.MoveToPubicRep, rsp *comm_def.CommonMsg) error {
  168. if len(req.Ids) == 0 {
  169. return gerror.New("参数有误!")
  170. }
  171. customerServer, err := server.NewCustomerService(ctx)
  172. if err != nil {
  173. g.Log().Error(err)
  174. return gerror.New("系统异常,请重新尝试")
  175. }
  176. err = customerServer.MoveToPubic(req.Ids)
  177. if req.Remark == "" {
  178. req.Remark = ""
  179. }
  180. c.WriteCustLog(ctx, MoveToPubic, req.Ids, req)
  181. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  182. if err != nil {
  183. g.Log().Error(err)
  184. return err
  185. }
  186. return nil
  187. }
  188. //客户动态
  189. func (c *CustomerHeader) DynamicsList(ctx context.Context, req *model.CustomerDynameicsReq, rsp *comm_def.CommonMsg) error {
  190. customerServer, err := server.NewCustomerService(ctx)
  191. if err != nil {
  192. g.Log().Error(err)
  193. return err
  194. }
  195. total, list, err := customerServer.DynamicsList(req)
  196. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  197. if err != nil {
  198. g.Log().Error(err)
  199. return err
  200. }
  201. rsp.Data = g.Map{"list": list, "total": total}
  202. return nil
  203. }
  204. //合并客户
  205. func (c *CustomerHeader) Mergecustomer(ctx context.Context, req *model.MergecustomerRep, rsp *comm_def.CommonMsg) error {
  206. customerServer, err := server.NewCustomerService(ctx)
  207. if err != nil {
  208. g.Log().Error(err)
  209. return err
  210. }
  211. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  212. return err
  213. }
  214. err = customerServer.Mergecustomer(req)
  215. var Ids []int64
  216. Ids = append(Ids, gconv.Int64(req.Id))
  217. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  218. if err != nil {
  219. g.Log().Error(err)
  220. return err
  221. }
  222. c.WriteCustLog(ctx, Mergecustomer, Ids, req)
  223. return nil
  224. }
  225. //修改客户
  226. func (c *CustomerHeader) UpdateById(ctx context.Context, req *model.UpdateCustomer, rsp *comm_def.CommonMsg) error {
  227. customerServer, err := server.NewCustomerService(ctx)
  228. if err != nil {
  229. g.Log().Error(err)
  230. return gerror.New("系统异常,请重新尝试")
  231. }
  232. err = customerServer.UpdateById(req)
  233. var Ids []int64
  234. Ids = append(Ids, gconv.Int64(req.Id))
  235. c.WriteCustLog(ctx, UpdateById, Ids, req)
  236. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  237. if err != nil {
  238. g.Log().Error(err)
  239. return err
  240. }
  241. return nil
  242. }
  243. //操作日志
  244. func (c *CustomerHeader) WriteCustLog(ctx context.Context, custType string, custId []int64, req interface{}) {
  245. CustomerService, _ := server.NewCustomerService(ctx)
  246. custDynameics := new(model.AddCustomerDynameicsReq)
  247. custDynameics.OpnDate = gtime.Now()
  248. custDynameics.OpnType = custType
  249. custDynameics.OpnContent = req
  250. CustomerService.OperationLog(ctx, custId, custDynameics)
  251. }