BankOrderController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package me.zhengjie.application.bank.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import io.swagger.annotations.Api;
  4. import io.swagger.annotations.ApiOperation;
  5. import lombok.RequiredArgsConstructor;
  6. import lombok.extern.slf4j.Slf4j;
  7. import me.zhengjie.annotation.rest.AnonymousPostMapping;
  8. import me.zhengjie.application.bank.BaseController;
  9. import me.zhengjie.application.bank.controller.vo.BankOrderVO;
  10. import me.zhengjie.application.bank.service.BankOrderService;
  11. import me.zhengjie.base.ResponseDTO;
  12. import me.zhengjie.base.ResultCode;
  13. import me.zhengjie.base.util.DateUtils;
  14. import me.zhengjie.base.util.StatusEnum;
  15. import me.zhengjie.domain.order.OrderConstant;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.validation.annotation.Validated;
  18. import org.springframework.web.bind.annotation.PostMapping;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import org.springframework.web.multipart.MultipartFile;
  23. import javax.validation.Valid;
  24. import java.util.List;
  25. @Validated
  26. @RestController
  27. @RequestMapping("${fqgz.bank.app.url-prefix}/order")
  28. @Slf4j
  29. @RequiredArgsConstructor
  30. @Api(tags = "客户经理APP: 订单管理")
  31. public class BankOrderController extends BaseController {
  32. private final BankOrderService bankOrderService;
  33. /**
  34. * 得到业务编号
  35. *
  36. * @return
  37. */
  38. @RequestMapping("/business-no")
  39. public ResponseDTO<String> businessNo() {
  40. String no = "100" + DateUtils.getNo();
  41. return ResponseDTO.success(no);
  42. }
  43. /**
  44. * 创建/修改订单
  45. *
  46. * @return
  47. */
  48. @AnonymousPostMapping("/save")
  49. public ResponseDTO<String> saveOrder(@RequestBody @Valid BankOrderVO vo) {
  50. if (vo.getJointFlag() != null && vo.getJointFlag() == OrderConstant.JOINT_FLAG_TRUE) {
  51. if (StringUtils.isEmpty(vo.getJointName()) || StringUtils.isEmpty(vo.getJointIdCard()) || StringUtils.isEmpty(vo.getJointPhone()) || StringUtils.isEmpty(vo.getJointSex()) || StringUtils.isEmpty(vo.getJointIdcardFrontPic()) || StringUtils.isEmpty(vo.getJointIdcardBackPic())) {
  52. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  53. }
  54. }
  55. bankOrderService.saveContractOrder(vo, getCurrentUser());
  56. return ResponseDTO.success();
  57. }
  58. /**
  59. * 订单列表
  60. *
  61. * @param json
  62. * @return
  63. */
  64. @PostMapping("/list")
  65. public ResponseDTO<List<BankOrderVO>> orderList(@RequestBody String json) {
  66. JSONObject jsonObj = JSONObject.parseObject(json);
  67. String phone = jsonObj.getString("phone");
  68. String status = jsonObj.getString("status");
  69. String contractNo = jsonObj.getString("contractNo");
  70. Long index = jsonObj.getLong("index");
  71. Long size = jsonObj.getLong("size");
  72. List<BankOrderVO> list = bankOrderService.getContractOrderList(contractNo, phone, status, index, size);
  73. return ResponseDTO.success(list);
  74. }
  75. /**
  76. * 查询主订单详情
  77. *
  78. * @param json
  79. * @return
  80. */
  81. @RequestMapping("/info")
  82. public ResponseDTO<?> orderInfo(@RequestBody String json) {
  83. JSONObject jsonObj = JSONObject.parseObject(json);
  84. String businessNo = jsonObj.getString("businessNo");
  85. if (StringUtils.isEmpty(businessNo)) {
  86. return ResponseDTO.error(ResultCode.PARAM_IS_BLANK);
  87. }
  88. BankOrderVO order = bankOrderService.getContractOrderWithBizNo(businessNo);
  89. if (order == null) {
  90. return ResponseDTO.error(ResultCode.ORDER_DATA_NOT_EXIST);
  91. }
  92. return ResponseDTO.success(order);
  93. }
  94. /**
  95. * 提交订单
  96. *
  97. * @param json
  98. * @return
  99. */
  100. @ApiOperation("提交订单")
  101. @PostMapping(value = "/submit")
  102. public ResponseDTO<String> submitOrder(@RequestBody String json) {
  103. JSONObject jsonObj = JSONObject.parseObject(json);
  104. String businessNo = jsonObj.getString("businessNo");
  105. return bankOrderService.submitContractOrder(businessNo, getCurrentUser());
  106. }
  107. /**
  108. * 删除订单
  109. *
  110. * @param json
  111. * @return
  112. */
  113. @RequestMapping("/delete")
  114. public ResponseDTO<String> delete(@RequestBody String json) {
  115. JSONObject jsonObj = JSONObject.parseObject(json);
  116. String businessNo = jsonObj.getString("businessNo");
  117. String status= StatusEnum.NotaryStatusEnum.DELETE.getStatus().toString();
  118. bankOrderService.updateStatus(businessNo,status,null);
  119. return ResponseDTO.success();
  120. }
  121. /**
  122. * 银行合同OCR解析输入
  123. *
  124. * @param file
  125. * @param orderType
  126. * @return
  127. */
  128. @RequestMapping("/ocr-parser")
  129. public ResponseDTO<?> orderOCRParser(MultipartFile file, Integer orderType) {
  130. Object object = bankOrderService.parseContractOrder(orderType, file, getCurrentUser());
  131. if (object == null) {
  132. return ResponseDTO.error(ResultCode.ORDER_OCR_SERVICE_UNAVAILABLE);
  133. }
  134. return ResponseDTO.success(object);
  135. }
  136. }