customer.go 8.8 KB

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