Преглед изворни кода

feat: "删除orderAbroad表,将之合并到coinOrder,增加isAir字段,将saveCoinOrder接口转移到orderServer"

wangzeyu@tom.com пре 2 година
родитељ
комит
312d86c956

+ 32 - 25
src/main/java/com/szwl/controller/AirwallexPayController.java

@@ -15,7 +15,7 @@ import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.dto.*;
 import com.szwl.model.entity.TAirwallexPayment;
-import com.szwl.model.entity.TOrderAbroad;
+import com.szwl.model.entity.TCoinOrder;
 import com.szwl.model.utils.AccessTokenThreadUtil;
 import com.szwl.service.*;
 import io.swagger.annotations.Api;
@@ -44,14 +44,14 @@ public class AirwallexPayController {
 
     AirwallexService airwallexService;
 
-    TOrderAbroadService tOrderAbroadService;
+    TCoinOrderService tCoinOrderService;
 
     TAirwallexPaymentService tAirwallexPaymentService;
 
-    public AirwallexPayController(TAdminService tAdminService, AirwallexService airwallexService, TOrderAbroadService tOrderAbroadService, TAirwallexPaymentService tAirwallexPaymentService) {
+    public AirwallexPayController(TAdminService tAdminService, AirwallexService airwallexService, TCoinOrderService tCoinOrderService, TAirwallexPaymentService tAirwallexPaymentService) {
         this.tAdminService = tAdminService;
         this.airwallexService = airwallexService;
-        this.tOrderAbroadService = tOrderAbroadService;
+        this.tCoinOrderService = tCoinOrderService;
         this.tAirwallexPaymentService = tAirwallexPaymentService;
     }
 
@@ -105,6 +105,11 @@ public class AirwallexPayController {
         AccessTokenCommon.ACCESS_TOKEN = AccessTokenThreadUtil.getAccessToken();
     }
 
+    /**
+     * 创建付款意向 - 消费者发起
+     * @param paymentIntentRequestBody
+     * @return
+     */
     @ApiOperation(value = "Create a PaymentIntent")
     @PostMapping("/createAPaymentIntent")
     public R createAPaymentIntent(@RequestBody PaymentIntentRequestBody paymentIntentRequestBody) {
@@ -132,17 +137,18 @@ public class AirwallexPayController {
         String clientId = paymentIntentRequestBody.getClientId();
         Long equipmentId = paymentIntentRequestBody.getEquipmentId();
         // 创建订单
-        TOrderAbroad tOrderAbroad = new TOrderAbroad();
-        tOrderAbroad.setAmount(amount);
-        tOrderAbroad.setCurrency(currency);
-        tOrderAbroad.setMerchantOrderId(merchantOrderId);
-        tOrderAbroad.setRequestId(requestId);
-        tOrderAbroad.setProductId(productId);
-        tOrderAbroad.setProductName(productName);
-        tOrderAbroad.setClientId(clientId);
-        tOrderAbroad.setEquipmentId(equipmentId);
+        TCoinOrder tCoinOrder = new TCoinOrder();
+        tCoinOrder.setAmount(amount);
+        tCoinOrder.setCurrency(currency);
+        tCoinOrder.setMerchantOrderId(merchantOrderId);
+        tCoinOrder.setRequestId(requestId);
+        tCoinOrder.setProductId(productId);
+        tCoinOrder.setProductName(productName);
+        tCoinOrder.setClientId(clientId);
+        tCoinOrder.setEquipmentId(equipmentId);
         // 设置订单支付状态,0未支付,1已支付,3已退款。
-        tOrderAbroad.setPayStatus(0);
+        tCoinOrder.setStatus("0");
+        tCoinOrder.setIsAir("1");
 
         // 返回payment intent id和client secret
         Map<String, Object> responseMap = airwallexService.caPaymentIntent(amount, currency, requestId, merchantOrderId);
@@ -151,9 +157,10 @@ public class AirwallexPayController {
         String clientSecret = (String) responseMap.get("client_secret");
 
         // 把 paymentIntentId 保存到数据库
-        tOrderAbroad.setPaymentIntentId(paymentIntentId);
+        tCoinOrder.setPaymentIntentId(paymentIntentId);
         // 将订单存入数据库
-        tOrderAbroadService.save(tOrderAbroad);
+
+        tCoinOrderService.save(tCoinOrder);
 //        boolean save = tOrderAbroadService.save(tOrderAbroad);
 //        System.out.println("将订单存入数据库:" + save);
 
@@ -244,16 +251,16 @@ public class AirwallexPayController {
 //        tOrderAbroadQueryWrapper.eq("request_id", requestId);
 //        TOrderAbroad orderAbroad = tOrderAbroadService.getOne(tOrderAbroadQueryWrapper);
 
-        LambdaQueryWrapper<TOrderAbroad> lambdaQueryWrapper = Wrappers.lambdaQuery();
-        lambdaQueryWrapper.eq(TOrderAbroad::getPaymentIntentId, paymentIntentId);
-        TOrderAbroad orderAbroad = tOrderAbroadService.getOne(lambdaQueryWrapper);
+        LambdaQueryWrapper<TCoinOrder> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        lambdaQueryWrapper.eq(TCoinOrder::getPaymentIntentId, paymentIntentId);
+        TCoinOrder coinOrder = tCoinOrderService.getOne(lambdaQueryWrapper);
 
-        if (orderAbroad == null) {
+        if (coinOrder == null) {
             return R.fail("订单为空/error");
         }
 
         // 支付状态:退款中
-        orderAbroad.setPayStatus(2);
+        coinOrder.setStatus("2");
         // 修改订单表
 //        SimpleDateFormat sdf = new SimpleDateFormat();
 //        sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
@@ -263,8 +270,8 @@ public class AirwallexPayController {
 //        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 //        String format = localDateTime.format(dtf);
         // 退款发起时间
-        orderAbroad.setRefundDate(new Date());
-        tOrderAbroadService.updateById(orderAbroad);
+        coinOrder.setRefundDate(new Date());
+        tCoinOrderService.updateById(coinOrder);
 
 
         // 发起退款
@@ -295,8 +302,8 @@ public class AirwallexPayController {
 //        if (!status.equals("FAILED")) {
         if (status.equals("RECEIVED") || status.equals("ACCEPTED") || status.equals("SUCCEEDED")) {
             String refundId = jsonObject.getString("id");
-            orderAbroad.setRefundId(refundId);
-            tOrderAbroadService.updateById(orderAbroad);
+            coinOrder.setRefundId(refundId);
+            tCoinOrderService.updateById(coinOrder);
             return R.ok("退款处理中,请稍候查询");
         }
         return R.fail("退款失败");

+ 3 - 179
src/main/java/com/szwl/controller/TCoinOrderController.java

@@ -1,32 +1,9 @@
 package com.szwl.controller;
 
 
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.gexin.fastjson.JSON;
-import com.szwl.feign.bean.SzwlFeign;
-import com.szwl.model.bean.CoinOrderVo;
-import com.szwl.model.bo.JsonMessage;
-import com.szwl.model.bo.R;
-import com.szwl.model.entity.TCoinOrder;
-import com.szwl.model.entity.TEquipment;
-import com.szwl.model.query.OrderStatisticsDTO;
-import com.szwl.model.query.Pageable;
-import com.szwl.model.utils.JsonUtils;
-import com.szwl.service.TCoinOrderService;
-import com.szwl.service.es.EsTCoinOrderService;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.math.BigDecimal;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
+
 
 /**
  * <p>
@@ -34,163 +11,10 @@ import java.util.List;
  * </p>
  *
  * @author wuhs
- * @since 2022-06-17
+ * @since 2023-08-10
  */
 @RestController
-@RequestMapping("/api/coinOrder")
+@RequestMapping("/tCoinOrder")
 public class TCoinOrderController {
-
-    @Autowired
-    TCoinOrderService coinOrderService;
-    @Autowired
-    EsTCoinOrderService esTCoinOrderService;
-    @Autowired
-    SzwlFeign szwlFeign;
-    /**添加线下
-     * @param coinOrderVo
-     * @return
-     */
-    @PostMapping("/saveCoinOrder")
-    @ResponseBody
-    public Object saveConinOrder(@RequestBody CoinOrderVo coinOrderVo) {
-        String clientId = coinOrderVo.getClientId();
-        String name = coinOrderVo.getName();
-        Integer payType = coinOrderVo.getPayType();
-        BigDecimal price = coinOrderVo.getPrice();
-        String sn = coinOrderVo.getSn();
-        TEquipment equipment = R.getDataIfSuccess(szwlFeign.findEquipmentByClientId(clientId));
-        Long adminId = equipment.getAdminId();
-        if (adminId == null) {
-            return JsonMessage.error("找不到设备商家");
-        }
-
-        TCoinOrder coinOrder = new TCoinOrder();
-        coinOrder.setType(null);
-        coinOrder.setClientId(clientId);
-        coinOrder.setAdminId(adminId);
-        coinOrder.setProductName(name);
-        coinOrder.setPayType(payType);
-        coinOrder.setPrice(price);
-        coinOrder.setProductNo(coinOrderVo.getNo());
-        coinOrder.setSn(sn);
-        if(coinOrderVo.getProductNumber()==null||coinOrderVo.getProductNumber()==0){
-            coinOrderVo.setProductNumber(1);
-        }else {
-            coinOrder.setProductNumber(coinOrderVo.getProductNumber());
-        }
-        if(StringUtils.isNotEmpty(coinOrderVo.getCreateDate())){
-            java.text.SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
-            Date date1 = null;
-            try {
-                date1 =  formatter.parse(coinOrderVo.getCreateDate());
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
-            coinOrder.setCreateDate(date1);
-            coinOrder.setModifyDate(date1);
-            coinOrder.setPayDate(date1);
-        }else{
-            coinOrder.setCreateDate(new Date());
-            coinOrder.setModifyDate(new Date());
-            coinOrder.setPayDate(new Date());
-        }
-        coinOrderService.save(coinOrder);
-        try {
-            esTCoinOrderService.insertData(coinOrder);
-        }catch (Exception e) {
-            e.printStackTrace();
-        }
-        return JsonMessage.success("添加订单成功");
-    }
-
-    //设备查询线下订单记录
-    @RequestMapping(value = "/findCoinOrder", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public String list(String clientId, String sn, String productName, Integer payType, Date begin, Date end, Pageable pageable) {
-        LambdaQueryWrapper<TCoinOrder> query = Wrappers.lambdaQuery();
-        if (StringUtils.isNotEmpty(sn)) {
-            query.eq(TCoinOrder::getSn,sn);
-        }
-        if (StringUtils.isNotEmpty(productName)) {
-            query.eq(TCoinOrder::getProductName,productName);
-        }
-        if (payType != null) {
-            query.eq(TCoinOrder::getPayType,payType);
-        }
-        if (begin != null && end != null) {
-            query.gt(TCoinOrder::getPayDate,begin);
-            query.lt(TCoinOrder::getPayDate,end);
-        }
-        query.eq(TCoinOrder::getClientId,clientId);
-        int size = pageable.getPageSize();
-        int current = pageable.getPageNumber();
-        Page<TCoinOrder> page = new Page<>(current, size, true);
-        IPage<TCoinOrder> iPage = coinOrderService.page(page, query);
-        long total = page.getTotal();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("total", total);
-        jsonObject.put("coinorders", JSON.toJSONString(iPage.getRecords()));
-        return jsonObject.toJSONString();
-    }
-
-    //设备查询线下订单记录
-    @RequestMapping(value = "/newFindCoinOrder", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public String newFindCoinOrder(String clientId, String sn, String productName, Integer payType, String begin,String end, Pageable pageable) {
-        LambdaQueryWrapper<TCoinOrder> query = Wrappers.lambdaQuery();
-        java.text.SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
-        Date date1 = null;
-        Date date2 = null;
-        try {
-            date1 =  formatter.parse(begin);
-            date2 =  formatter.parse(end);
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
-        if (StringUtils.isNotEmpty(sn)) {
-            query.eq(TCoinOrder::getSn,sn);
-        }
-        if (StringUtils.isNotEmpty(productName)) {
-            query.eq(TCoinOrder::getProductName,productName);
-        }
-        if (payType != null) {
-            query.eq(TCoinOrder::getPayType,payType);
-        }
-        if (begin != null && end != null) {
-            query.gt(TCoinOrder::getPayDate,begin);
-            query.lt(TCoinOrder::getPayDate,end);
-        }
-        query.eq(TCoinOrder::getClientId,clientId);
-        int size = pageable.getPageSize();
-        int current = pageable.getPageNumber();
-        Page<TCoinOrder> page = new Page<>(current, size, true);
-        IPage<TCoinOrder> iPage = coinOrderService.page(page, query);
-        long total = page.getTotal();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("total", total);
-        jsonObject.put("coinorders", JSON.toJSONString(iPage.getRecords()));
-        return jsonObject.toJSONString();
-    }
-
-    //设备查看线下汇总统计
-    @RequestMapping(value = "/listCoin", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
-    @ResponseBody
-    public Object findByTime(String clientId, String startTime, String endTime) {
-        java.text.SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
-        Date date1 = null;
-        Date date2 = null;
-        try {
-            date1 =  formatter.parse(startTime);
-            date2 =  formatter.parse(endTime);
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
-        List<OrderStatisticsDTO> list = coinOrderService.findTotalByTime(clientId, date1, date2);
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("code", 0);
-        jsonObject.put("data", JsonUtils.toJson(list));
-        jsonObject.put("errmsg", "");
-        return jsonObject;
-    }
 }
 

+ 0 - 21
src/main/java/com/szwl/controller/TOrderAbroadController.java

@@ -1,21 +0,0 @@
-package com.szwl.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author wuhs
- * @since 2023-04-26
- */
-@RestController
-@RequestMapping("/tOrderAbroad")
-public class TOrderAbroadController {
-
-}
-

+ 18 - 28
src/main/java/com/szwl/controller/WebhookController.java

@@ -4,34 +4,24 @@ import cn.com.sand.third.org.apache.commons.codec.digest.HmacUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.szwl.model.bo.R;
-import com.szwl.model.bo.ResponseModel;
-import com.szwl.model.entity.TOrderAbroad;
+import com.szwl.model.entity.TCoinOrder;
 import com.szwl.model.utils.PushUtils;
-import com.szwl.service.AirwallexService;
+import com.szwl.service.TCoinOrderService;
 import com.szwl.service.TEquipmentService;
-import com.szwl.service.TOrderAbroadService;
-import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.ResponseBody;
-import org.yaml.snakeyaml.events.Event;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.sql.Wrapper;
-import java.util.ArrayList;
 import java.util.Objects;
-import java.util.Optional;
 
 import static com.szwl.common.WebhooksCommon.WEBHOOKS_KEY_PAYMENT_INTENT;
 import static com.szwl.common.WebhooksCommon.WEBHOOKS_KEY_REFUND;
-import static com.szwl.constant.AirwallexConstant.ENV;
 
 
 @Controller
@@ -39,7 +29,7 @@ import static com.szwl.constant.AirwallexConstant.ENV;
 public class WebhookController {
 
     @Resource
-    TOrderAbroadService tOrderAbroadService;
+    TCoinOrderService tCoinOrderService;
 
     @Resource
     TEquipmentService tEquipmentService;
@@ -101,16 +91,16 @@ public class WebhookController {
             // 如果退款成功
             if (status.equals("RECEIVED") || status.equals("ACCEPTED") || status.equals("SUCCEEDED")) {
 
-                LambdaQueryWrapper<TOrderAbroad> lambdaQueryWrapper = Wrappers.lambdaQuery();
-                lambdaQueryWrapper.eq(TOrderAbroad::getRefundId, refundId);
-                TOrderAbroad orderAbroad = tOrderAbroadService.getOne(lambdaQueryWrapper);
+                LambdaQueryWrapper<TCoinOrder> lambdaQueryWrapper = Wrappers.lambdaQuery();
+                lambdaQueryWrapper.eq(TCoinOrder::getRefundId, refundId);
+                TCoinOrder tCoinOrder = tCoinOrderService.getOne(lambdaQueryWrapper);
 
-                if (Objects.isNull(orderAbroad)) {
+                if (Objects.isNull(tCoinOrder)) {
                     return "订单为空/error";
                 }
                 // 设置订单支付状态为 已退款
-                orderAbroad.setPayStatus(3);
-                tOrderAbroadService.updateById(orderAbroad);
+                tCoinOrder.setStatus("3");
+                tCoinOrderService.updateById(tCoinOrder);
             }
 
         } else {
@@ -185,22 +175,22 @@ public class WebhookController {
 //                    .map(jsonObject -> jsonObject.getJSONObject("id"))
 //                    .orElse(null);
 //            String paymentIntentId = JSON.toJSONString(idJson);
-            LambdaQueryWrapper<TOrderAbroad> lambdaQueryWrapper = Wrappers.lambdaQuery();
-            lambdaQueryWrapper.eq(TOrderAbroad::getPaymentIntentId, paymentIntentId);
+            LambdaQueryWrapper<TCoinOrder> lambdaQueryWrapper = Wrappers.lambdaQuery();
+            lambdaQueryWrapper.eq(TCoinOrder::getPaymentIntentId, paymentIntentId);
 //            QueryWrapper<TOrderAbroad> lambdaQueryWrapper = new QueryWrapper<>();
 //            lambdaQueryWrapper.eq("payment_intent_id", paymentIntentId);
-            TOrderAbroad orderAbroad = tOrderAbroadService.getOne(lambdaQueryWrapper);
+            TCoinOrder coinOrder = tCoinOrderService.getOne(lambdaQueryWrapper);
 
-            System.out.println(orderAbroad);
+            System.out.println(coinOrder);
 
-            orderAbroad.setPayStatus(1);
-            tOrderAbroadService.updateById(orderAbroad);
+            coinOrder.setStatus("1");
+            tCoinOrderService.updateById(coinOrder);
 
             // 通知做糖
             JSONObject kindData = new JSONObject();
-            kindData.put("sn", orderAbroad.getMerchantOrderId());
-            kindData.put("productName", orderAbroad.getProductName());
-            tEquipmentService.sentMessage(orderAbroad.getClientId(), PushUtils.buildJson("pay_success", kindData.toString()).toString());
+            kindData.put("sn", coinOrder.getMerchantOrderId());
+            kindData.put("productName", coinOrder.getProductName());
+            tEquipmentService.sentMessage(coinOrder.getClientId(), PushUtils.buildJson("pay_success", kindData.toString()).toString());
 
         } else {
 // Invalid signature

+ 2 - 2
src/main/java/com/szwl/feign/bean/OrderFeign.java

@@ -14,6 +14,6 @@ public interface OrderFeign {
     ResponseModel<?> saveToEs(@RequestBody TOrder order);
 
     // 同步海外线上订单到es中
-    @PostMapping("/tOrderAbroad/saveOrderAbroadToEs")
-    ResponseModel<?> saveOrderAbroadToEs(@RequestBody TOrderAbroad orderAbroad);
+//    @PostMapping("/tOrderAbroad/saveOrderAbroadToEs")
+//    ResponseModel<?> saveOrderAbroadToEs(@RequestBody TOrderAbroad orderAbroad);
 }

+ 1 - 6
src/main/java/com/szwl/mapper/TCoinOrderMapper.java

@@ -2,10 +2,6 @@ package com.szwl.mapper;
 
 import com.szwl.model.entity.TCoinOrder;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.szwl.model.query.OrderStatisticsDTO;
-
-import java.util.Date;
-import java.util.List;
 
 /**
  * <p>
@@ -13,9 +9,8 @@ import java.util.List;
  * </p>
  *
  * @author wuhs
- * @since 2022-06-17
+ * @since 2023-08-10
  */
 public interface TCoinOrderMapper extends BaseMapper<TCoinOrder> {
 
-    List<OrderStatisticsDTO> findTotalByTime(String clientId, Date startTime, Date endTime);
 }

+ 0 - 16
src/main/java/com/szwl/mapper/TOrderAbroadMapper.java

@@ -1,16 +0,0 @@
-package com.szwl.mapper;
-
-import com.szwl.model.entity.TOrderAbroad;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author wuhs
- * @since 2023-04-26
- */
-public interface TOrderAbroadMapper extends BaseMapper<TOrderAbroad> {
-
-}

Разлика између датотеке није приказан због своје велике величине
+ 35 - 2
src/main/java/com/szwl/mapper/xml/TCoinOrderMapper.xml


Разлика између датотеке није приказан због своје велике величине
+ 0 - 53
src/main/java/com/szwl/mapper/xml/TOrderAbroadMapper.xml


+ 113 - 3
src/main/java/com/szwl/model/entity/TCoinOrder.java

@@ -1,7 +1,9 @@
 package com.szwl.model.entity;
 
 import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
 import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -14,7 +16,7 @@ import lombok.EqualsAndHashCode;
  * </p>
  *
  * @author wuhs
- * @since 2022-06-17
+ * @since 2023-08-10
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -23,32 +25,140 @@ public class TCoinOrder implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
+    @ApiModelProperty(value = "订单创建时间")
     private Date createDate;
 
+    @ApiModelProperty(value = "订单修改时间")
     private Date modifyDate;
 
+    @ApiModelProperty(value = "商户id,用户判断权限")
     private Long adminId;
 
+    @ApiModelProperty(value = "设备编号")
     private String clientId;
 
+    @ApiModelProperty(value = "支付方式")
     private Integer payType;
 
+    @ApiModelProperty(value = "金额")
     private BigDecimal price;
 
+    @ApiModelProperty(value = "订单编号")
     private String sn;
 
+    @ApiModelProperty(value = "分账方类型,0:分账方2个,1:分账方3个,3:分账方4个,3:分账方超4个,替代airwallex中的proportion_type")
     private Integer type;
 
+    @ApiModelProperty(value = "商品名称,eg.烈焰红唇")
     private String productName;
 
-    private String productNo;
-
+    @ApiModelProperty(value = "是否发送es")
     private String es;
 
+    @ApiModelProperty(value = "支付时间")
     private Date payDate;
 
+    @ApiModelProperty(value = "支付状态,0:未支付,1:已付款,2:退款中,3:已退款,代替airwallex中的pay_status")
+    private String status;
+
+    @ApiModelProperty(value = "商品编号,eg.A06")
+    private String productNo;
+
+    @ApiModelProperty(value = "商品数量,每笔订单中有几个商品")
     private Integer productNumber;
 
+    @ApiModelProperty(value = "标记")
+    private String note;
+
+    @ApiModelProperty(value = "平台分账")
+    private BigDecimal adminProportion;
+
+    @ApiModelProperty(value = "一级分销商户id")
+    private Long agencyId;
+
+    @ApiModelProperty(value = "分账比例,中介分账")
+    private BigDecimal agencyProportion;
+
+    @ApiModelProperty(value = "分销逻辑")
+    private String altInfo;
+
+    @ApiModelProperty(value = "设备id")
+    private Long equipmentId;
+
+    @ApiModelProperty(value = "支付方式")
+    private String frpCode;
+
+    @ApiModelProperty(value = "二级分销商户id")
+    private Long merchantId;
+
+    @ApiModelProperty(value = "二级分销商分账比例")
+    private BigDecimal merchantProportion;
+
+    @ApiModelProperty(value = "三级分销商户id")
+    private Long personageId;
+
+    @ApiModelProperty(value = "三级分销商分账比例")
+    private BigDecimal personageProportion;
+
+    @ApiModelProperty(value = "商品id")
+    private Long productId;
+
+    @ApiModelProperty(value = "退款时间")
+    private Date refundDate;
+
+    @ApiModelProperty(value = "商品描述,{xxx,1个;xxx,2个}")
+    private String productDesc;
+
+    @ApiModelProperty(value = "支付流水号")
+    private String trxNo;
+
+    @ApiModelProperty(value = "退款编号rfd")
+    private String refundId;
+
+    @ApiModelProperty(value = "退款金额")
+    private BigDecimal refundAmount;
+
+    @ApiModelProperty(value = "分账详情,当分账方超过4方时,这个字段才启用")
+    private String proportionDesc;
+
+    @ApiModelProperty(value = "营销金额")
+    private BigDecimal marketingAmount;
+
+    @ApiModelProperty(value = "退款营销金额")
+    private BigDecimal refundMarketingAmount;
+
+    @ApiModelProperty(value = "订单状态;0:排队中;1:正在制作;2:已制作完成")
+    private String orderStatus;
+
+    @ApiModelProperty(value = "货币")
+    private String currency;
+
+    @ApiModelProperty(value = "airwallex订单号,商品唯一订单id,类似于sn")
+    private String merchantOrderId;
+
+    @ApiModelProperty(value = "airwallex请求编号,商户唯一支付请求编号id")
+    private String requestId;
+
+    @ApiModelProperty(value = "airwallex交易编号")
+    private String paymentIntentId;
+
+    @ApiModelProperty(value = "商品数量,每笔订单中有几个商品")
+    private Integer productNum;
+
+    @ApiModelProperty(value = "公司平台,0或空为申泽,1为七云")
+    private String companyType;
+
+    @ApiModelProperty(value = "退款数量")
+    private Integer refundQuantity;
+
+    @ApiModelProperty(value = "是否为airwallex支付,0或null代表线下,1代表airwallex")
+    private String isAir;
+
+    @ApiModelProperty(value = "airwallex订单金额,币种为美元")
+    private BigDecimal amount;
+
+
 }

+ 0 - 146
src/main/java/com/szwl/model/entity/TOrderAbroad.java

@@ -1,146 +0,0 @@
-package com.szwl.model.entity;
-
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author wuhs
- * @since 2023-04-26
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@ApiModel(value="TOrderAbroad对象", description="")
-public class TOrderAbroad implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
-
-    @ApiModelProperty(value = "订单创建时间")
-    private Date createDate;
-
-    @ApiModelProperty(value = "订单修改时间")
-    private Date modifyDate;
-
-    @ApiModelProperty(value = "商户id,用户判断权限")
-    private Long adminId;
-
-    @ApiModelProperty(value = "平台分账")
-    private BigDecimal adminProportion;
-
-    @ApiModelProperty(value = "一级分销商户id")
-    private Long agencyId;
-
-    @ApiModelProperty(value = "分账比例,中介分账")
-    private BigDecimal agencyProportion;
-
-    @ApiModelProperty(value = "分销逻辑")
-    private String altInfo;
-
-    @ApiModelProperty(value = "设备编号")
-    private String clientId;
-
-    @ApiModelProperty(value = "设备id")
-    private Long equipmentId;
-
-    @ApiModelProperty(value = "支付方式")
-    private String frpCode;
-
-    @ApiModelProperty(value = "二级分销商户id")
-    private Long merchantId;
-
-    @ApiModelProperty(value = "二级分销商分账比例")
-    private BigDecimal merchantProportion;
-
-    @ApiModelProperty(value = "支付时间")
-    private Date payDate;
-
-    @ApiModelProperty(value = "三级分销商户id")
-    private Long personageId;
-
-    @ApiModelProperty(value = "三级分销商分账比例")
-    private BigDecimal personageProportion;
-
-    @ApiModelProperty(value = "金额")
-    private BigDecimal amount;
-
-    @ApiModelProperty(value = "商品id")
-    private Long productId;
-
-    @ApiModelProperty(value = "商品数量,每笔订单中有几个商品")
-    private Integer productNum;
-
-    @ApiModelProperty(value = "商品名称,烈焰红唇")
-    private String productName;
-
-    @ApiModelProperty(value = "商品编号,A06")
-    private String productNo;
-
-    @ApiModelProperty(value = "退款时间")
-    private Date refundDate;
-
-    @ApiModelProperty(value = "商品描述,{xxx,1个;xxx,2个}")
-    private String productDesc;
-
-    @ApiModelProperty(value = "支付状态, 0: 未支付, 1: 已付款, 2: 退款中, 3: 已退款")
-    private Integer payStatus;
-
-    @ApiModelProperty(value = "分账方类型,0:分账方2个,1:分账方3个,3:分账方4个,3:分账方超4个;")
-    private Integer proportionType;
-
-    @ApiModelProperty(value = "支付流水号")
-    private String trxNo;
-
-    @ApiModelProperty(value = "退款编号rfd")
-    private String refundId;
-
-    @ApiModelProperty(value = "是否发送es")
-    private String es;
-
-    @ApiModelProperty(value = "退款金额")
-    private BigDecimal refundAmount;
-
-    @ApiModelProperty(value = "标记")
-    private String note;
-
-    @ApiModelProperty(value = "分账详情,当分账超过4方时,这个字段才启用")
-    private String proportionDesc;
-
-    @ApiModelProperty(value = "营销金额")
-    private BigDecimal marketingAmount;
-
-    @ApiModelProperty(value = "退款营销金额")
-    private BigDecimal refundMarketingAmount;
-
-    @ApiModelProperty(value = "订单状态;0:排队中,1:正在制作,2:已制作")
-    private String orderStatus;
-
-    @ApiModelProperty(value = "商品数量")
-    private Integer productNumber;
-
-    @ApiModelProperty(value = "货币")
-    private String currency;
-
-    @ApiModelProperty(value = "订单号,商户唯一订单id,类似于order的sn")
-    private String merchantOrderId;
-
-    @ApiModelProperty(value = "请求编号,商户唯一支付请求编号id")
-    private String requestId;
-
-    @ApiModelProperty(value = "交易编号")
-    private String paymentIntentId;
-
-
-}

+ 0 - 56
src/main/java/com/szwl/model/query/TOrderAbroadParam.java

@@ -1,56 +0,0 @@
-package com.szwl.model.query;
-
-import com.szwl.common.myAnnotation.CamelCaseToUnderscore;
-import com.szwl.model.entity.TOrderAbroad;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import lombok.ToString;
-import lombok.experimental.Accessors;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.util.Date;
-import java.util.List;
-
-@SuppressWarnings("serial")
-@Accessors(chain = true)
-@NoArgsConstructor
-@Getter
-@Setter
-@ToString
-public class TOrderAbroadParam extends TOrderAbroad {
-
-    @CamelCaseToUnderscore
-    @ApiModelProperty(value = "排序,如:id desc")
-    private String orderByClause;
-    @ApiModelProperty(value = "是否distinct")
-    private boolean distinct;
-    @ApiModelProperty(value = "分页,展示多少条记录")
-    private Integer limit;
-    @ApiModelProperty(value = "分页,从第几条开始,默认从0开始")
-    private Integer offset;
-    @ApiModelProperty(value = "主键id 集合,用于批量删除和批量修改")
-    private List primaryKeyList;
-    private List<TOrderAbroad> entityList;//实体集合,用于批量新增
-
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private Date createDate_start;
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private Date createDate_end;
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private Date modifyDate_start;
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private Date modifyDate_end;
-    private String clientId_like;
-    private List clientId_inList;
-    private String sn_like;
-    private String createDate_like;
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private Date payDate_start;
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-    private Date payDate_end;
-
-    private List adminId_inList;
-    private List productName_notInList;
-}

+ 1 - 5
src/main/java/com/szwl/service/TCoinOrderService.java

@@ -2,10 +2,7 @@ package com.szwl.service;
 
 import com.szwl.model.entity.TCoinOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.szwl.model.query.OrderStatisticsDTO;
 
-import java.util.Date;
-import java.util.List;
 
 /**
  * <p>
@@ -13,9 +10,8 @@ import java.util.List;
  * </p>
  *
  * @author wuhs
- * @since 2022-06-17
+ * @since 2023-08-10
  */
 public interface TCoinOrderService extends IService<TCoinOrder> {
 
-    List<OrderStatisticsDTO> findTotalByTime(String clientId, Date date1, Date date2);
 }

+ 0 - 16
src/main/java/com/szwl/service/TOrderAbroadService.java

@@ -1,16 +0,0 @@
-package com.szwl.service;
-
-import com.szwl.model.entity.TOrderAbroad;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author wuhs
- * @since 2023-04-26
- */
-public interface TOrderAbroadService extends IService<TOrderAbroad> {
-
-}

+ 0 - 105
src/main/java/com/szwl/service/es/EsTOrderAbroadService.java

@@ -1,105 +0,0 @@
-package com.szwl.service.es;
-
-import cn.com.crbank.ommo.esclient.EsBaseService;
-import cn.com.crbank.ommo.exception.MyException;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.szwl.model.entity.TOrderAbroad;
-import com.szwl.model.query.TOrderAbroadParam;
-import com.szwl.service.TOrderAbroadService;
-import lombok.extern.slf4j.Slf4j;
-import org.elasticsearch.client.RequestOptions;
-import org.elasticsearch.client.indices.GetIndexRequest;
-import org.springframework.stereotype.Service;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
-
-@Slf4j
-@Service
-public class EsTOrderAbroadService extends EsBaseService<TOrderAbroad, TOrderAbroadParam> {
-    private static boolean InitEsTableStatus = false; // 是否正常完成 es 初始化
-    public static final int MAX_ROW = 10000;
-
-    TOrderAbroadService tOrderAbroadService;
-
-    public EsTOrderAbroadService(TOrderAbroadService tOrderAbroadService) {
-        this.tOrderAbroadService = tOrderAbroadService;
-    }
-
-    @Override
-    public String getTableName() {
-        return "es_t_order_abroad";
-    }
-
-    @Override
-    public TOrderAbroad getInstanceOfEntity() {
-        return new TOrderAbroad();
-    }
-
-    @Override
-    public void setInitTableStatus(boolean flag) {
-        InitEsTableStatus = flag;
-    }
-
-    @Override
-    public boolean getInitTableStatus() {
-        return InitEsTableStatus;
-    }
-
-    @Override
-    public String getEntityPrimaryKey(TOrderAbroad tOrderAbroad) {
-        return String.valueOf(tOrderAbroad.getId());
-    }
-
-    @Override
-    public TOrderAbroad setEntityPrimaryKey(TOrderAbroad tOrderAbroad, String value) {
-        return null;
-    }
-
-    @Override
-    public void initTableFun() {
-        try {
-            String tableName = getTableName();
-            GetIndexRequest request = new GetIndexRequest(tableName);
-//            DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(this.getTableName());
-//            restHighLevelClient.indices().delete(deleteIndexRequest,RequestOptions.DEFAULT);
-            boolean isExists = restHighLevelClient.indices().exists(request, RequestOptions.DEFAULT);
-            if (!isExists) {
-                log.info("es 索引 开始创建" + tableName);
-                createTable();
-                // 初始化旧流水
-                int num = 0;
-                while (true) {
-                    int limit = MAX_ROW;
-                    int offset = num;
-                    LambdaQueryWrapper<TOrderAbroad> query = Wrappers.lambdaQuery();
-                    SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    String time = "2023-04-01 00:00:00";
-                    Date date = ft.parse(time);
-                    query.gt(TOrderAbroad::getCreateDate, date);
-//                    query.eq(TOrder::getStatus,"1");
-                    Page<TOrderAbroad> page = new Page<>(offset, limit, true);
-                    IPage<TOrderAbroad> iPage = tOrderAbroadService.page(page, query);
-                    List<TOrderAbroad> list = iPage.getRecords();
-                    insertBatch(list);
-                    num++;
-                    if (list.size() < MAX_ROW) { // 数据小于 最大值 ,证明后面已无数据,则跳出
-                        break;
-                    }
-                }
-            } else {
-                log.info("es 索引 " + tableName + " 已存在不再创建");
-            }
-            InitEsTableStatus = true;
-        } catch (Exception e) {
-            log.error("ElasticsearchRunner InitEsTOrderAbroadThread 发生错误:{}", e);
-            throw new MyException("ElasticsearchRunner InitEsTOrderAbroadThread 发生错误:" + e.getMessage());
-        }
-    }
-
-}

+ 3 - 4
src/main/java/com/szwl/service/impl/AirwallexServiceImpl.java

@@ -3,16 +3,18 @@ package com.szwl.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.szwl.common.AccessTokenCommon;
 import com.szwl.constant.AirwallexConstant;
+import com.szwl.controller.TAreaController;
 import com.szwl.model.bo.R;
 import com.szwl.model.dto.BeneficiaryDTO;
 import com.szwl.model.dto.CaPaymentRequestDTO;
 import com.szwl.model.utils.AccessTokenThreadUtil;
 import com.szwl.model.utils.HttpClientSslUtils;
 import com.szwl.service.AirwallexService;
-import com.szwl.service.TOrderAbroadService;
+import com.szwl.service.TCoinOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.entity.ContentType;
 import org.apache.http.message.BasicHeader;
+import org.springframework.context.annotation.ImportResource;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -31,9 +33,6 @@ import java.util.*;
 @Slf4j
 public class AirwallexServiceImpl implements AirwallexService {
 
-    @Resource
-    TOrderAbroadService tOrderAbroadService;
-
 //    @Override
 //    public String getAccessToken() {
 ////        HttpResponse<String> response = Unirest.post("https://api-demo.airwallex.com/api/v1/authentication/login")

+ 2 - 11
src/main/java/com/szwl/service/impl/TCoinOrderServiceImpl.java

@@ -2,14 +2,10 @@ package com.szwl.service.impl;
 
 import com.szwl.model.entity.TCoinOrder;
 import com.szwl.mapper.TCoinOrderMapper;
-import com.szwl.model.query.OrderStatisticsDTO;
 import com.szwl.service.TCoinOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
-import java.util.List;
 
 /**
  * <p>
@@ -17,14 +13,9 @@ import java.util.List;
  * </p>
  *
  * @author wuhs
- * @since 2022-06-17
+ * @since 2023-08-10
  */
 @Service
 public class TCoinOrderServiceImpl extends ServiceImpl<TCoinOrderMapper, TCoinOrder> implements TCoinOrderService {
-    @Autowired
-    TCoinOrderMapper tCoinOrderMapper;
-    @Override
-    public List<OrderStatisticsDTO> findTotalByTime(String clientId, Date date1, Date date2) {
-        return tCoinOrderMapper.findTotalByTime( clientId,  date1,  date2);
-    }
+
 }

+ 0 - 20
src/main/java/com/szwl/service/impl/TOrderAbroadServiceImpl.java

@@ -1,20 +0,0 @@
-package com.szwl.service.impl;
-
-import com.szwl.model.entity.TOrderAbroad;
-import com.szwl.mapper.TOrderAbroadMapper;
-import com.szwl.service.TOrderAbroadService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author wuhs
- * @since 2023-04-26
- */
-@Service
-public class TOrderAbroadServiceImpl extends ServiceImpl<TOrderAbroadMapper, TOrderAbroad> implements TOrderAbroadService {
-
-}

+ 7 - 13
src/test/java/com/szwl/ApplicationTests.java

@@ -1,24 +1,18 @@
 package com.szwl;
 
-import com.szwl.service.es.EsTOrderAbroadService;
 import lombok.extern.slf4j.Slf4j;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
 @Slf4j
 @SpringBootTest
 class ApplicationTests {
 
-    @Autowired
-    private EsTOrderAbroadService esTOrderAbroadService;
-
-    @Test
-    void testInitTableFun() {
-        esTOrderAbroadService.initTableFun();
-    }
-
-
+//    @Autowired
+//    private EsTOrderAbroadService esTOrderAbroadService;
+//
+//    @Test
+//    void testInitTableFun() {
+//        esTOrderAbroadService.initTableFun();
+//    }
 
 }

+ 2 - 2
src/test/java/com/szwl/AutoGeneratorTests.java

@@ -39,7 +39,7 @@ class AutoGeneratorTests {
 		//TODO:配置数据源
 		DataSourceConfig dataSourceConfig = new DataSourceConfig();
 		dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver")
-				.setUrl("jdbc:mysql://rm-wz995mu26a1479kz0so.mysql.rds.aliyuncs.com:3306/szwl-test")
+				.setUrl("jdbc:mysql://rm-wz995mu26a1479kz0so.mysql.rds.aliyuncs.com:3306/orderdb-test")
 				.setUsername("root").setPassword("sunzee@020");
 
 		//策略配置
@@ -48,7 +48,7 @@ class AutoGeneratorTests {
 		strategyConfig
 //				.setCapitalMode(true)//设置全局大写命名
 				.setInclude(new String[]{
-						"t_airwallex_payment"
+						"t_coin_order"
 				})//只会生成该表
 				.setEntityLombokModel(true)//实体类生成之后自动添加lombok注解
 				.setNaming(NamingStrategy.underline_to_camel)//数据库表映射到实体的命名策略