Althars123 3 years ago
parent
commit
9feb49bf25

+ 67 - 0
zzjs-admin/src/main/java/com/miaxis/app/controller/fulu/FuluNotifyController.java

@@ -6,6 +6,8 @@ import com.miaxis.common.config.WxpayConfig;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.enums.OrderStatusEnum;
 import com.miaxis.common.exception.CustomException;
+import com.miaxis.feign.dto.WxSend;
+import com.miaxis.feign.service.IWxSendService;
 import com.miaxis.wx.domain.WxOrder;
 import com.miaxis.wx.dto.FilmWxOrderJsonData;
 import com.miaxis.wx.dto.FuluWxOrderJsonData;
@@ -13,6 +15,7 @@ import com.miaxis.wx.dto.WxFuluOrderDetailDTO;
 import com.miaxis.wx.dto.WxOrderNotifyDTO;
 import com.miaxis.wx.service.IRefundRecordService;
 import com.miaxis.wx.service.IWxOrderService;
+import com.miaxis.wx.service.IWxXcxMessageService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.Data;
@@ -24,6 +27,10 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
 import static com.miaxis.common.utils.OrderCodeFactory.getOrderCode;
 
 @RestController
@@ -47,6 +54,12 @@ public class FuluNotifyController {
     @Autowired
     private  IRefundRecordService  refundRecordService;
 
+    @Autowired
+    IWxXcxMessageService wxXcxMessageService;
+
+    @Resource
+    private IWxSendService wxSendService;
+
 
 
     /**
@@ -81,6 +94,25 @@ public class FuluNotifyController {
                 }
             });
         }
+
+        //如果订单成功,则调用小程序推送
+        if ("success".equals(wxFuluOrderDetailDTO.getOrder_status())){
+            wxOrder.setOrderStatus(OrderStatusEnum.SUCCESS.getCode());
+            threadPoolTaskExecutor.execute(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        sendXcxMessage(wxOrder);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        throw new CustomException("订单:"+wxOrder.getOutTradeNo()+"推送消息失败");
+                    }
+                }
+            });
+        }
+
+
+
         fuluWxOrderJsonData.setWxFuluOrderDetailDTO(dbWxFuluOrderDetailDTO);
         wxOrder.setOrderDataJson(fuluWxOrderJsonData.toString());
         wxOrderService.updateById(wxOrder);
@@ -92,6 +124,41 @@ public class FuluNotifyController {
         return filmNotifyReturnDTO;
     }
 
+    private void sendXcxMessage(WxOrder wxOrder) {
+        String xcxMessageToken = wxXcxMessageService.getXcxMessageToken();
+        WxSend wxSend = new WxSend();
+        String openid = wxOrder.getOpenid();
+        wxSend.setTouser(openid);
+        wxSend.setTemplate_id("Q4-tQrDwtzFUSLt_PR2kuTxBJ3d62V4Yp2iwx4PAcIE");
+        wxSend.setPage("/pages/fulu/orderdes?outTradeNo="+wxOrder.getOutTradeNo());
+
+        JSONObject jsonObject = new JSONObject();
+        JSONObject jsonObject1 = new JSONObject();
+        JSONObject jsonObject2 = new JSONObject();
+        JSONObject jsonObject3 = new JSONObject();
+        JSONObject jsonObject4 = new JSONObject();
+        JSONObject jsonObject5 = new JSONObject();
+
+        jsonObject1.put("value",wxOrder.getOutTradeNo());
+        jsonObject2.put("value","¥"+wxOrder.getTotal()/100.0);
+        jsonObject3.put("value",new SimpleDateFormat("yyyy年MM月dd日 HH:mm").format(new Date()));
+        jsonObject4.put("value","视频会员");
+        jsonObject5.put("value","点击查看详情");
+
+        jsonObject.put("character_string1",jsonObject1);
+        jsonObject.put("amount3",jsonObject2);
+        jsonObject.put("date4",jsonObject3);
+        jsonObject.put("thing6",jsonObject4);
+        jsonObject.put("thing5",jsonObject5);
+
+
+        wxSend.setData(jsonObject);
+
+        wxSend.setLang("zh_CN");
+        String result = wxSendService.sendMessage(xcxMessageToken,wxSend);
+        log.info("小程序推送请求数据返回值,订单号"+result);
+    }
+
 
 
     @Data