CertificationController.java 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  1. package com.demo.wjj.controller;
  2. import com.demo.wjj.po.Agent;
  3. import com.demo.wjj.po.Sale;
  4. import com.demo.wjj.po.UserInfo;
  5. import com.demo.wjj.service.*;
  6. import com.demo.wjj.utils.ApiResult;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.io.UnsupportedEncodingException;
  12. import java.net.URLDecoder;
  13. import java.net.URLEncoder;
  14. import java.util.List;
  15. import org.apache.commons.lang3.StringUtils;
  16. @RequestMapping("/certification")
  17. @RestController
  18. public class CertificationController {
  19. private final Logger LOG = LoggerFactory.getLogger(getClass());
  20. @Autowired
  21. private CertificationService certificationService;
  22. @Autowired
  23. private AgentService agentService;
  24. @Autowired
  25. QiNiuService qiNiuService;
  26. @Autowired
  27. SaleService saleService;
  28. /**
  29. * 判断是否实名认证
  30. * @return apiResult
  31. */
  32. @GetMapping("/getUserInfo")
  33. public ApiResult getUserInfo(String idCard,String status) {
  34. LOG.info("调用获取用户信息(/certification/getUserInfo)接口");
  35. try {
  36. UserInfo userInfo = certificationService.getUserInfo(idCard,status);
  37. if(userInfo!=null) {
  38. if (StringUtils.isNotBlank(userInfo.getIdcarddfrontpic())) {
  39. String Idcarddfrontpic = qiNiuService.getUrl(userInfo.getIdcarddfrontpic());
  40. userInfo.setIdcarddfrontpic(Idcarddfrontpic);
  41. }
  42. if (StringUtils.isNotBlank(userInfo.getIdcarddbackpic())) {
  43. String Idcarddbackpic = qiNiuService.getUrl(userInfo.getIdcarddbackpic());
  44. userInfo.setIdcarddbackpic(Idcarddbackpic);
  45. }
  46. if (StringUtils.isNotBlank(userInfo.getPic())) {
  47. String pic = qiNiuService.getUrl(userInfo.getPic());
  48. userInfo.setPic(pic);
  49. }
  50. if (StringUtils.isNotBlank(userInfo.getBankcardpic())) {
  51. String bankcardpic = qiNiuService.getUrl(userInfo.getBankcardpic());
  52. userInfo.setBankcardpic(bankcardpic);
  53. }
  54. }
  55. LOG.info("userInfo="+userInfo);
  56. ApiResult<UserInfo> apiResult = ApiResult.createSuccess(userInfo);
  57. LOG.info("调用获取用户信息(/certification/getUserInfo)接口成功");
  58. LOG.debug("调用获取用户信息(/certification/getUserInfo), apiResult:{}", apiResult);
  59. return apiResult;
  60. } catch (Exception e) {
  61. LOG.error("调用获取用户信息(/certification/getUserInfo)接口异常", e);
  62. return ApiResult.createFailure();
  63. }
  64. }
  65. @GetMapping("/getUserInfoByAgent")
  66. public ApiResult getUserInfoByAgent(String status,String angentId) {
  67. LOG.info("调用获取用户信息(/certification/getUserInfo)接口");
  68. try {
  69. List<UserInfo> userInfos = certificationService.getUserInfoByAgent(status,angentId);
  70. for(UserInfo userInfo:userInfos) {
  71. if (userInfo != null) {
  72. if (StringUtils.isNotBlank(userInfo.getIdcarddfrontpic())) {
  73. String Idcarddfrontpic = qiNiuService.getUrl(userInfo.getIdcarddfrontpic());
  74. userInfo.setIdcarddfrontpic(Idcarddfrontpic);
  75. }
  76. if (StringUtils.isNotBlank(userInfo.getIdcarddbackpic())) {
  77. String Idcarddbackpic = qiNiuService.getUrl(userInfo.getIdcarddbackpic());
  78. userInfo.setIdcarddbackpic(Idcarddbackpic);
  79. }
  80. if (StringUtils.isNotBlank(userInfo.getPic())) {
  81. String pic = qiNiuService.getUrl(userInfo.getPic());
  82. userInfo.setPic(pic);
  83. }
  84. if (StringUtils.isNotBlank(userInfo.getBankcardpic())) {
  85. String bankcardpic = qiNiuService.getUrl(userInfo.getBankcardpic());
  86. userInfo.setBankcardpic(bankcardpic);
  87. }
  88. }
  89. }
  90. ApiResult<List<UserInfo>> apiResult = ApiResult.createSuccess(userInfos);
  91. LOG.info("调用获取用户信息(/certification/getUserInfo)接口成功");
  92. LOG.debug("调用获取用户信息(/certification/getUserInfo), apiResult:{}", apiResult);
  93. return apiResult;
  94. } catch (Exception e) {
  95. LOG.error("调用获取用户信息(/certification/getUserInfo)接口异常", e);
  96. return ApiResult.createFailure();
  97. }
  98. }
  99. @GetMapping("/getUserInfoByAgentAndOpenId")
  100. public ApiResult getUserInfoByAgentAndOpenId(String status,String agentId,String openId) {
  101. LOG.info("调用获取用户信息(/certification/getUserInfo)接口");
  102. try {
  103. UserInfo userInfo = certificationService.getUserInfoByAgentAndOpenId(status,agentId,openId);
  104. if (userInfo != null) {
  105. if (StringUtils.isNotBlank(userInfo.getIdcarddfrontpic())) {
  106. String Idcarddfrontpic = qiNiuService.getUrl(userInfo.getIdcarddfrontpic());
  107. userInfo.setIdcarddfrontpic(Idcarddfrontpic);
  108. }
  109. if (StringUtils.isNotBlank(userInfo.getIdcarddbackpic())) {
  110. String Idcarddbackpic = qiNiuService.getUrl(userInfo.getIdcarddbackpic());
  111. userInfo.setIdcarddbackpic(Idcarddbackpic);
  112. }
  113. if (StringUtils.isNotBlank(userInfo.getPic())) {
  114. String pic = qiNiuService.getUrl(userInfo.getPic());
  115. userInfo.setPic(pic);
  116. }
  117. if (StringUtils.isNotBlank(userInfo.getBankcardpic())) {
  118. String bankcardpic = qiNiuService.getUrl(userInfo.getBankcardpic());
  119. userInfo.setBankcardpic(bankcardpic);
  120. }
  121. }
  122. ApiResult<UserInfo> apiResult = ApiResult.createSuccess(userInfo);
  123. LOG.info("调用获取用户信息(/certification/getUserInfo)接口成功");
  124. LOG.debug("调用获取用户信息(/certification/getUserInfo), apiResult:{}", apiResult);
  125. return apiResult;
  126. } catch (Exception e) {
  127. LOG.error("调用获取用户信息(/certification/getUserInfo)接口异常", e);
  128. return ApiResult.createFailure();
  129. }
  130. }
  131. @GetMapping("/getUserInfoBySaleId")
  132. public ApiResult getUserInfoBySaleId(String agentId,String saleId) {
  133. LOG.info("调用获取用户信息(/certification/getUserInfoBySaleId)接口");
  134. try {
  135. //获取销售员信息
  136. Sale sale=saleService.getSale(saleId);
  137. if(sale==null){
  138. LOG.info("销售员信息不存在");
  139. }
  140. UserInfo userInfo = certificationService.getUserInfoBySaleId(agentId,sale.getWxOpenId());
  141. if (userInfo != null) {
  142. if (StringUtils.isNotBlank(userInfo.getIdcarddfrontpic())) {
  143. String Idcarddfrontpic = qiNiuService.getUrl(userInfo.getIdcarddfrontpic());
  144. userInfo.setIdcarddfrontpic(Idcarddfrontpic);
  145. }
  146. if (StringUtils.isNotBlank(userInfo.getIdcarddbackpic())) {
  147. String Idcarddbackpic = qiNiuService.getUrl(userInfo.getIdcarddbackpic());
  148. userInfo.setIdcarddbackpic(Idcarddbackpic);
  149. }
  150. if (StringUtils.isNotBlank(userInfo.getPic())) {
  151. String pic = qiNiuService.getUrl(userInfo.getPic());
  152. userInfo.setPic(pic);
  153. }
  154. if (StringUtils.isNotBlank(userInfo.getBankcardpic())) {
  155. String bankcardpic = qiNiuService.getUrl(userInfo.getBankcardpic());
  156. userInfo.setBankcardpic(bankcardpic);
  157. }
  158. }
  159. ApiResult<UserInfo> apiResult = ApiResult.createSuccess(userInfo);
  160. LOG.info("调用获取用户信息(/certification/getUserInfoBySaleId)接口成功");
  161. LOG.debug("调用获取用户信息(/certification/getUserInfoBySaleId), apiResult:{}", apiResult);
  162. return apiResult;
  163. } catch (Exception e) {
  164. LOG.error("调用获取用户信息(/certification/getUserInfoBySaleId)接口异常", e);
  165. return ApiResult.createFailure();
  166. }
  167. }
  168. /**,
  169. * 四要素验证
  170. *
  171. */
  172. @PostMapping("/userVerification")
  173. public ApiResult userVerification(String name,
  174. String sex,
  175. String idCard,
  176. String birthday,
  177. String province,
  178. String city,
  179. String prefecture,
  180. String area,
  181. String addrCode,
  182. String accountNo,
  183. String mobile,
  184. String bank,
  185. String cardName,
  186. String cardType,
  187. String openId,
  188. String idCardDFrontPic,
  189. String idCardDBackPic,
  190. String cardValidity,
  191. String bankCardPic,
  192. String role,
  193. String pic,
  194. String agentId,
  195. String url,
  196. String verifyOpenId,
  197. String appId){
  198. UserInfo userInfo=new UserInfo();
  199. userInfo.setUsername(name);
  200. userInfo.setSex(sex);
  201. userInfo.setIdcard(idCard);
  202. userInfo.setBirthday(birthday);
  203. userInfo.setProvince(province);
  204. userInfo.setCity(city);
  205. userInfo.setPrefecture(prefecture);
  206. userInfo.setArea(area);
  207. userInfo.setAddrcode(addrCode);
  208. userInfo.setAccountno(accountNo);
  209. userInfo.setMobile(mobile);
  210. userInfo.setBank(bank);
  211. userInfo.setCardname(cardName);
  212. userInfo.setCardtype(cardType);
  213. userInfo.setUseropenid(openId);
  214. userInfo.setIdcarddfrontpic(idCardDFrontPic);
  215. userInfo.setIdcarddbackpic(idCardDBackPic);
  216. userInfo.setCardvalidity(cardValidity);
  217. userInfo.setRole(role);
  218. userInfo.setPic(pic);
  219. userInfo.setBankcardpic(bankCardPic);
  220. LOG.info("userInfo==="+userInfo);
  221. final Agent agent = agentService.getAgent(agentId);
  222. LOG.info("url==="+url);
  223. if (agent == null) {
  224. final ApiResult apiResult = ApiResult.createFailure();
  225. apiResult.setMessage("未查询到商家信息");
  226. return apiResult;
  227. }
  228. LOG.info("调用四要素验证(/userVerification/getUserVerification)接口");
  229. LOG.info("url=="+url);
  230. url=url+"?idCard="+userInfo.getIdcard()+"&agentId="+agentId+"&openId="+userInfo.getUseropenid();
  231. try {
  232. ApiResult res = certificationService.getUserVerifycation(
  233. userInfo,
  234. agent,
  235. url,
  236. verifyOpenId,
  237. appId);
  238. LOG.info("调用四要素验证(/userVerification/getUserVerification)接口成功");
  239. LOG.debug("调用四要素验证(/userVerification/getUserVerification), apiResult:{}", res);
  240. return res;
  241. } catch (Exception e) {
  242. LOG.error("调用四要素验证(/certification/getUserInfo)接口异常", e);
  243. return ApiResult.createFailure();
  244. }
  245. }
  246. /**
  247. * 身份证识别
  248. * FRONT:身份证含照片的一面;BACK:身份证带国徽的一面
  249. */
  250. @PostMapping("/idCardVerification")
  251. public ApiResult idCardVerification(String url,String img){
  252. LOG.info("调用身份证识别(/userVerification/idCardVerification)接口");
  253. try {
  254. //获取骑牛上传的url地址
  255. String path=qiNiuService.getUrl(url);
  256. ApiResult res = certificationService.checkIdCardVerification(path, img);
  257. LOG.info("调用身份证识别(/userVerification/idCardVerification)接口成功");
  258. LOG.debug("调用身份证识别(/certification/idCardVerification), apiResult:{}", res);
  259. return res;
  260. } catch (Exception e) {
  261. LOG.error("调用身份证识别(/certification/idCardVerification)接口异常", e);
  262. return ApiResult.createFailure();
  263. }
  264. }
  265. /**
  266. * 银行卡识别
  267. *
  268. */
  269. @PostMapping("/bankCardVerification")
  270. public ApiResult bankCardVerification(String url){
  271. LOG.info("调用银行卡识别(/userVerification/bankCardVerification)接口");
  272. try {
  273. //获取骑牛上传的url地址
  274. String path=qiNiuService.getUrl(url);
  275. ApiResult res = certificationService.bankCardVerification(path);
  276. LOG.info("调用银行卡识别(/userVerification/bankCardVerification)接口成功");
  277. LOG.debug("调用银行卡识别(/certification/bankCardVerification), apiResult:{}", res);
  278. return res;
  279. } catch (Exception e) {
  280. LOG.error("调用银行卡识别(/certification/bankCardVerification)接口异常", e);
  281. return ApiResult.createFailure();
  282. }
  283. }
  284. /**
  285. * 实名认证说明
  286. * @return apiResult
  287. */
  288. @GetMapping("/getExplain")
  289. public ApiResult getExplain(String idCard) {
  290. LOG.info("调用实名认证说明(/certification/getExplain)接口");
  291. try {
  292. ApiResult info = certificationService.getExplainInfo();
  293. LOG.info("调用实名认证说明(/certification/getExplain)接口成功");
  294. LOG.debug("调用实名认证说明(/certification/getExplain), apiResult:{}", info);
  295. return info;
  296. } catch (Exception e) {
  297. LOG.error("调用实名认证说明(/certification/getExplain)接口异常", e);
  298. return ApiResult.createFailure();
  299. }
  300. }
  301. /**
  302. * 保存实名认证信息
  303. * @return apiResult
  304. */
  305. @PostMapping("/saveUserInfo")
  306. public ApiResult saveUserInfo(String userName,
  307. String sex,
  308. String idcard,
  309. String birthday,
  310. String province,
  311. String city,
  312. String prefecture,
  313. String area,
  314. String addrCode,
  315. String account_no,
  316. String phone_no,
  317. String bank,
  318. String cardName,
  319. String cardType,
  320. String status,
  321. String openId,
  322. String idCardDFrontPic,
  323. String idCardDBackPic,
  324. String cardValidity,
  325. String role,
  326. String pic) {
  327. LOG.info("调用保存实名认证信息(/certification/saveUserInfo)接口");
  328. UserInfo info=new UserInfo();
  329. info.setUsername(userName);
  330. info.setSex(sex);
  331. info.setIdcard(idcard);
  332. info.setBirthday(birthday);
  333. info.setProvince(province);
  334. info.setCity(city);
  335. info.setPrefecture(prefecture);
  336. info.setArea(area);
  337. info.setAddrcode(addrCode);
  338. info.setAccountno(account_no);
  339. info.setMobile(phone_no);
  340. info.setBank(bank);
  341. info.setCardname(cardName);
  342. info.setCardtype(cardType);
  343. info.setStatus(status);
  344. info.setUseropenid(openId);
  345. info.setIdcarddfrontpic(idCardDFrontPic);
  346. info.setIdcarddbackpic(idCardDBackPic);
  347. info.setCardvalidity(cardValidity);
  348. info.setRole(role);
  349. info.setPic(pic);
  350. try {
  351. ApiResult apiResult = certificationService.saveUserInfo(info);
  352. LOG.info("apiResult="+apiResult);
  353. LOG.info("调用保存实名认证信息(/certification/saveUserInfo)接口成功");
  354. LOG.debug("调用保存实名认证信息(/certification/saveUserInfo), apiResult:{}", apiResult);
  355. return apiResult;
  356. } catch (Exception e) {
  357. LOG.error("调用保存实名认证信息(/certification/saveUserInfo)接口异常", e);
  358. return ApiResult.createFailure();
  359. }
  360. }
  361. /**
  362. * 查询实名认证列表
  363. * 1:待审核 2:实名认证通过
  364. */
  365. @GetMapping("/getUserVerificationList")
  366. public ApiResult getUserVerificationList(String status){
  367. ApiResult apiResult = certificationService.getUserVerificationList(status);
  368. LOG.info("apiResult="+apiResult);
  369. return apiResult;
  370. }
  371. /**
  372. * 审核消息模板推送 status:1-通过 2-不通过
  373. */
  374. @GetMapping("/sendTempMsg")
  375. public ApiResult sendTempMsg(String status,String reviewComments,String openId,String idCard,String agentId,String appId){
  376. final Agent agent = agentService.getAgent(agentId);
  377. LOG.info("agent==="+agent);
  378. if (agent == null) {
  379. final ApiResult apiResult = ApiResult.createFailure();
  380. apiResult.setMessage("未查询到商家信息");
  381. return apiResult;
  382. }
  383. String str = null;
  384. LOG.info("reviewComments==="+reviewComments);
  385. try {
  386. str = new String (reviewComments.getBytes("ISO8859-1"),"utf-8");
  387. } catch (UnsupportedEncodingException e) {
  388. e.printStackTrace();
  389. }
  390. LOG.info("reviewComments==="+str);
  391. ApiResult apiResult = certificationService.sendUserVerification(openId,str, status, agent, idCard, appId);
  392. LOG.info("apiResult="+apiResult);
  393. return apiResult;
  394. }
  395. }