|
@@ -6,6 +6,8 @@ import com.miaxis.common.config.WxpayConfig;
|
|
import com.miaxis.common.constant.Constants;
|
|
import com.miaxis.common.constant.Constants;
|
|
import com.miaxis.common.enums.OrderStatusEnum;
|
|
import com.miaxis.common.enums.OrderStatusEnum;
|
|
import com.miaxis.common.exception.CustomException;
|
|
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.domain.WxOrder;
|
|
import com.miaxis.wx.dto.FilmWxOrderJsonData;
|
|
import com.miaxis.wx.dto.FilmWxOrderJsonData;
|
|
import com.miaxis.wx.dto.FuluWxOrderJsonData;
|
|
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.dto.WxOrderNotifyDTO;
|
|
import com.miaxis.wx.service.IRefundRecordService;
|
|
import com.miaxis.wx.service.IRefundRecordService;
|
|
import com.miaxis.wx.service.IWxOrderService;
|
|
import com.miaxis.wx.service.IWxOrderService;
|
|
|
|
+import com.miaxis.wx.service.IWxXcxMessageService;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import lombok.Data;
|
|
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.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
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;
|
|
import static com.miaxis.common.utils.OrderCodeFactory.getOrderCode;
|
|
|
|
|
|
@RestController
|
|
@RestController
|
|
@@ -47,6 +54,12 @@ public class FuluNotifyController {
|
|
@Autowired
|
|
@Autowired
|
|
private IRefundRecordService refundRecordService;
|
|
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);
|
|
fuluWxOrderJsonData.setWxFuluOrderDetailDTO(dbWxFuluOrderDetailDTO);
|
|
wxOrder.setOrderDataJson(fuluWxOrderJsonData.toString());
|
|
wxOrder.setOrderDataJson(fuluWxOrderJsonData.toString());
|
|
wxOrderService.updateById(wxOrder);
|
|
wxOrderService.updateById(wxOrder);
|
|
@@ -92,6 +124,41 @@ public class FuluNotifyController {
|
|
return filmNotifyReturnDTO;
|
|
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
|
|
@Data
|