FilmController.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.miaxis.app.controller.film;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.miaxis.common.config.WxpayConfig;
  4. import com.miaxis.common.constant.Constants;
  5. import com.miaxis.common.core.controller.BaseController;
  6. import com.miaxis.common.core.domain.Response;
  7. import com.miaxis.common.exception.CustomException;
  8. import com.miaxis.common.utils.SecurityUtils;
  9. import com.miaxis.feign.dto.FilmDTO;
  10. import com.miaxis.system.service.ISysConfigService;
  11. import com.miaxis.system.service.ISysDictDataService;
  12. import com.miaxis.wx.domain.WxOrder;
  13. import com.miaxis.wx.service.IWxOrderService;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import io.swagger.annotations.ApiParam;
  17. import lombok.RequiredArgsConstructor;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.apache.http.client.HttpClient;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.beans.factory.annotation.Value;
  22. import org.springframework.web.bind.annotation.*;
  23. import java.io.IOException;
  24. import java.util.Arrays;
  25. import static com.miaxis.common.constant.Constants.FILM_BLACK_LIST;
  26. /**
  27. * 【小程序-客户信息】Controller
  28. *
  29. * @author miaxis
  30. * @date 2021-03-10
  31. */
  32. @RestController
  33. @RequiredArgsConstructor
  34. @RequestMapping(Constants.STUDENT_PREFIX+"/wx/wxpay")
  35. @Api(tags = {"【小程序-电影】"})
  36. @Slf4j
  37. public class FilmController extends BaseController {
  38. @Autowired
  39. private HttpClient httpClient;
  40. @Autowired
  41. private WxpayConfig wxpayConfig;
  42. @Autowired
  43. private IWxOrderService wxOrderService;
  44. @Autowired
  45. private ISysConfigService configService;
  46. @Autowired
  47. private ISysDictDataService dictDataService;
  48. @Value("${app.appid}")
  49. private String appid;
  50. @Value("${wxpay.notifyUrl}")
  51. private String notifyUrl ;
  52. /**
  53. * 以form表单形式提交数据,发送post请求
  54. * @explain
  55. * 1.请求头:httppost.setHeader("Content-Type","application/x-www-form-urlencoded")
  56. * 2.提交的数据格式:key1=value1&key2=value2...
  57. * @return 服务器返回数据
  58. */
  59. @PostMapping(value = "/fileCommonApi")
  60. @ApiOperation("电影通用接口")
  61. public Response<JSONObject> httpPostWithForm(@RequestBody FilmDTO filmDTO) throws IOException {
  62. //检查api
  63. if (Arrays.asList(FILM_BLACK_LIST).contains(filmDTO.getUrl())){
  64. throw new CustomException("该api不允许用户直接访问");
  65. }
  66. // 用于接收返回的结果
  67. String resultData = wxOrderService.excuteFilmApi(filmDTO);
  68. return Response.success(JSONObject.parseObject(resultData));
  69. }
  70. /**
  71. * 获取电影订单详细信息
  72. */
  73. @GetMapping(value = "/{outTradeNo}")
  74. @ApiOperation("获取电影订单详细信息")
  75. public Response<WxOrder> getInfo(
  76. @ApiParam(name = "outTradeNo", value = "电影订单参数", required = true)
  77. @PathVariable("outTradeNo") String outTradeNo
  78. ){
  79. WxOrder wxOrder = wxOrderService.getByOutTradeNo(outTradeNo);
  80. if (!wxOrder.getOpenid().equals(SecurityUtils.getLoginUser().getStudent().getOpenid())){
  81. throw new CustomException("该用户无访问此订单权限");
  82. }
  83. return Response.success(wxOrder);
  84. }
  85. // /**
  86. // * 微信支付查单接口
  87. // */
  88. // @GetMapping(value = "/wxorder/{outTradeNo}")
  89. // @ApiOperation("根据订单号查询订单状态")
  90. // public Response<String> getOrderInfo(
  91. // @ApiParam(name = "outTradeNo", value = "商户订单号", required = true)
  92. // @PathVariable("outTradeNo") String outTradeNo
  93. // ) throws IOException {
  94. // HttpGet get = new HttpGet("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/"
  95. // +outTradeNo+"?mchid="+wxpayConfig.getMerchantId());
  96. // get.addHeader("Accept", "application/json");
  97. // HttpResponse response = httpClient.execute(get);
  98. // String bodyAsString = EntityUtils.toString(response.getEntity());
  99. // JSONObject jsonObject = JSONObject.parseObject(bodyAsString);
  100. // int statusCode = response.getStatusLine().getStatusCode();
  101. // if (statusCode == 200) {
  102. // return Response.success(jsonObject.getString("trade_state"));
  103. // } else {
  104. // throw new CustomException(EntityUtils.toString(response.getEntity()));
  105. // }
  106. // }
  107. }