|
@@ -2097,6 +2097,145 @@ public class TOrderController {
|
|
|
|
|
|
return "SUCCESS";
|
|
|
}
|
|
|
+ /**
|
|
|
+ * MG280支付成功回调
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/mg280Notify", method = RequestMethod.GET)
|
|
|
+ @ResponseBody
|
|
|
+ public Object mg280Notify(HttpServletRequest request) {
|
|
|
+
|
|
|
+ String r6_Status = request.getParameter("r6_Status");
|
|
|
+
|
|
|
+ // 订单号
|
|
|
+ String sn = request.getParameter("r2_OrderNo");
|
|
|
+ LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
|
|
|
+ query.eq(TOrder::getSn,sn);
|
|
|
+ List<TOrder> list = orderService.list();
|
|
|
+ TOrder order = new TOrder();
|
|
|
+
|
|
|
+
|
|
|
+ if (JoinpayConstant.r6_Status_100.equals(r6_Status)) {
|
|
|
+
|
|
|
+ // 已支付
|
|
|
+ order.setStatus(1);
|
|
|
+
|
|
|
+ // 支付平台产生的流水号
|
|
|
+ String r7_TrxNo = request.getParameter("r7_TrxNo");
|
|
|
+ order.setTrxNo(r7_TrxNo);
|
|
|
+
|
|
|
+ // 格式:YYYY-MM-DD HH:mm:ss
|
|
|
+ String ra_PayTime = request.getParameter("ra_PayTime");
|
|
|
+
|
|
|
+ try {
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ Date payDate = sdf.parse(URLDecoder.decode(ra_PayTime, "UTF-8"));
|
|
|
+ order.setPayDate(payDate);
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ orderService.updateById(order);
|
|
|
+
|
|
|
+ JSONObject kindData = new JSONObject();
|
|
|
+ kindData.put("sn", order.getSn());
|
|
|
+ kindData.put("productName", order.getProductName());
|
|
|
+
|
|
|
+ TEquipment byClientId = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(order.getClientId()));
|
|
|
+ String gtClientId = byClientId.getGtClientId();
|
|
|
+ Date endDate = byClientId.getEndDate();
|
|
|
+ Date date = new Date();
|
|
|
+ Date time = null;
|
|
|
+ double price1Price = 0;
|
|
|
+ BigDecimal price = order.getPrice();
|
|
|
+// List<Price> priceList = priceService.findAll();
|
|
|
+// for (Price price1 : priceList) {
|
|
|
+// if (price1.getName().equals("MG280")) {
|
|
|
+// price1Price = price1.getPrice();
|
|
|
+// }
|
|
|
+// }
|
|
|
+ TPrice price1 = R.getDataIfSuccess(szwlFeign.getPrice("MG280"));
|
|
|
+ price1Price = price1.getPrice();
|
|
|
+ BigDecimal city = price.divide(BigDecimal.valueOf(price1Price));
|
|
|
+ int ci = city.intValue();
|
|
|
+ if (endDate.getTime() < date.getTime()) {
|
|
|
+ Calendar c = Calendar.getInstance();
|
|
|
+ c.setTime(date);
|
|
|
+ int i = c.get(Calendar.MONTH);
|
|
|
+ c.set(Calendar.MONTH, i - 1);
|
|
|
+ //上个月有多少天
|
|
|
+ int actualMaximum = c.getActualMaximum(Calendar.DAY_OF_MONTH);
|
|
|
+ long t = date.getTime() - endDate.getTime();
|
|
|
+ long m = actualMaximum * 1000 * 60 * 60 * 24l;
|
|
|
+ if (t <= m) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(endDate);
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH, 10);
|
|
|
+ //将小时至0
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ //将分钟至0
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ //将秒至0
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ //将毫秒至0
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
+ calendar.add(Calendar.MONTH, ci);
|
|
|
+ time = calendar.getTime();
|
|
|
+ }
|
|
|
+ if (t > m) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH, 10);
|
|
|
+ //将小时至0
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ //将分钟至0
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ //将秒至0
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ //将毫秒至0
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
+ calendar.add(Calendar.MONTH, ci);
|
|
|
+ time = calendar.getTime();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(endDate);
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH, 10);
|
|
|
+ //将小时至0
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ //将分钟至0
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ //将秒至0
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ //将毫秒至0
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
+ calendar.add(Calendar.MONTH, ci);
|
|
|
+ time = calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ byClientId.setEndDate(time);
|
|
|
+ //修改机器
|
|
|
+ szwlFeign.updateByEquipment(byClientId);
|
|
|
+ order.setNote(gtClientId + "已推送");
|
|
|
+ orderService.updateById(order);
|
|
|
+ equipmentService.sentMessage(byClientId.getClientId(),PushUtils.buildJson("endDate", String.valueOf(byClientId.getEndDate().getTime())).toString());
|
|
|
+// PushUtils.push(byClientId.getGtClientId(), "", "", PushUtils.buildJson("endDate", String.valueOf(byClientId.getEndDate().getTime())).toString());
|
|
|
+ return "success";
|
|
|
+ } else {
|
|
|
+ TEquipment byClientId = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(order.getClientId()));
|
|
|
+ String gtClientId = byClientId.getGtClientId();
|
|
|
+ JSONObject kindData = new JSONObject();
|
|
|
+ kindData.put("sn", order.getSn());
|
|
|
+ order.setNote(gtClientId + "支付失败");
|
|
|
+ orderService.updateById(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ return "success";
|
|
|
+ }
|
|
|
//生成二维码,并返回base64格式
|
|
|
private String toQrcode(String code) {
|
|
|
String imgtext = null;
|
|
@@ -2117,6 +2256,53 @@ public class TOrderController {
|
|
|
return imgtext;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 退款成功回调
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/notifyRefund", method = RequestMethod.GET)
|
|
|
+ @ResponseBody
|
|
|
+ public Object notifyRefund(HttpServletRequest request) {
|
|
|
+
|
|
|
+ String r6_Status = request.getParameter("ra_Status");
|
|
|
+
|
|
|
+ // 订单号
|
|
|
+ String sn = request.getParameter("r2_OrderNo");
|
|
|
+ LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
|
|
|
+ query.eq(TOrder::getSn,sn);
|
|
|
+ List<TOrder> list = orderService.list();
|
|
|
+ TOrder order = new TOrder();
|
|
|
+ if (order == null) {
|
|
|
+ return "success";
|
|
|
+ }
|
|
|
+ if (order.getStatus() != 3) {
|
|
|
+ return "success";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (JoinpayConstant.r6_Status_100.equals(r6_Status)) {
|
|
|
+
|
|
|
+ // 已退款
|
|
|
+ order.setStatus(3);
|
|
|
+ // 退款金额
|
|
|
+ order.setRefundAmount(new BigDecimal(request.getParameter("r4_RefundAmount_str")));
|
|
|
+ // 支付平台产生的退款流水号
|
|
|
+ String r5_RefundTrxNo = request.getParameter("r5_RefundTrxNo");
|
|
|
+ order.setRefundTrxNo(r5_RefundTrxNo);
|
|
|
+ order.setRefundDate(new Date());
|
|
|
+ order.setModifyDate(new Date());
|
|
|
+ orderService.updateById(order);
|
|
|
+ try {
|
|
|
+ esTOrderService.updateDataById(order);
|
|
|
+ }catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return "success";
|
|
|
+ }
|
|
|
+
|
|
|
+ return "success";
|
|
|
+ }
|
|
|
@ApiOperation(value = "添加订单")
|
|
|
@PostMapping("/addOrder")
|
|
|
public ResponseModel<?> addOrder(@RequestBody TOrder order) {
|
|
@@ -2232,5 +2418,125 @@ public class TOrderController {
|
|
|
return "success";
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询订单是否付款
|
|
|
+ *
|
|
|
+ * @param
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/getOrderStatus", method = RequestMethod.GET)
|
|
|
+ @ResponseBody
|
|
|
+ public JsonMessage getOrderStatus(String sn) {
|
|
|
+ LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
|
|
|
+ query.eq(TOrder::getSn,sn);
|
|
|
+ List<TOrder> list = orderService.list(query);
|
|
|
+ TOrder order = list.get(0);
|
|
|
+ Integer status = order.getStatus();
|
|
|
+ String sta = status.toString();
|
|
|
+ if(status==1){
|
|
|
+ sta="pay";
|
|
|
+ }
|
|
|
+ return JsonMessage.success(sta);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除订单
|
|
|
+ *
|
|
|
+ * @param
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/deleteOrder", method = RequestMethod.GET)
|
|
|
+ @ResponseBody
|
|
|
+ public JsonMessage deleteOrder(String sn) {
|
|
|
+ LambdaQueryWrapper<TOrder> query = Wrappers.lambdaQuery();
|
|
|
+ query.eq(TOrder::getSn,sn);
|
|
|
+ List<TOrder> list = orderService.list(query);
|
|
|
+ TOrder order = list.get(0);
|
|
|
+ Integer status = order.getStatus();
|
|
|
+ String ss = status.toString();
|
|
|
+ if (status==0) {
|
|
|
+ orderService.removeById(order.getId());
|
|
|
+ return JsonMessage.success(sn + "删除成功");
|
|
|
+ }
|
|
|
+// return JsonMessage.success(sn + "删除失败");
|
|
|
+
|
|
|
+ return JsonMessage.success(sn + "删除成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加订单
|
|
|
+ *
|
|
|
+ * @param clientId 设备client id
|
|
|
+ * @param productName 商品名称
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/addOrder", method = RequestMethod.GET)
|
|
|
+ @ResponseBody
|
|
|
+ public Object addOrder(String clientId, String productName, String pri,String sn) {
|
|
|
+
|
|
|
+ TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
|
|
|
+ if (equipment == null) {
|
|
|
+ return JsonMessage.error("找不到设备");
|
|
|
+ }
|
|
|
+ Long equipmentId = equipment.getId();
|
|
|
+ BigDecimal price = new BigDecimal(pri);
|
|
|
+// TAdmin admin = adminService.find(equipment.getAdminId());
|
|
|
+ TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdmin(String.valueOf(equipment.getAdminId())));
|
|
|
+ if (admin == null) {
|
|
|
+ return JsonMessage.error("找不到设备商家");
|
|
|
+ }
|
|
|
+ JSONArray altInfo = new JSONArray();
|
|
|
+
|
|
|
+
|
|
|
+// Long agencyId = admin.getAgencyId();
|
|
|
+// Long merchantId = admin.getMerchantId();
|
|
|
+// Long personageId = admin.getPersonageId();
|
|
|
+// Admin.Type type = admin.getType();
|
|
|
+// Order.Type orderType = null;
|
|
|
+ String orderType = null;
|
|
|
+ TProportion proportion = R.getDataIfSuccess(szwlFeign.getProportion(String.valueOf(equipment.getId())));
|
|
|
+ Integer type = proportion.getType();
|
|
|
+ switch (type) {
|
|
|
+
|
|
|
+ case 2:
|
|
|
+ orderType = "1";
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ orderType = "2";
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ orderType = "3";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+// TOrder order = new TOrder(sn, null, productName, price, equipment.getClientId(), equipmentId,
|
|
|
+// orderType, admin.getId(), agencyId, merchantId, personageId,
|
|
|
+// null, altInfo.toString(), null, null, null, null, Order.Status.pay);
|
|
|
+
|
|
|
+ TProduct product = R.getDataIfSuccess(szwlFeign.getProduct(String.valueOf(equipmentId), productName));
|
|
|
+ TOrder order = new TOrder();
|
|
|
+ order.setCreateDate(new Date());
|
|
|
+ order.setModifyDate(new Date());
|
|
|
+ order.setAdminId(admin.getId());
|
|
|
+ order.setSn(sn);
|
|
|
+ order.setProductId(product.getId());
|
|
|
+ order.setProductNo(product.getNo());
|
|
|
+ order.setProductName(productName);
|
|
|
+ order.setPrice(price);
|
|
|
+ order.setClientId(equipment.getClientId());
|
|
|
+ order.setEquipmentId(equipmentId);
|
|
|
+ order.setAltInfo(altInfo.toString());
|
|
|
+ order.setStatus(1);
|
|
|
+ order.setType(type);
|
|
|
+ orderService.save(order);
|
|
|
+ try {
|
|
|
+ esTOrderService.insertData(order);
|
|
|
+ }catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return JsonMessage.success("success");
|
|
|
+ }
|
|
|
}
|
|
|
|