customer.go 8.5 KB

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