ApiUserServiceImpl.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.jkcredit.invoice.hub.service.apiUser;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.jkcredit.invoice.hub.constant.CommonConstant;
  5. import com.jkcredit.invoice.hub.enums.ApiResponseCodeEnum;
  6. import com.jkcredit.invoice.hub.model.dto.userBalance.UserBalanceDto;
  7. import com.jkcredit.invoice.hub.model.po.user.UserPo;
  8. import com.jkcredit.invoice.hub.service.base.BaseService;
  9. import com.jkcredit.invoice.hub.service.user.UserService;
  10. import com.jkcredit.invoice.hub.service.userBalance.UserBalanceService;
  11. import com.jkcredit.invoice.hub.spi.lang.exception.ServiceException;
  12. import com.jkcredit.invoice.hub.spi.rest.data.ApiRequestParam;
  13. import com.jkcredit.invoice.hub.spi.rest.data.ApiResponseData;
  14. import com.jkcredit.invoice.hub.util.CommonUtil;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import org.thymeleaf.util.ArrayUtils;
  19. /**
  20. * @description: 接口用户信息验证
  21. * @author: xusonglin
  22. * @create: 2020/1/15 22:51
  23. * @version: V1.0
  24. **/
  25. @Slf4j
  26. @Service
  27. public class ApiUserServiceImpl extends BaseService implements ApiUserService {
  28. @Autowired
  29. UserService userService;
  30. @Autowired
  31. UserBalanceService userBalanceService;
  32. @Override
  33. public Integer validateUser(ApiRequestParam param) {
  34. // 无效用户
  35. UserPo userPo = userService.getUserByAppKey(param.getAppKey());
  36. if (userPo == null) {
  37. return ApiResponseCodeEnum.CODE_1000.getValue();
  38. } else if (!userPo.getAppSecret().equals(param.getAppSecret())) {
  39. return ApiResponseCodeEnum.CODE_1000.getValue();
  40. } else if (!ArrayUtils.contains(CommonConstant.CAR_FREE_API_ARGS, param.getApi())) {
  41. return ApiResponseCodeEnum.CODE_1080.getValue();
  42. } else if (CommonUtil.parseDouble(userPo.getBalance()) / CommonUtil.parseDouble(userPo.getPrice()) < CommonUtil.parseDouble(userPo.getPrice())) {
  43. return ApiResponseCodeEnum.CODE_1090.getValue();
  44. } else {
  45. JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(param.getData()));
  46. jsonObject.put("userId", userPo.getId());
  47. param.setData(jsonObject);
  48. return ApiResponseCodeEnum.CODE_200.getValue();
  49. }
  50. }
  51. @Override
  52. public ApiResponseData balanceQuery(JSONObject param) {
  53. try {
  54. UserBalanceDto dto = userBalanceService.getUserBalance(param.getLong("userId"));
  55. return ApiResponseData.success(ApiResponseCodeEnum.CODE_200.getValue(), JSON.toJSONString(dto));
  56. } catch (ServiceException se) {
  57. log.error("[-balanceQuery-] 错误信息:" + se.getMessage());
  58. throw new ServiceException(se.getMessage());
  59. }
  60. }
  61. }