customer.go 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. package controller
  2. import (
  3. "gas-cylinder-api/app/admin/model"
  4. "gas-cylinder-api/app/admin/service"
  5. "gas-cylinder-api/app/admin/service/dto"
  6. "gas-cylinder-api/common/actions"
  7. "gas-cylinder-api/common/global"
  8. "github.com/gin-gonic/gin"
  9. "github.com/gin-gonic/gin/binding"
  10. "gogs.baozhida.cn/zoie/OAuth-core/api"
  11. "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/user"
  12. _ "gogs.baozhida.cn/zoie/OAuth-core/pkg/response"
  13. )
  14. type CustomerController struct {
  15. api.Api
  16. }
  17. // GetPage 获取客户信息列表
  18. // @Summary 获取客户信息列表
  19. // @Description 获取客户信息列表
  20. // @Tags 客户信息
  21. // @Param name query string false "客户信息名称"
  22. // @Success 200 {object} response.Response{data=response.Page{list=[]model.Customer}} "{"code": 200, "data": [...]}"
  23. // @Router /api/customer [get]
  24. // @Security Bearer
  25. func (e CustomerController) GetPage(c *gin.Context) {
  26. s := service.Customer{}
  27. req := dto.CustomerGetPageReq{}
  28. err := e.MakeContext(c).
  29. MakeOrm().
  30. Bind(&req, binding.Query).
  31. MakeService(&s.Service).
  32. Errors
  33. if err != nil {
  34. e.Logger.Error(err)
  35. e.Error(500, err, err.Error())
  36. return
  37. }
  38. //数据权限检查
  39. p := actions.GetPermissionFromContext(c)
  40. list := make([]model.Customer, 0)
  41. var count int64
  42. err = s.GetPage(&req, &list, &count, p)
  43. if err != nil {
  44. e.Error(500, err, err.Error())
  45. return
  46. }
  47. e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
  48. }
  49. // Get 通过id获取客户信息
  50. // @Summary 通过id获取客户信息
  51. // @Description 通过id获取客户信息
  52. // @Tags 客户信息
  53. // @Param id path string true "客户信息id"
  54. // @Success 200 {object} response.Response{data=model.Customer} "{"code": 200, "data": [...]}"
  55. // @Router /api/customer/{id} [get]
  56. // @Security Bearer
  57. func (e CustomerController) Get(c *gin.Context) {
  58. s := service.Customer{}
  59. req := dto.CustomerGetReq{}
  60. err := e.MakeContext(c).
  61. MakeOrm().
  62. Bind(&req, nil).
  63. MakeService(&s.Service).
  64. Errors
  65. if err != nil {
  66. e.Logger.Error(err)
  67. e.Error(500, err, err.Error())
  68. return
  69. }
  70. var object model.Customer
  71. //数据权限检查
  72. err = s.Get(&req, &object)
  73. if err != nil {
  74. e.Error(500, err, err.Error())
  75. return
  76. }
  77. e.OK(object, "查询成功")
  78. }
  79. // GetByPhone 通过手机号获取客户信息
  80. // @Summary 通过手机号获取客户信息
  81. // @Description 通过手机号获取客户信息
  82. // @Tags 客户信息
  83. // @Param phone query string true "手机号"
  84. // @Success 200 {object} response.Response{data=model.Customer} "{"code": 200, "data": [...]}"
  85. // @Router /api/customer/phone [get]
  86. // @Security Bearer
  87. func (e CustomerController) GetByPhone(c *gin.Context) {
  88. s := service.Customer{}
  89. req := dto.CustomerGetByPhoneReq{}
  90. err := e.MakeContext(c).
  91. MakeOrm().
  92. Bind(&req, binding.Query).
  93. MakeService(&s.Service).
  94. Errors
  95. if err != nil {
  96. e.Logger.Error(err)
  97. e.Error(500, err, err.Error())
  98. return
  99. }
  100. var object model.Customer
  101. p := actions.GetPermissionFromContext(c)
  102. //数据权限检查
  103. err = s.GetByPhone(&req, &object, p)
  104. if err != nil {
  105. if err == global.GetNotFoundErr {
  106. e.Error(404, err, err.Error())
  107. return
  108. } else {
  109. e.Error(500, err, err.Error())
  110. return
  111. }
  112. }
  113. e.OK(object, "查询成功")
  114. }
  115. // Insert 添加客户信息
  116. // @Summary 添加客户信息
  117. // @Description 添加客户信息
  118. // @Tags 客户信息
  119. // @Accept application/json
  120. // @Product application/json
  121. // @Param data body dto.CustomerInsertReq true "data"
  122. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  123. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  124. // @Router /api/customer [post]
  125. // @Security Bearer
  126. func (e CustomerController) Insert(c *gin.Context) {
  127. s := service.Customer{}
  128. req := dto.CustomerInsertReq{}
  129. err := e.MakeContext(c).
  130. MakeOrm().
  131. Bind(&req, binding.JSON).
  132. MakeService(&s.Service).
  133. Errors
  134. if err != nil {
  135. e.Logger.Error(err)
  136. e.Error(500, err, err.Error())
  137. return
  138. }
  139. p := actions.GetPermissionFromContext(c)
  140. // 获取销售门店code
  141. store, err := model.GetProvCode(p.DeptId)
  142. if err != nil {
  143. e.Logger.Error(err)
  144. e.Error(500, err, err.Error())
  145. return
  146. }
  147. // 设置创建人
  148. req.SetCreateBy(user.GetUserId(c))
  149. req.SetDeptId(p.DeptId)
  150. req.SetStoreCode(store.CmpCode)
  151. err = s.Insert(&req)
  152. if err != nil {
  153. e.Error(500, err, err.Error())
  154. return
  155. }
  156. e.OK(req.GetId(), "创建成功")
  157. }
  158. // Update 修改客户信息
  159. // @Summary 修改客户信息
  160. // @Description 修改客户信息
  161. // @Tags 客户信息
  162. // @Accept application/json
  163. // @Product application/json
  164. // @Param id path string true "客户信息id"
  165. // @Param data body dto.CustomerUpdateReq true "body"
  166. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  167. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  168. // @Router /api/customer [put]
  169. // @Security Bearer
  170. func (e CustomerController) Update(c *gin.Context) {
  171. s := service.Customer{}
  172. req := dto.CustomerUpdateReq{}
  173. err := e.MakeContext(c).
  174. MakeOrm().
  175. Bind(&req).
  176. MakeService(&s.Service).
  177. Errors
  178. if err != nil {
  179. e.Logger.Error(err)
  180. e.Error(500, err, err.Error())
  181. return
  182. }
  183. p := actions.GetPermissionFromContext(c)
  184. req.SetUpdateBy(user.GetUserId(c))
  185. err = s.Update(&req, p)
  186. if err != nil {
  187. e.Error(500, err, err.Error())
  188. return
  189. }
  190. e.OK(req.GetId(), "更新成功")
  191. }
  192. // Delete 删除客户信息
  193. // @Summary 删除客户信息
  194. // @Description 删除客户信息
  195. // @Tags 客户信息
  196. // @Accept application/json
  197. // @Product application/json
  198. // @Param data body dto.CustomerDeleteReq true "body"
  199. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  200. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  201. // @Router /api/customer [delete]
  202. // @Security Bearer
  203. func (e CustomerController) Delete(c *gin.Context) {
  204. s := service.Customer{}
  205. req := dto.CustomerDeleteReq{}
  206. userSvc := service.SysUser{}
  207. err := e.MakeContext(c).
  208. MakeOrm().
  209. Bind(&req, binding.JSON, nil).
  210. MakeService(&s.Service).
  211. MakeService(&userSvc.Service).
  212. Errors
  213. if err != nil {
  214. e.Logger.Error(err)
  215. e.Error(500, err, err.Error())
  216. return
  217. }
  218. //数据权限检查
  219. p := actions.GetPermissionFromContext(c)
  220. err = s.Remove(&req, p)
  221. if err != nil {
  222. e.Error(500, err, err.Error())
  223. return
  224. }
  225. e.OK(req.GetId(), "删除成功")
  226. }
  227. // InsertOrUpdate 添加客户或更新信息
  228. // @Summary 添加客户或更新信息
  229. // @Description 添加客户或更新信息
  230. // @Tags 客户信息
  231. // @Accept application/json
  232. // @Product application/json
  233. // @Param data body dto.CustomerInsertReq true "data"
  234. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  235. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  236. // @Router /api/customer [post]
  237. // @Security Bearer
  238. func (e CustomerController) InsertOrUpdate(c *gin.Context) {
  239. s := service.Customer{}
  240. req := dto.CustomerInsertReq{}
  241. err := e.MakeContext(c).
  242. MakeOrm().
  243. Bind(&req, binding.JSON).
  244. MakeService(&s.Service).
  245. Errors
  246. if err != nil {
  247. e.Logger.Error(err)
  248. e.Error(500, err, err.Error())
  249. return
  250. }
  251. p := actions.GetPermissionFromContext(c)
  252. // 获取销售门店code
  253. store, err := model.GetProvCode(p.DeptId)
  254. if err != nil {
  255. e.Logger.Error(err)
  256. e.Error(500, err, err.Error())
  257. return
  258. }
  259. // 设置创建人
  260. req.SetCreateBy(user.GetUserId(c))
  261. req.SetDeptId(p.DeptId)
  262. req.SetStoreCode(store.CmpCode)
  263. // 通过手机号查询客户信息
  264. err = s.InsertOrUpdate(&req, p)
  265. if err != nil {
  266. e.Error(500, err, err.Error())
  267. return
  268. }
  269. e.OK(req.GetId(), "提交成功")
  270. }
  271. // GetBorrowGasCylinder 获取在用气瓶
  272. // @Summary 获取在用气瓶
  273. // @Description 获取在用气瓶
  274. // @Tags 客户信息
  275. // @Param phone query string true "手机号"
  276. // @Success 200 {object} response.Response{data=model.Customer} "{"code": 200, "data": [...]}"
  277. // @Router /api/customer/phone [get]
  278. // @Security Bearer
  279. func (e CustomerController) GetBorrowGasCylinder(c *gin.Context) {
  280. s := service.Customer{}
  281. req := dto.CustomerGetBorrowGasCylinderReq{}
  282. err := e.MakeContext(c).
  283. MakeOrm().
  284. Bind(&req, binding.Query).
  285. MakeService(&s.Service).
  286. Errors
  287. if err != nil {
  288. e.Logger.Error(err)
  289. e.Error(500, err, err.Error())
  290. return
  291. }
  292. list := make([]model.CustomerGasCylinder, 0)
  293. //数据权限检查
  294. err = s.GetBorrowGasCylinder(&req, &list)
  295. if err != nil {
  296. if err == global.GetNotFoundErr {
  297. e.Error(404, err, err.Error())
  298. return
  299. } else {
  300. e.Error(500, err, err.Error())
  301. return
  302. }
  303. }
  304. e.PageOK(list, 0, 0, 0, "查询成功")
  305. }