소스 검색

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	zzjs-admin/src/main/java/com/miaxis/app/controller/film/FilmNotifyController.java
小么熊🐻 3 년 전
부모
커밋
35872a903a

+ 3 - 19
zzjs-admin/src/main/java/com/miaxis/app/controller/film/FilmNotifyController.java

@@ -5,8 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.miaxis.common.config.WxpayConfig;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.wx.domain.WxOrder;
-import com.miaxis.wx.dto.AiOrderNotifyDTO;
-import com.miaxis.wx.dto.WxOrderJsonData;
+import com.miaxis.wx.dto.FilmWxOrderJsonData;
 import com.miaxis.wx.dto.WxOrderNotifyDTO;
 import com.miaxis.wx.service.IRefundRecordService;
 import com.miaxis.wx.service.IWxOrderService;
@@ -50,13 +49,13 @@ public class FilmNotifyController {
     /**
      * 电影回调接口
      */
-    @PostMapping(value = "/wxOrder")
+    @PostMapping(value = "/filmOrder")
     @ApiOperation("电影订单回调")
     public FilmNotifyReturnDTO wxOrderNotify(WxOrderNotifyDTO wxOrderNotifyDTO ,String sign, String appKey) {
         WxOrder wxOrder = wxOrderService.getByOutTradeNo(wxOrderNotifyDTO.getThirdOrderId());
        //todo 检查sign
         String orderDataJson = wxOrder.getOrderDataJson();
-        WxOrderJsonData wxOrderJsonData = JSONObject.parseObject(orderDataJson, WxOrderJsonData.class);
+        FilmWxOrderJsonData wxOrderJsonData = JSONObject.parseObject(orderDataJson, FilmWxOrderJsonData.class);
         WxOrderNotifyDTO dbWxOrderNotifyDTO= wxOrderJsonData.getWxOrderNotifyDTO();
         if (dbWxOrderNotifyDTO == null){
             dbWxOrderNotifyDTO = wxOrderNotifyDTO;
@@ -111,19 +110,4 @@ public class FilmNotifyController {
         Boolean success;
     }
 
-
-    /**
-     * 爱奇艺回调
-     */
-    @PostMapping(value = "/aiqiyiOrderNotify")
-    @ApiOperation("电影订单回调")
-    public FilmNotifyReturnDTO wxOrderNotify(AiOrderNotifyDTO aiOrderNotifyDTO) {
-        System.out.println(aiOrderNotifyDTO);
-        FilmNotifyReturnDTO f = new FilmNotifyReturnDTO();
-        f.setCode("1");
-        f.setMessage("操作成功");
-        f.setSuccess(true);
-        return f;
-    }
-
 }

+ 9 - 12
zzjs-admin/src/main/java/com/miaxis/app/controller/wx/WxController.java

@@ -14,6 +14,7 @@ import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.common.utils.uuid.CommonUtils;
 import com.miaxis.wx.domain.WxOrder;
 import com.miaxis.wx.dto.WxOrderCreateDTO;
+import com.miaxis.wx.dto.FilmWxOrderJsonData;
 import com.miaxis.wx.dto.WxOrderJsonData;
 import com.miaxis.wx.dto.WxOrderListDTO;
 import com.miaxis.wx.service.IWxOrderService;
@@ -114,18 +115,12 @@ public class WxController extends BaseController {
         String goodsName = dictDataService.selectDictLabel("goods_type", wxOrderCreateDTO.getGoodsType());
         order.setGoodsType(wxOrderCreateDTO.getGoodsType());
         order.setGoodsPictureUrl(wxOrderCreateDTO.getGoodsPictureUrl());
-        WxOrderJsonData wxOrderJsonData = new WxOrderJsonData();
-        wxOrderCreateDTO.setThirdOrderId(orderCode);
-        wxOrderJsonData.setWxOrderCreateDTO(wxOrderCreateDTO);
-        //通过影院api 获取单票价格
-        Integer price = wxOrderService.getPrice(wxOrderCreateDTO.getCinemaId(),wxOrderCreateDTO.getShowId(),wxOrderCreateDTO.getTicketType(),wxOrderJsonData);
-        int number = wxOrderCreateDTO.getSeat().split(",").length;
-        order.setOrderDataJson(JSONObject.toJSONString(wxOrderJsonData));
-        order.setTotal(price*number);
+        //电影下单
+        if ("1".equals(wxOrderCreateDTO.getGoodsType()) ){
+            wxOrderService.createFilmOrder(order,wxOrderCreateDTO);
+        }
         wxOrderService.save(order);
 
-
-
         // 2 调用微信接口生成预订单
         ObjectNode rootNode = objectMapper.createObjectNode();
         rootNode.put("mchid",wxpayConfig.getMerchantId())
@@ -134,7 +129,7 @@ public class WxController extends BaseController {
                 .put("notify_url", notifyUrl)
                 .put("out_trade_no", orderCode);
         rootNode.putObject("amount")
-                .put("total", price*number);
+                .put("total", order.getTotal());
         rootNode.putObject("payer")
                 .put("openid", student.getOpenid());
         objectMapper.writeValue(bos, rootNode);
@@ -182,7 +177,7 @@ public class WxController extends BaseController {
      * 获取微信订单详细信息
      */
     @GetMapping(value = "/{outTradeNo}")
-    @ApiOperation("获取电影订单详细信息")
+    @ApiOperation("获取微信订单详细信息")
     public Response<WxOrder> getInfo(
             @ApiParam(name = "outTradeNo", value = "商家订单号", required = true)
             @PathVariable("outTradeNo") String outTradeNo
@@ -199,4 +194,6 @@ public class WxController extends BaseController {
 
 
 
+
+
 }

+ 7 - 36
zzjs-admin/src/main/java/com/miaxis/app/controller/wx/WxNotifyController.java

@@ -77,8 +77,7 @@ public class WxNotifyController {
     public WxNotifyReturnDTO wxpayNotify(@RequestBody FilmWxpayDTO filmWxpayDTO, HttpServletRequest request) throws GeneralSecurityException, IOException {
 
         String bodyString = getBodyString(request);
-        Boolean pass =  validate(request,bodyString);
-        if (!pass){
+        if (!validate(request,bodyString)){
             throw new CustomException("签名失败");
         }
         String resourceString = getSourString(filmWxpayDTO);
@@ -156,7 +155,11 @@ public class WxNotifyController {
      */
     @PostMapping(value = "/refund")
     @ApiOperation("微信退款回调")
-    public WxNotifyReturnDTO refundNotify(@RequestBody FilmWxpayDTO filmWxpayDTO) throws GeneralSecurityException, IOException {
+    public WxNotifyReturnDTO refundNotify(@RequestBody FilmWxpayDTO filmWxpayDTO, HttpServletRequest request) throws GeneralSecurityException, IOException {
+        String bodyString = getBodyString(request);
+//        if (!validate(request,bodyString)){
+//            throw new CustomException("签名失败");
+//        }
         String resourceString = getSourString(filmWxpayDTO);
         log.info(resourceString);
         JSONObject jsonObject = JSONObject.parseObject(resourceString);
@@ -186,38 +189,6 @@ public class WxNotifyController {
 
 
 
-    /**
-     * 电影下单测试
-     */
-    @PostMapping(value = "/wxOrder-test")
-    @ApiOperation("电影订单下单测试")
-    public Response<String> wxOrderNotifytest(String outTradeNo) throws GeneralSecurityException, IOException {
-        String s = "";
-        WxOrder wxOrder1 = wxOrderService.getByOutTradeNo(outTradeNo);
-        FilmDTO filmDTO = new FilmDTO();
-        filmDTO.setUrl("api/order/create");
-        StringBuffer paramData =  new StringBuffer();
-        WxOrderJsonData wxOrderJsonData = JSONObject.parseObject(wxOrder1.getOrderDataJson(), WxOrderJsonData.class);
-        WxOrderCreateDTO wxOrder = wxOrderJsonData.getWxOrderCreateDTO();
-        paramData.append("showId="+wxOrder.getShowId()+"&");
-        paramData.append("seat="+wxOrder.getSeat()+"&");
-        if (wxOrder.getReservedPhone() != null){
-            paramData.append("reservedPhone="+wxOrder.getReservedPhone()+"&");
-        }
-        paramData.append("thirdOrderId="+wxOrder.getThirdOrderId()+"&");
-        paramData.append("notifyUrl="+notifyUrl+"&");
-        if (wxOrder.getSeatId() != null){
-            paramData.append("seatId="+wxOrder.getSeatId()+"&");
-        }
-        if (wxOrder.getSeatNo() != null){
-            paramData.append("seatNo="+wxOrder.getSeatNo()+"&");
-        }
-        paramData.append("acceptChangeSeat="+wxOrder.getAcceptChangeSeat());
-        filmDTO.setParamData(paramData.toString());
-         s = wxOrderService.excuteFilmApi(filmDTO);
-        log.info("电影下单返回值:"+s);
-        return  Response.success(s);
-    }
 
 
 
@@ -248,7 +219,7 @@ public class WxNotifyController {
         }
         //如果订单还未下过电影票订单,则异步调用电影下单api
         String  orderDataJson= wxOrder.getOrderDataJson();
-        WxOrderJsonData wxOrderJsonData = JSONObject.parseObject(orderDataJson, WxOrderJsonData.class);
+        FilmWxOrderJsonData wxOrderJsonData = JSONObject.parseObject(orderDataJson, FilmWxOrderJsonData.class);
         if (wxOrderJsonData != null && wxOrderJsonData.getWxOrderNotifyDTO() == null){
             threadPoolTaskExecutor.execute(new Runnable() {
                 @Override

+ 1 - 1
zzjs-admin/src/main/resources/application-dev.yml

@@ -117,7 +117,7 @@ wxpay:
 film:
     appKey: 10000000000
     appSecret: 25f9e794323b453885f5181f1b624d0b
-    notifyUrl: http://218.85.55.253:65535/zzjs-admin/open-api/wx/notify/wxOrder
+    notifyUrl: http://218.85.55.253:65535/zzjs-admin/open-api/film/notify/filmOrder
     v1Url: http://movieapi-test.taototo.cn/
     v2Url: http://movieapi2-test.taototo.cn/
 

+ 2 - 2
zzjs-admin/src/main/resources/application-prod.yml

@@ -117,7 +117,7 @@ wxpay:
 film:
     appKey: 10294472736
     appSecret: n8qV2tsBKN6JQ4nMtycPa8e7
-    notifyUrl: http://admin.zzxcx.net/prod-api/open-api/wx/notify/wxOrder
+    notifyUrl: http://admin.zzxcx.net/prod-api/open-api/film/notify/filmOrder
     v1Url: http://movieapi.pintoto.cn/
     v2Url: http://movieapi2.pintoto.cn/
 
@@ -138,4 +138,4 @@ mei:
 # 挖数据平台
 wai:
     appid: "7629"
-    secret: "cce08fcab10ff96a863892bb6e396a9e"
+    secret: "cce08fcab10ff96a863892bb6e396a9e"

+ 9 - 0
zzjs-admin/src/test/java/com/miaxis/test/NormalTest.java

@@ -43,6 +43,15 @@ public class NormalTest {
 
     }
 
+    public static void main(String[] args) {
+        Integer a =1;
+        do1(a);
+        System.out.println(a);
+    }
+    public static void  do1(Integer a){
+        a =2 ;
+    }
+
 
 
 

+ 2 - 2
zzjs-service/src/main/java/com/miaxis/wx/domain/WxOrder.java

@@ -18,8 +18,8 @@ import java.util.Date;
  * @date 2021-05-07
  */
 @Data
-@TableName("film_order")
-@ApiModel(value = "WxOrder", description = "电影订单对象 film_order")
+@TableName("wx_order")
+@ApiModel(value = "WxOrder", description = "微信订单对象 wx_order")
 public class WxOrder extends BaseBusinessEntity{
     private static final long serialVersionUID = 1L;
 

+ 27 - 0
zzjs-service/src/main/java/com/miaxis/wx/dto/FilmWxOrderJsonData.java

@@ -0,0 +1,27 @@
+package com.miaxis.wx.dto;
+
+import com.miaxis.feign.dto.FilmMcpData;
+import lombok.Data;
+
+/**
+ * 电影数据
+ */
+@Data
+public class FilmWxOrderJsonData extends WxOrderJsonData{
+    private static final long serialVersionUID = 1L;
+
+    //电影排场信息
+    private CinemaData cinemaData;
+    //电影订单回调信息
+    private WxOrderNotifyDTO wxOrderNotifyDTO ;
+    //快速出票
+    private FilmMcpData filmMcpData;
+
+
+
+
+
+
+
+
+}

+ 3 - 8
zzjs-service/src/main/java/com/miaxis/wx/dto/WxOrderJsonData.java

@@ -4,20 +4,15 @@ import com.miaxis.feign.dto.FilmMcpData;
 import lombok.Data;
 
 /**
- * 微信支付回调 dto
+ * 电影数据
  */
 @Data
 public class WxOrderJsonData {
     private static final long serialVersionUID = 1L;
 
-    //下单字段
+    //微信下单对象
     private  WxOrderCreateDTO wxOrderCreateDTO;
-    //电影排场信息
-    private CinemaData cinemaData;
-    //电影订单回调信息
-    private WxOrderNotifyDTO wxOrderNotifyDTO ;
-    //快速出票
-    private FilmMcpData filmMcpData;
+
 
 
 

+ 5 - 2
zzjs-service/src/main/java/com/miaxis/wx/service/IWxOrderService.java

@@ -5,7 +5,8 @@ import java.util.List;
 import com.miaxis.feign.dto.FilmDTO;
 import com.miaxis.wx.domain.WxOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.miaxis.wx.dto.WxOrderJsonData;
+import com.miaxis.wx.dto.FilmWxOrderJsonData;
+import com.miaxis.wx.dto.WxOrderCreateDTO;
 import com.miaxis.wx.dto.WxOrderListDTO;
 
 /**
@@ -30,5 +31,7 @@ public interface IWxOrderService extends IService<WxOrder>{
     List<WxOrder> selectOrderList(WxOrderListDTO wxOrderListDTO);
 
 
-    Integer getPrice(String cinemaId, String showId, int ticketType, WxOrderJsonData wxOrderJsonData);
+    Integer getPrice(String cinemaId, String showId, int ticketType, FilmWxOrderJsonData wxOrderJsonData);
+
+    void createFilmOrder(WxOrder order, WxOrderCreateDTO wxOrderCreateDTO);
 }

+ 3 - 2
zzjs-service/src/main/java/com/miaxis/wx/service/impl/RefundRecordServiceImpl.java

@@ -79,8 +79,9 @@ public class RefundRecordServiceImpl extends ServiceImpl<RefundRecordMapper, Ref
             //  保存退款数据到数据库
             RefundRecord refundRecord = new RefundRecord();
             JSONObject jsonObject = JSONObject.parseObject(bodyAsString);
-            refundRecord.setOutRefundNo(jsonObject.getString("refund_id"));
-            refundRecord.setTransactionId(jsonObject.getString("out_refund_no"));
+            refundRecord.setRefundId(jsonObject.getString("refund_id"));
+            refundRecord.setOutRefundNo(jsonObject.getString("out_refund_no"));
+            refundRecord.setTransactionId(jsonObject.getString("transaction_id"));
             refundRecord.setOutTradeNo(jsonObject.getString("out_trade_no"));
             refundRecord.setChannel(jsonObject.getString("channel"));
             refundRecord.setUserReceivedAccount(jsonObject.getString("user_received_account"));

+ 13 - 6
zzjs-service/src/main/java/com/miaxis/wx/service/impl/WxOrderServiceImpl.java

@@ -14,9 +14,7 @@ import com.miaxis.common.config.WxpayConfig;
 import com.miaxis.common.sms.MD5Utils;
 import com.miaxis.common.utils.StringUtils;
 import com.miaxis.feign.dto.FilmDTO;
-import com.miaxis.wx.dto.CinemaData;
-import com.miaxis.wx.dto.WxOrderJsonData;
-import com.miaxis.wx.dto.WxOrderListDTO;
+import com.miaxis.wx.dto.*;
 import com.miaxis.system.service.ISysConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpResponse;
@@ -48,8 +46,6 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
     @Resource
     private WxOrderMapper wxOrderMapper;
 
-    @Autowired
-    private WxpayConfig wxpayConfig;
 
     @Autowired
     private ISysConfigService configService;
@@ -160,7 +156,7 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
     }
 
     @Override
-    public Integer getPrice(String cinemaId, String showId, int ticketType, WxOrderJsonData wxOrderJsonData) {
+    public Integer getPrice(String cinemaId, String showId, int ticketType, FilmWxOrderJsonData wxOrderJsonData) {
 
         FilmDTO filmDTO = new FilmDTO();
         filmDTO.setUrl("movieapi/movie-info/get-schedule-list");
@@ -195,4 +191,15 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
 
 
     }
+
+    @Override
+    public void createFilmOrder(WxOrder order, WxOrderCreateDTO wxOrderCreateDTO) {
+        FilmWxOrderJsonData filmWxOrderJsonData = new FilmWxOrderJsonData();
+        wxOrderCreateDTO.setThirdOrderId(order.getOutTradeNo());
+        filmWxOrderJsonData.setWxOrderCreateDTO(wxOrderCreateDTO);
+        Integer price = getPrice(wxOrderCreateDTO.getCinemaId(),wxOrderCreateDTO.getShowId(),wxOrderCreateDTO.getTicketType(),filmWxOrderJsonData);
+        int number = wxOrderCreateDTO.getSeat().split(",").length;
+        order.setOrderDataJson(JSONObject.toJSONString(filmWxOrderJsonData));
+        order.setTotal(price*number);
+    }
 }

+ 2 - 1
zzjs-service/src/main/resources/mapper/film/RefundRecordMapper.xml → zzjs-service/src/main/resources/mapper/wx/RefundRecordMapper.xml

@@ -54,8 +54,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
-    <select id="getByRefundId" resultType="com.miaxis.wx.domain.RefundRecord">
+    <select id="getByRefundId" parameterType="string" resultType="com.miaxis.wx.domain.RefundRecord">
         select * from refund_record where refund_id =#{refundId}
     </select>
 
+
 </mapper>

+ 3 - 3
zzjs-service/src/main/resources/mapper/film/FilmOrderMapper.xml → zzjs-service/src/main/resources/mapper/wx/WxOrderMapper.xml

@@ -37,11 +37,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectWxOrderVo">
-        select * from film_order
+        select * from wx_order
     </sql>
 
     <select id="getByOutTradeNo" parameterType="string" resultType="com.miaxis.wx.domain.WxOrder">
-         select * from film_order where out_trade_no =#{outTradeNo}
+         select * from wx_order where out_trade_no =#{outTradeNo}
     </select>
 
 
@@ -79,7 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
     <select id="selectOrderList" resultType="com.miaxis.wx.domain.WxOrder">
-        select * from film_order
+        select * from wx_order
          where openid=#{openid} and trade_state ='SUCCESS'
         <if test="days != null  and days != ''">
             and  DATE_SUB(CURDATE(), INTERVAL #{days} DAY) &lt;= date(create_time)