UcardApiController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. package com.crm.ucard.controller;
  2. import com.crm.rely.backend.core.constant.Constants;
  3. import com.crm.rely.backend.core.dto.base.*;
  4. import com.crm.rely.backend.core.dto.ucard.*;
  5. import com.crm.rely.backend.core.entity.base.SingleLongEntity;
  6. import com.crm.rely.backend.core.entity.custom.info.InfoEntity;
  7. import com.crm.rely.backend.core.entity.ucard.*;
  8. import com.crm.rely.backend.exception.ServiceException;
  9. import com.crm.ucard.service.*;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.web.bind.annotation.*;
  13. import org.springframework.web.multipart.MultipartFile;
  14. import java.util.List;
  15. @Slf4j
  16. @RestController
  17. @RequestMapping("/ucard/api")
  18. public class UcardApiController {
  19. @Autowired
  20. private UcardApiService ucardApiService;
  21. @Autowired
  22. private UcardService ucardService;
  23. @Autowired
  24. private WasabiCardService wasabiCardService;
  25. /**
  26. * 获取卡片类型列表
  27. */
  28. @PostMapping("/card/types/page")
  29. public ResultWithPagerDto<CardTypeDto> getCardTypePageList(@RequestBody CardTypePageEntity entity) throws ServiceException {
  30. entity.setEnableStatus(1);
  31. return ucardService.getCardTypePageList(entity);
  32. }
  33. /**
  34. * 获取卡片类型
  35. */
  36. @PostMapping("/card/types/list")
  37. public BaseResultDto getCardTypeList(@RequestBody CardTypeEntity entity, InfoEntity infoEntity) throws ServiceException {
  38. entity.setCId(infoEntity.getCustomInfo().getCId());
  39. return BaseResultDto.success(wasabiCardService.getCardTypeList(entity));
  40. }
  41. /**
  42. * 商户用户注册
  43. */
  44. @PostMapping("/merchant/user/register")
  45. public BaseResultDto registerMerchantUser(@RequestBody MerchantUserEntity request) throws ServiceException {
  46. return ucardService.registerMerchantUser(request);
  47. }
  48. /**
  49. * 更新商户用户信息
  50. */
  51. @PostMapping("/merchant/user/update")
  52. public BaseResultDto updateMerchantUser(@RequestBody MerchantUserEntity request) throws ServiceException {
  53. return ucardService.updateMerchantUser(request);
  54. }
  55. /**
  56. * 查看商户用户信息
  57. */
  58. @PostMapping("/merchant/user/single")
  59. public BaseResultDto merchantUserSingle(InfoEntity entity) throws ServiceException {
  60. return BaseResultDto.success(ucardApiService.merchantUserSingle(entity.getCustomInfo().getCId()));
  61. }
  62. /**
  63. * 获取kyc认证分页列表
  64. */
  65. @PostMapping("/merchant/kyc/page")
  66. ResultWithPagerDto<CardKycStatusDto> getKycPageList(@RequestBody CardKycStatusPageEntity entity) throws ServiceException{
  67. return ucardService.getKycPageList(entity);
  68. }
  69. /**
  70. * 上传KYC附件
  71. */
  72. @PostMapping("/merchant/kyc/upload")
  73. public BaseResultDto uploadKycAttachment(@RequestBody KycAttachmentUploadEntity request) throws ServiceException {
  74. return ucardService.uploadKycAttachment(request);
  75. }
  76. /**
  77. * 提交KYC认证"
  78. */
  79. @PostMapping("/merchant/kyc/submit")
  80. public BaseResultDto submitKyc(@RequestBody KycEntity request) throws ServiceException {
  81. return ucardService.submitKyc(request);
  82. }
  83. /**
  84. * 查询KYC认证状态
  85. */
  86. @PostMapping("/merchant/kyc/status")
  87. public BaseResultDto<KycStatusDto> queryKycStatus(@RequestBody KycEntity entity) throws ServiceException {
  88. return ucardService.queryKycStatus(entity);
  89. }
  90. /**
  91. * 申请开卡
  92. */
  93. @PostMapping("/card/apply")
  94. public BaseResultDto applyCard(@RequestBody CardApplyEntity request) throws ServiceException {
  95. return ucardService.applyCard(request);
  96. }
  97. /**
  98. * 查询开卡进度
  99. */
  100. @PostMapping("/card/apply/progress")
  101. public BaseResultDto<CardApplyProgressDto> queryApplyProgress(@RequestBody CardApplyProgressEntity request) throws ServiceException {
  102. return ucardService.queryApplyProgress(request);
  103. }
  104. /**
  105. * 获取卡片列表
  106. */
  107. @PostMapping("/card/list")
  108. public BaseResultDto getCardList(@RequestBody CardPageEntity entity, InfoEntity infoEntity) throws ServiceException {
  109. entity.setCId(infoEntity.getCustomInfo().getCId());
  110. return BaseResultDto.success(ucardApiService.getCardList(entity));
  111. }
  112. /**
  113. * 获取卡片详情
  114. */
  115. @PostMapping("/card/single")
  116. public BaseResultDto getCardSingle(@RequestBody SingleLongEntity entity) throws ServiceException {
  117. return BaseResultDto.success(ucardApiService.getCardSingle(entity));
  118. }
  119. /**
  120. * 银行卡激活
  121. */
  122. @PostMapping("/card/activate")
  123. public BaseResultDto<CardActivateDto> activateCard(@RequestBody CardActivateEntity request) throws ServiceException {
  124. return ucardService.activateCard(request);
  125. }
  126. /**
  127. * 查询充值预估到账金额
  128. */
  129. @PostMapping("/card/recharge/estimate")
  130. public BaseResultDto<CardRechargeEstimateDto> queryRechargeEstimate(@RequestBody CardRechargeEstimateEntity request) throws ServiceException {
  131. return ucardService.queryRechargeEstimate(request);
  132. }
  133. /**
  134. * 银行卡充值
  135. */
  136. @PostMapping("/card/recharge")
  137. public BaseResultDto<CardRechargeDto> rechargeCard(@RequestBody CardRechargeEntity request) throws ServiceException {
  138. return ucardService.rechargeCard(request);
  139. }
  140. /**
  141. * 充值记录分页查询
  142. */
  143. @PostMapping("/card/recharge/page")
  144. public BaseReportResultDto<List<CardRechargeOrderDto>, CardRechargeOrderSumDto> queryRechargePageList(@RequestBody CardRechargePageEntity request) throws ServiceException {
  145. return ucardService.queryRechargePageList(request);
  146. }
  147. /**
  148. * 查询卡片余额
  149. */
  150. @PostMapping("/card/balance")
  151. public BaseResultDto<List<CardBalanceDto>> queryCardBalance(@RequestBody CardBalanceEntity request) throws ServiceException {
  152. return ucardService.queryCardBalance(request);
  153. }
  154. /**
  155. * 冻结卡片
  156. */
  157. @PostMapping("/card/freeze")
  158. public BaseResultDto<CardFreezeDto> freezeCard(@RequestBody CardOperateEntity request) throws ServiceException {
  159. return ucardService.freezeCard(request);
  160. }
  161. /**
  162. * 解冻卡片
  163. */
  164. @PostMapping("/card/unfreeze")
  165. public BaseResultDto<CardFreezeDto> unfreezeCard(@RequestBody CardOperateEntity request) throws ServiceException {
  166. return ucardService.unfreezeCard(request);
  167. }
  168. /**
  169. * 查询交易记录分页列表
  170. */
  171. @PostMapping("/card/transac/page")
  172. public ResultWithPagerDto<CardTransacOrderDto> getTransactionPageList(@RequestBody CardTransacOrderPageEntity request) throws ServiceException {
  173. return ucardService.getTransacOrderPageList(request);
  174. }
  175. /**
  176. * 获取交易纪录详情
  177. */
  178. @PostMapping("/card/transac/single")
  179. public BaseResultDto getTransactionSingle(@RequestBody SingleLongEntity entity) throws ServiceException {
  180. return BaseResultDto.success(ucardApiService.getTransactionSingle(entity));
  181. }
  182. /**
  183. * 查询速汇银行及相关配置
  184. */
  185. @PostMapping("/transfer/banks")
  186. public BaseResultDto<List<GlobalTransferBankDto>> queryBankList() throws ServiceException {
  187. return ucardService.queryBankList();
  188. }
  189. /**
  190. * 查询法币汇率
  191. */
  192. @PostMapping("/transfer/rate")
  193. public BaseResultDto<GlobalExchangeRateDto> queryExchangeRate(@RequestBody GlobalExchangeRateEntity request) throws ServiceException {
  194. return ucardService.queryExchangeRate(request);
  195. }
  196. /**
  197. * 代付校验
  198. */
  199. @PostMapping("/transfer/validate")
  200. public BaseResultDto validateTransfer(@RequestBody GlobalPaymentEntity request) throws ServiceException {
  201. return ucardService.validateTransfer(request);
  202. }
  203. /**
  204. * 代付付款人校验
  205. */
  206. @PostMapping("/transfer/validate/payer")
  207. public BaseResultDto validatePayer(@RequestBody GlobalPayerEntity request) throws ServiceException {
  208. return ucardService.validatePayer(request);
  209. }
  210. /**
  211. * 代付收款人校验
  212. */
  213. @PostMapping("/transfer/validate/payee")
  214. public BaseResultDto validatePayee(@RequestBody GlobalPayeeEntity request) throws ServiceException {
  215. return ucardService.validatePayee(request);
  216. }
  217. /**
  218. * 代付
  219. */
  220. @PostMapping("/transfer")
  221. public BaseResultDto<GlobalPaymentDto> transfer(@RequestBody GlobalPaymentEntity request) throws ServiceException {
  222. return ucardService.transfer(request);
  223. }
  224. /**
  225. * 用户代付订单分页查询
  226. */
  227. @PostMapping("/transfer/page")
  228. public ResultWithPagerDto<GlobalPaymentOrderDto> queryOrderPageList(@RequestBody GlobalPaymentPageEntity request) throws ServiceException {
  229. return ucardService.queryOrderPageList(request);
  230. }
  231. /**
  232. * 获取用户代付订单详情
  233. */
  234. @PostMapping("/transfer/single")
  235. public BaseResultDto getTransferPaymentSingle(@RequestBody SingleLongEntity entity) throws ServiceException {
  236. return BaseResultDto.success(ucardApiService.getTransferPaymentSingle(entity));
  237. }
  238. /**
  239. * 提交调单信息或文件
  240. */
  241. @PostMapping("/transfer/dispute")
  242. public BaseResultDto submitDispute(@RequestBody GlobalSubmitDisputeEntity request) throws ServiceException {
  243. return ucardService.submitDispute(request);
  244. }
  245. /**
  246. * 查询代付订单结果
  247. */
  248. @PostMapping("/transfer/order/result")
  249. public BaseResultDto<GlobalOrderInfoDto> queryOrderResult(@RequestBody GlobalOrderQueryEntity request) throws ServiceException {
  250. return ucardService.queryOrderResult(request);
  251. }
  252. /**
  253. * 上传文件
  254. */
  255. @PostMapping("/upload/file")
  256. public BaseResultDto<String> uploadFile(@RequestParam(value = "file") MultipartFile file) throws ServiceException {
  257. return BaseResultDto.success(Constants.SUCCESS,ucardService.uploadFile(file));
  258. }
  259. /**
  260. * 查询ucard国家和城市
  261. */
  262. @PostMapping("/card/country")
  263. public BaseResultDto getCardCountry(@RequestBody CardCountryEntity request) throws ServiceException {
  264. return BaseResultDto.success(ucardService.getCardCountryList(request));
  265. }
  266. }