repair.go 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006
  1. package v1
  2. import (
  3. "git.getensh.com/common/gopkgs/logger"
  4. "git.getensh.com/common/gopkgs/tasker/httptasker"
  5. "git.getensh.com/common/gopkgs/util"
  6. "github.com/gin-gonic/gin"
  7. "go.uber.org/zap"
  8. "net/http"
  9. "property-system-gateway/errors"
  10. param_v1 "property-system-gateway/param/v1"
  11. "property-system-gateway/pb"
  12. "property-system-gateway/pb/v1"
  13. "property-system-gateway/utils"
  14. )
  15. //
  16. // @Summary 添加分类
  17. // @Description 添加分类
  18. // @Tags 报事报修
  19. // @Accept json
  20. // @Produce json
  21. // @Param token header string true "token"
  22. // @Param body body v1.RepairClassAddBody true "信息"
  23. // @Success 200 {object} v1.RepairClassAddResponse
  24. // @Failure 500 {object} base.HTTPError
  25. // @Router /api/v1/repair/class [post]
  26. func (c *Controller) RepairClassAdd(ctx *gin.Context) {
  27. // 解析参数
  28. req := &param_v1.RepairClassAddRequest{}
  29. parseParamTask := func() error {
  30. err := util.ShouldBind(ctx, &req.Header, nil, nil, &req.RepairClassAddBody)
  31. if err != nil {
  32. logger.Error("func",
  33. zap.String("call", "util.ShouldBind"),
  34. zap.String("error", err.Error()))
  35. return errors.ParamsError
  36. }
  37. return nil
  38. }
  39. // 业务处理
  40. handleServiceTask := func() error {
  41. tokenInfo, err := utils.GetSubjectValue(ctx)
  42. if err != nil {
  43. return err
  44. }
  45. // 响应数据
  46. resp := param_v1.RepairClassAddResponse{}
  47. rpcReq := &v1.RepairClassAddRequest{
  48. GardenId:tokenInfo.GardenId,
  49. Name:req.Name,
  50. Enable:req.Enable,
  51. Area:req.Area,
  52. }
  53. rpcRsp, err := pb.Garden.RepairClassAdd(ctx, rpcReq)
  54. if err != nil {
  55. s, _ := json.MarshalToString(req)
  56. logger.Error("func",
  57. zap.String("call", "pb.Garden.RepairClassAdd"),
  58. zap.String("params", s),
  59. zap.String("error", err.Error()))
  60. return errors.ErrorTransForm(err)
  61. }
  62. resp.Data = *rpcRsp
  63. ctx.JSON(http.StatusOK, resp)
  64. logReq := OperationLogRequest{
  65. Module:ModuleRepair,
  66. Action:ActionRepairClassAdd,
  67. Origin:nil,
  68. Target:req.RepairClassAddBody,
  69. UserName:tokenInfo.UserName,
  70. Uid:tokenInfo.Uid,
  71. Cid:tokenInfo.Cid,
  72. GardenId:tokenInfo.GardenId,
  73. }
  74. go OperationLogAdd(&logReq)
  75. return nil
  76. }
  77. // 执行任务
  78. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  79. }
  80. //
  81. // @Summary 修改分类
  82. // @Description 修改分类
  83. // @Tags 报事报修
  84. // @Accept json
  85. // @Produce json
  86. // @Param token header string true "token"
  87. // @Param body body v1.RepairClassUpdateBody true "信息"
  88. // @Success 200 {object} v1.RepairClassUpdateResponse
  89. // @Failure 500 {object} base.HTTPError
  90. // @Router /api/v1/repair/class [put]
  91. func (c *Controller) RepairClassUpdate(ctx *gin.Context) {
  92. // 解析参数
  93. req := &param_v1.RepairClassUpdateRequest{}
  94. parseParamTask := func() error {
  95. err := util.ShouldBind(ctx, &req.Header, nil, nil, &req.RepairClassUpdateBody)
  96. if err != nil {
  97. logger.Error("func",
  98. zap.String("call", "util.ShouldBind"),
  99. zap.String("error", err.Error()))
  100. return errors.ParamsError
  101. }
  102. return nil
  103. }
  104. // 业务处理
  105. handleServiceTask := func() error {
  106. tokenInfo, err := utils.GetSubjectValue(ctx)
  107. if err != nil {
  108. return err
  109. }
  110. // 响应数据
  111. resp := param_v1.RepairClassUpdateResponse{}
  112. rpcReq := &v1.RepairClassUpdateRequest{
  113. GardenId:tokenInfo.GardenId,
  114. Name:req.Name,
  115. Enable:req.Enable,
  116. Id:req.Id,
  117. Area:req.Area,
  118. }
  119. rpcRsp, err := pb.Garden.RepairClassUpdate(ctx, rpcReq)
  120. if err != nil {
  121. s, _ := json.MarshalToString(req)
  122. logger.Error("func",
  123. zap.String("call", "pb.Garden.RepairClassUpdate"),
  124. zap.String("params", s),
  125. zap.String("error", err.Error()))
  126. return errors.ErrorTransForm(err)
  127. }
  128. ctx.JSON(http.StatusOK, resp)
  129. logReq := OperationLogRequest{
  130. Module:ModuleRepair,
  131. Action:ActionRepairClassUpdate,
  132. Origin:rpcRsp.Origin,
  133. Target:req.RepairClassUpdateBody,
  134. UserName:tokenInfo.UserName,
  135. Uid:tokenInfo.Uid,
  136. Cid:tokenInfo.Cid,
  137. GardenId:tokenInfo.GardenId,
  138. }
  139. go OperationLogAdd(&logReq)
  140. return nil
  141. }
  142. // 执行任务
  143. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  144. }
  145. //
  146. // @Summary 删除分类
  147. // @Description 删除分类
  148. // @Tags 报事报修
  149. // @Accept json
  150. // @Produce json
  151. // @Param token header string true "token"
  152. // @Param id query int true " "
  153. // @Success 200 {object} v1.RepairClassDelResponse
  154. // @Failure 500 {object} base.HTTPError
  155. // @Router /api/v1/repair/class [delete]
  156. func (c *Controller) RepairClassDel(ctx *gin.Context) {
  157. // 解析参数
  158. req := &param_v1.RepairClassDelRequest{}
  159. parseParamTask := func() error {
  160. err := util.ShouldBind(ctx, &req.Header, nil, &req.RepairClassDelQuery, nil)
  161. if err != nil {
  162. logger.Error("func",
  163. zap.String("call", "util.ShouldBind"),
  164. zap.String("error", err.Error()))
  165. return errors.ParamsError
  166. }
  167. return nil
  168. }
  169. // 业务处理
  170. handleServiceTask := func() error {
  171. tokenInfo, err := utils.GetSubjectValue(ctx)
  172. if err != nil {
  173. return err
  174. }
  175. // 响应数据
  176. resp := param_v1.RepairClassDelResponse{}
  177. rpcReq := &v1.RepairClassDelRequest{
  178. GardenId:tokenInfo.GardenId,
  179. Id:req.Id,
  180. }
  181. rpcRsp, err := pb.Garden.RepairClassDel(ctx, rpcReq)
  182. if err != nil {
  183. s, _ := json.MarshalToString(req)
  184. logger.Error("func",
  185. zap.String("call", "pb.Garden.RepairClassDel"),
  186. zap.String("params", s),
  187. zap.String("error", err.Error()))
  188. return errors.ErrorTransForm(err)
  189. }
  190. ctx.JSON(http.StatusOK, resp)
  191. logReq := OperationLogRequest{
  192. Module:ModuleRepair,
  193. Action:ActionRepairClassDel,
  194. Origin:rpcRsp.Origin,
  195. Target:nil,
  196. UserName:tokenInfo.UserName,
  197. Uid:tokenInfo.Uid,
  198. Cid:tokenInfo.Cid,
  199. GardenId:tokenInfo.GardenId,
  200. }
  201. go OperationLogAdd(&logReq)
  202. return nil
  203. }
  204. // 执行任务
  205. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  206. }
  207. //
  208. // @Summary 分类列表
  209. // @Description 分类列表
  210. // @Tags 报事报修
  211. // @Accept json
  212. // @Produce json
  213. // @Param token header string true "token"
  214. // @Param page query int false " "
  215. // @Param page_size query int false " "
  216. // @Param area query int false "1公区 2室内 "
  217. // @Success 200 {object} v1.RepairClassListResponse
  218. // @Failure 500 {object} base.HTTPError
  219. // @Router /api/v1/repair/class [get]
  220. func (c *Controller) RepairClassList(ctx *gin.Context) {
  221. // 解析参数
  222. req := &param_v1.RepairClassListRequest{}
  223. parseParamTask := func() error {
  224. err := util.ShouldBind(ctx, &req.Header, nil, &req.RepairClassListQuery, nil)
  225. if err != nil {
  226. logger.Error("func",
  227. zap.String("call", "util.ShouldBind"),
  228. zap.String("error", err.Error()))
  229. return errors.ParamsError
  230. }
  231. return nil
  232. }
  233. // 业务处理
  234. handleServiceTask := func() error {
  235. tokenInfo, err := utils.GetSubjectValue(ctx)
  236. if err != nil {
  237. return err
  238. }
  239. // 响应数据
  240. resp := param_v1.RepairClassListResponse{}
  241. rpcReq := &v1.RepairClassListRequest{
  242. GardenId:tokenInfo.GardenId,
  243. PageSize:req.PageSize,
  244. Page:req.Page,
  245. Area:req.Area,
  246. }
  247. rpcRsp, err := pb.Garden.RepairClassList(ctx, rpcReq)
  248. if err != nil {
  249. s, _ := json.MarshalToString(req)
  250. logger.Error("func",
  251. zap.String("call", "pb.Garden.RepairClassList"),
  252. zap.String("params", s),
  253. zap.String("error", err.Error()))
  254. return errors.ErrorTransForm(err)
  255. }
  256. if rpcRsp.List == nil {
  257. rpcRsp.List = make([]*v1.RepairClassItem, 0)
  258. }
  259. resp.Data = *rpcRsp
  260. ctx.JSON(http.StatusOK, resp)
  261. return nil
  262. }
  263. // 执行任务
  264. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  265. }
  266. //
  267. // @Summary 新增工单
  268. // @Description 新增工单
  269. // @Tags 报事报修
  270. // @Accept json
  271. // @Produce json
  272. // @Param token header string true "token"
  273. // @Param body body v1.RepairOrderAddBody true "信息"
  274. // @Success 200 {object} v1.RepairOrderAddResponse
  275. // @Failure 500 {object} base.HTTPError
  276. // @Router /api/v1/repair/order [post]
  277. func (c *Controller) RepairOrderAdd(ctx *gin.Context) {
  278. // 解析参数
  279. req := &param_v1.RepairOrderAddRequest{}
  280. parseParamTask := func() error {
  281. err := util.ShouldBind(ctx, &req.Header, nil, nil, &req.RepairOrderAddBody)
  282. if err != nil {
  283. logger.Error("func",
  284. zap.String("call", "util.ShouldBind"),
  285. zap.String("error", err.Error()))
  286. return errors.ParamsError
  287. }
  288. return nil
  289. }
  290. // 业务处理
  291. handleServiceTask := func() error {
  292. tokenInfo, err := utils.GetSubjectValue(ctx)
  293. if err != nil {
  294. return err
  295. }
  296. // 响应数据
  297. resp := param_v1.RepairOrderAddResponse{}
  298. rpcReq := &v1.RepairOrderAddRequest{
  299. GardenId:tokenInfo.GardenId,
  300. // 分类id
  301. ClassId:req.ClassId,
  302. // 报修人
  303. ApplyPeople:req.ApplyPeople,
  304. // 报修人电话
  305. ApplyPeoplePhone:req.ApplyPeoplePhone,
  306. // 预约时间
  307. Appointment:req.Appointment,
  308. // 房屋id
  309. HouseId:req.HouseId,
  310. // 上级处理人
  311. LastUid:tokenInfo.Uid,
  312. // 报修内容
  313. ApplyContent:req.ApplyContent,
  314. // 报修图片
  315. ApplyPic:req.ApplyPic,
  316. ByCompany:tokenInfo.ByCompany,
  317. HouseholdUid:0,
  318. }
  319. rpcRsp, err := pb.Garden.RepairOrderAdd(ctx, rpcReq)
  320. if err != nil {
  321. s, _ := json.MarshalToString(req)
  322. logger.Error("func",
  323. zap.String("call", "pb.Garden.RepairOrderAdd"),
  324. zap.String("params", s),
  325. zap.String("error", err.Error()))
  326. return errors.ErrorTransForm(err)
  327. }
  328. resp.Data = *rpcRsp
  329. ctx.JSON(http.StatusOK, resp)
  330. logReq := OperationLogRequest{
  331. Module:ModuleRepair,
  332. Action:ActionRepairOrderAdd,
  333. Origin:nil,
  334. Target:req.RepairOrderAddBody,
  335. UserName:tokenInfo.UserName,
  336. Uid:tokenInfo.Uid,
  337. Cid:tokenInfo.Cid,
  338. GardenId:tokenInfo.GardenId,
  339. }
  340. go OperationLogAdd(&logReq)
  341. return nil
  342. }
  343. // 执行任务
  344. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  345. }
  346. //
  347. // @Summary 修改工单
  348. // @Description 修改工单
  349. // @Tags 报事报修
  350. // @Accept json
  351. // @Produce json
  352. // @Param token header string true "token"
  353. // @Param body body v1.RepairOrderUpdateBody true "信息"
  354. // @Success 200 {object} v1.RepairOrderUpdateResponse
  355. // @Failure 500 {object} base.HTTPError
  356. // @Router /api/v1/repair/order [put]
  357. func (c *Controller) RepairOrderUpdate(ctx *gin.Context) {
  358. // 解析参数
  359. req := &param_v1.RepairOrderUpdateRequest{}
  360. parseParamTask := func() error {
  361. err := util.ShouldBind(ctx, &req.Header, nil, nil, &req.RepairOrderUpdateBody)
  362. if err != nil {
  363. logger.Error("func",
  364. zap.String("call", "util.ShouldBind"),
  365. zap.String("error", err.Error()))
  366. return errors.ParamsError
  367. }
  368. return nil
  369. }
  370. // 业务处理
  371. handleServiceTask := func() error {
  372. tokenInfo, err := utils.GetSubjectValue(ctx)
  373. if err != nil {
  374. return err
  375. }
  376. // 响应数据
  377. resp := param_v1.RepairOrderUpdateResponse{}
  378. rpcReq := &v1.RepairOrderUpdateRequest{
  379. GardenId:tokenInfo.GardenId,
  380. Id:req.Id,
  381. // 分类id
  382. ClassId:req.ClassId,
  383. // 报修人
  384. ApplyPeople:req.ApplyPeople,
  385. // 报修人电话
  386. ApplyPeoplePhone:req.ApplyPeoplePhone,
  387. // 预约时间
  388. Appointment:req.Appointment,
  389. // 房屋id
  390. HouseId:req.HouseId,
  391. // 报修内容
  392. ApplyContent:req.ApplyContent,
  393. // 报修图片
  394. ApplyPic:req.ApplyPic,
  395. HouseholdUid:0,
  396. }
  397. rpcRsp, err := pb.Garden.RepairOrderUpdate(ctx, rpcReq)
  398. if err != nil {
  399. s, _ := json.MarshalToString(req)
  400. logger.Error("func",
  401. zap.String("call", "pb.Garden.RepairOrderUpdate"),
  402. zap.String("params", s),
  403. zap.String("error", err.Error()))
  404. return errors.ErrorTransForm(err)
  405. }
  406. ctx.JSON(http.StatusOK, resp)
  407. logReq := OperationLogRequest{
  408. Module:ModuleRepair,
  409. Action:ActionRepairOrderUpdate,
  410. Origin:rpcRsp.Origin,
  411. Target:req.RepairOrderUpdateBody,
  412. UserName:tokenInfo.UserName,
  413. Uid:tokenInfo.Uid,
  414. Cid:tokenInfo.Cid,
  415. GardenId:tokenInfo.GardenId,
  416. }
  417. go OperationLogAdd(&logReq)
  418. return nil
  419. }
  420. // 执行任务
  421. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  422. }
  423. //
  424. // @Summary 删除工单
  425. // @Description 删除工单
  426. // @Tags 报事报修
  427. // @Accept json
  428. // @Produce json
  429. // @Param token header string true "token"
  430. // @Param id query int true " "
  431. // @Success 200 {object} v1.RepairOrderDelResponse
  432. // @Failure 500 {object} base.HTTPError
  433. // @Router /api/v1/repair/order [delete]
  434. func (c *Controller) RepairOrderDel(ctx *gin.Context) {
  435. // 解析参数
  436. req := &param_v1.RepairOrderDelRequest{}
  437. parseParamTask := func() error {
  438. err := util.ShouldBind(ctx, &req.Header, nil, &req.RepairOrderDelQuery, nil)
  439. if err != nil {
  440. logger.Error("func",
  441. zap.String("call", "util.ShouldBind"),
  442. zap.String("error", err.Error()))
  443. return errors.ParamsError
  444. }
  445. return nil
  446. }
  447. // 业务处理
  448. handleServiceTask := func() error {
  449. tokenInfo, err := utils.GetSubjectValue(ctx)
  450. if err != nil {
  451. return err
  452. }
  453. // 响应数据
  454. resp := param_v1.RepairOrderDelResponse{}
  455. rpcReq := &v1.RepairOrderDelRequest{
  456. GardenId:tokenInfo.GardenId,
  457. Id:req.Id,
  458. HouseholdUid:0,
  459. }
  460. rpcRsp, err := pb.Garden.RepairOrderDel(ctx, rpcReq)
  461. if err != nil {
  462. s, _ := json.MarshalToString(req)
  463. logger.Error("func",
  464. zap.String("call", "pb.Garden.RepairOrderDel"),
  465. zap.String("params", s),
  466. zap.String("error", err.Error()))
  467. return errors.ErrorTransForm(err)
  468. }
  469. ctx.JSON(http.StatusOK, resp)
  470. logReq := OperationLogRequest{
  471. Module:ModuleRepair,
  472. Action:ActionRepairOrderDel,
  473. Origin:rpcRsp.Origin,
  474. Target:nil,
  475. UserName:tokenInfo.UserName,
  476. Uid:tokenInfo.Uid,
  477. Cid:tokenInfo.Cid,
  478. GardenId:tokenInfo.GardenId,
  479. }
  480. go OperationLogAdd(&logReq)
  481. return nil
  482. }
  483. // 执行任务
  484. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  485. }
  486. //
  487. // @Summary 工单列表
  488. // @Description 工单列表
  489. // @Tags 报事报修
  490. // @Accept json
  491. // @Produce json
  492. // @Param token header string true "token"
  493. // @Param page query int false " "
  494. // @Param page_size query int false " "
  495. // @Param status query int false " 1未派单 2 已派单 3 已完结 "
  496. // @Param apply_people query string false "报修人"
  497. // @Param apply_people_phone query string false "报修人电话"
  498. // @Param is_me query bool false " true: 指派给我的"
  499. // @Param class_id query int false "分类id"
  500. // @Success 200 {object} v1.RepairOrderListResponse
  501. // @Failure 500 {object} base.HTTPError
  502. // @Router /api/v1/repair/order [get]
  503. func (c *Controller) RepairOrderList(ctx *gin.Context) {
  504. // 解析参数
  505. req := &param_v1.RepairOrderListRequest{}
  506. parseParamTask := func() error {
  507. err := util.ShouldBind(ctx, &req.Header, nil, &req.RepairOrderListQuery, nil)
  508. if err != nil {
  509. logger.Error("func",
  510. zap.String("call", "util.ShouldBind"),
  511. zap.String("error", err.Error()))
  512. return errors.ParamsError
  513. }
  514. return nil
  515. }
  516. // 业务处理
  517. handleServiceTask := func() error {
  518. tokenInfo, err := utils.GetSubjectValue(ctx)
  519. if err != nil {
  520. return err
  521. }
  522. // 响应数据
  523. resp := param_v1.RepairOrderListResponse{}
  524. rpcReq := &v1.RepairOrderListRequest{
  525. GardenId:tokenInfo.GardenId,
  526. PageSize:req.PageSize,
  527. Page:req.Page,
  528. ClassId:req.ClassId,
  529. ApplyPeoplePhone:req.ApplyPeoplePhone,
  530. ApplyPeople:req.ApplyPeople,
  531. Status:req.Status,
  532. }
  533. if req.IsMe {
  534. rpcReq.CurrentUid = tokenInfo.Uid
  535. }
  536. rpcRsp, err := pb.Garden.RepairOrderList(ctx, rpcReq)
  537. if err != nil {
  538. s, _ := json.MarshalToString(req)
  539. logger.Error("func",
  540. zap.String("call", "pb.Garden.RepairOrderList"),
  541. zap.String("params", s),
  542. zap.String("error", err.Error()))
  543. return errors.ErrorTransForm(err)
  544. }
  545. if rpcRsp.List == nil {
  546. rpcRsp.List = make([]*v1.RepairOrderItem, 0)
  547. }
  548. resp.Data = *rpcRsp
  549. ctx.JSON(http.StatusOK, resp)
  550. return nil
  551. }
  552. // 执行任务
  553. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  554. }
  555. //
  556. // @Summary 工单详情
  557. // @Description 工单详情
  558. // @Tags 报事报修
  559. // @Accept json
  560. // @Produce json
  561. // @Param token header string true "token"
  562. // @Param id query int true " "
  563. // @Success 200 {object} v1.RepairOrderInfoResponse
  564. // @Failure 500 {object} base.HTTPError
  565. // @Router /api/v1/repair/order/info [get]
  566. func (c *Controller) RepairOrderInfo(ctx *gin.Context) {
  567. // 解析参数
  568. req := &param_v1.RepairOrderInfoRequest{}
  569. parseParamTask := func() error {
  570. err := util.ShouldBind(ctx, &req.Header, nil, &req.RepairOrderInfoQuery, nil)
  571. if err != nil {
  572. logger.Error("func",
  573. zap.String("call", "util.ShouldBind"),
  574. zap.String("error", err.Error()))
  575. return errors.ParamsError
  576. }
  577. return nil
  578. }
  579. // 业务处理
  580. handleServiceTask := func() error {
  581. tokenInfo, err := utils.GetSubjectValue(ctx)
  582. if err != nil {
  583. return err
  584. }
  585. // 响应数据
  586. resp := param_v1.RepairOrderInfoResponse{}
  587. rpcReq := &v1.RepairOrderInfoRequest{
  588. GardenId:tokenInfo.GardenId,
  589. Id:req.Id,
  590. }
  591. rpcRsp, err := pb.Garden.RepairOrderInfo(ctx, rpcReq)
  592. if err != nil {
  593. s, _ := json.MarshalToString(req)
  594. logger.Error("func",
  595. zap.String("call", "pb.Garden.RepairOrderInfo"),
  596. zap.String("params", s),
  597. zap.String("error", err.Error()))
  598. return errors.ErrorTransForm(err)
  599. }
  600. if rpcRsp.List == nil {
  601. rpcRsp.List = make([]*v1.RepairOrderPipelineData, 0)
  602. }
  603. resp.Data = *rpcRsp
  604. ctx.JSON(http.StatusOK, resp)
  605. return nil
  606. }
  607. // 执行任务
  608. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  609. }
  610. //
  611. // @Summary 派单
  612. // @Description 派单
  613. // @Tags 报事报修
  614. // @Accept json
  615. // @Produce json
  616. // @Param token header string true "token"
  617. // @Param body body v1.RepairOrderSendBody true "信息"
  618. // @Success 200 {object} v1.RepairOrderSendResponse
  619. // @Failure 500 {object} base.HTTPError
  620. // @Router /api/v1/repair/order/send [put]
  621. func (c *Controller) RepairOrderSend(ctx *gin.Context) {
  622. // 解析参数
  623. req := &param_v1.RepairOrderSendRequest{}
  624. parseParamTask := func() error {
  625. err := util.ShouldBind(ctx, &req.Header, nil, nil, &req.RepairOrderSendBody)
  626. if err != nil {
  627. logger.Error("func",
  628. zap.String("call", "util.ShouldBind"),
  629. zap.String("error", err.Error()))
  630. return errors.ParamsError
  631. }
  632. return nil
  633. }
  634. // 业务处理
  635. handleServiceTask := func() error {
  636. tokenInfo, err := utils.GetSubjectValue(ctx)
  637. if err != nil {
  638. return err
  639. }
  640. // 响应数据
  641. resp := param_v1.RepairOrderSendResponse{}
  642. rpcReq := &v1.RepairOrderSendRequest{
  643. GardenId:tokenInfo.GardenId,
  644. Id:req.Id,
  645. CurrentUid:req.CurrentUid,
  646. Feedback:req.Feedback,
  647. LastUid:tokenInfo.Uid,
  648. ByCompany:tokenInfo.ByCompany,
  649. }
  650. _, err = pb.Garden.RepairOrderSend(ctx, rpcReq)
  651. if err != nil {
  652. s, _ := json.MarshalToString(req)
  653. logger.Error("func",
  654. zap.String("call", "pb.Garden.RepairOrderSend"),
  655. zap.String("params", s),
  656. zap.String("error", err.Error()))
  657. return errors.ErrorTransForm(err)
  658. }
  659. ctx.JSON(http.StatusOK, resp)
  660. logReq := OperationLogRequest{
  661. Module:ModuleRepair,
  662. Action:ActionRepairOrderSend,
  663. Origin:nil,
  664. Target:req.RepairOrderSendBody,
  665. UserName:tokenInfo.UserName,
  666. Uid:tokenInfo.Uid,
  667. Cid:tokenInfo.Cid,
  668. GardenId:tokenInfo.GardenId,
  669. }
  670. go OperationLogAdd(&logReq)
  671. return nil
  672. }
  673. // 执行任务
  674. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  675. }
  676. //
  677. // @Summary 结单
  678. // @Description 结单
  679. // @Tags 报事报修
  680. // @Accept json
  681. // @Produce json
  682. // @Param token header string true "token"
  683. // @Param body body v1.RepairOrderFinishBody true "信息"
  684. // @Success 200 {object} v1.RepairOrderFinishResponse
  685. // @Failure 500 {object} base.HTTPError
  686. // @Router /api/v1/repair/order/finish [put]
  687. func (c *Controller) RepairOrderFinish(ctx *gin.Context) {
  688. // 解析参数
  689. req := &param_v1.RepairOrderFinishRequest{}
  690. parseParamTask := func() error {
  691. err := util.ShouldBind(ctx, &req.Header, nil, nil, &req.RepairOrderFinishBody)
  692. if err != nil {
  693. logger.Error("func",
  694. zap.String("call", "util.ShouldBind"),
  695. zap.String("error", err.Error()))
  696. return errors.ParamsError
  697. }
  698. return nil
  699. }
  700. // 业务处理
  701. handleServiceTask := func() error {
  702. tokenInfo, err := utils.GetSubjectValue(ctx)
  703. if err != nil {
  704. return err
  705. }
  706. // 响应数据
  707. resp := param_v1.RepairOrderFinishResponse{}
  708. rpcReq := &v1.RepairOrderFinishRequest{
  709. GardenId:tokenInfo.GardenId,
  710. Id:req.Id,
  711. Feedback:req.Feedback,
  712. LastUid:tokenInfo.Uid,
  713. ByCompany:tokenInfo.ByCompany,
  714. RepairPic:req.RepairPic,
  715. }
  716. _, err = pb.Garden.RepairOrderFinish(ctx, rpcReq)
  717. if err != nil {
  718. s, _ := json.MarshalToString(req)
  719. logger.Error("func",
  720. zap.String("call", "pb.Garden.RepairOrderFinish"),
  721. zap.String("params", s),
  722. zap.String("error", err.Error()))
  723. return errors.ErrorTransForm(err)
  724. }
  725. ctx.JSON(http.StatusOK, resp)
  726. logReq := OperationLogRequest{
  727. Module:ModuleRepair,
  728. Action:ActionRepairOrderFinish,
  729. Origin:nil,
  730. Target:req.RepairOrderFinishBody,
  731. UserName:tokenInfo.UserName,
  732. Uid:tokenInfo.Uid,
  733. Cid:tokenInfo.Cid,
  734. GardenId:tokenInfo.GardenId,
  735. }
  736. go OperationLogAdd(&logReq)
  737. return nil
  738. }
  739. // 执行任务
  740. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  741. }
  742. //
  743. // @Summary 退单
  744. // @Description 退单
  745. // @Tags 报事报修
  746. // @Accept json
  747. // @Produce json
  748. // @Param token header string true "token"
  749. // @Param body body v1.RepairOrderBackBody true "信息"
  750. // @Success 200 {object} v1.RepairOrderBackResponse
  751. // @Failure 500 {object} base.HTTPError
  752. // @Router /api/v1/repair/order/back [put]
  753. func (c *Controller) RepairOrderBack(ctx *gin.Context) {
  754. // 解析参数
  755. req := &param_v1.RepairOrderBackRequest{}
  756. parseParamTask := func() error {
  757. err := util.ShouldBind(ctx, &req.Header, nil, nil, &req.RepairOrderBackBody)
  758. if err != nil {
  759. logger.Error("func",
  760. zap.String("call", "util.ShouldBind"),
  761. zap.String("error", err.Error()))
  762. return errors.ParamsError
  763. }
  764. return nil
  765. }
  766. // 业务处理
  767. handleServiceTask := func() error {
  768. tokenInfo, err := utils.GetSubjectValue(ctx)
  769. if err != nil {
  770. return err
  771. }
  772. // 响应数据
  773. resp := param_v1.RepairOrderBackResponse{}
  774. rpcReq := &v1.RepairOrderBackRequest{
  775. GardenId:tokenInfo.GardenId,
  776. Id:req.Id,
  777. Feedback:req.Feedback,
  778. LastUid:tokenInfo.Uid,
  779. ByCompany:tokenInfo.ByCompany,
  780. }
  781. _, err = pb.Garden.RepairOrderBack(ctx, rpcReq)
  782. if err != nil {
  783. s, _ := json.MarshalToString(req)
  784. logger.Error("func",
  785. zap.String("call", "pb.Garden.RepairOrderBack"),
  786. zap.String("params", s),
  787. zap.String("error", err.Error()))
  788. return errors.ErrorTransForm(err)
  789. }
  790. ctx.JSON(http.StatusOK, resp)
  791. logReq := OperationLogRequest{
  792. Module:ModuleRepair,
  793. Action:ActionRepairOrderBack,
  794. Origin:nil,
  795. Target:req.RepairOrderBackBody,
  796. UserName:tokenInfo.UserName,
  797. Uid:tokenInfo.Uid,
  798. Cid:tokenInfo.Cid,
  799. GardenId:tokenInfo.GardenId,
  800. }
  801. go OperationLogAdd(&logReq)
  802. return nil
  803. }
  804. // 执行任务
  805. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  806. }
  807. //
  808. // @Summary 回访
  809. // @Description 回访
  810. // @Tags 报事报修
  811. // @Accept json
  812. // @Produce json
  813. // @Param token header string true "token"
  814. // @Param body body v1.RepairOrderReturnVisitBody true "信息"
  815. // @Success 200 {object} v1.RepairOrderReturnVisitResponse
  816. // @Failure 500 {object} base.HTTPError
  817. // @Router /api/v1/repair/order/return_visit [put]
  818. func (c *Controller) RepairOrderReturnVisit(ctx *gin.Context) {
  819. // 解析参数
  820. req := &param_v1.RepairOrderReturnVisitRequest{}
  821. parseParamTask := func() error {
  822. err := util.ShouldBind(ctx, &req.Header, nil, nil, &req.RepairOrderReturnVisitBody)
  823. if err != nil {
  824. logger.Error("func",
  825. zap.String("call", "util.ShouldBind"),
  826. zap.String("error", err.Error()))
  827. return errors.ParamsError
  828. }
  829. return nil
  830. }
  831. // 业务处理
  832. handleServiceTask := func() error {
  833. tokenInfo, err := utils.GetSubjectValue(ctx)
  834. if err != nil {
  835. return err
  836. }
  837. // 响应数据
  838. resp := param_v1.RepairOrderReturnVisitResponse{}
  839. rpcReq := &v1.RepairOrderReturnVisitRequest{
  840. GardenId:tokenInfo.GardenId,
  841. Id:req.Id,
  842. ReturnVisitLevel:req.ReturnVisitLevel,
  843. ReturnVisitContent:req.ReturnVisitContent,
  844. }
  845. _, err = pb.Garden.RepairOrderReturnVisit(ctx, rpcReq)
  846. if err != nil {
  847. s, _ := json.MarshalToString(req)
  848. logger.Error("func",
  849. zap.String("call", "pb.Garden.RepairOrderReturnVisit"),
  850. zap.String("params", s),
  851. zap.String("error", err.Error()))
  852. return errors.ErrorTransForm(err)
  853. }
  854. ctx.JSON(http.StatusOK, resp)
  855. logReq := OperationLogRequest{
  856. Module:ModuleRepair,
  857. Action:ActionRepairOrderReturnVisit,
  858. Origin:nil,
  859. Target:req.RepairOrderReturnVisitBody,
  860. UserName:tokenInfo.UserName,
  861. Uid:tokenInfo.Uid,
  862. Cid:tokenInfo.Cid,
  863. GardenId:tokenInfo.GardenId,
  864. }
  865. go OperationLogAdd(&logReq)
  866. return nil
  867. }
  868. // 执行任务
  869. httptasker.Exec(ctx, parseParamTask, handleServiceTask)
  870. }