Bläddra i källkod

返回参数调整

Aslee 3 år sedan
förälder
incheckning
83459da903

+ 1 - 5
src/main/java/com/caimei/controller/OrderApi.java

@@ -51,11 +51,7 @@ public class OrderApi {
      *                     "productInfo": { "0001":2,    // 商品Id:购买数量
      *                                       "0002":3
      *                                   }
-     *                     "payInfo": {               // 订单信息
-     *                         "orderShouldPayFee": 609.11,       //订单总金额
-     *                         "freight": "15",                   //运费金额,到付:0,深圳市内10,省内15
-     *                         "freePostFlag": 1                  //-1:到付,1:有运费
-     *                     },
+     *                     "orderShouldPayFee": 609.11,     // 订单总金额
      *                     "invoiceInfo": {}// 发票信息: {"type": 0},// 不开发票
      *                                     {
      *                                         "type": 2,             // 要发票

+ 2 - 0
src/main/java/com/caimei/mapper/OrderMapper.java

@@ -37,6 +37,8 @@ public interface OrderMapper {
 
     BpOrderInvoicePo getOrderInvoice(Long orderID);
 
+    BpOrderInvoiceVo getOrderInvoiceVo(Long orderID);
+
     void updateOrderInvoice(BpOrderInvoicePo invoice);
 
     void insertOrderInvoice(BpOrderInvoicePo invoice);

+ 54 - 0
src/main/java/com/caimei/model/vo/BpOrderInvoiceVo.java

@@ -0,0 +1,54 @@
+package com.caimei.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * bp_order_invoice
+ * @author 
+ */
+@Data
+public class BpOrderInvoiceVo implements Serializable {
+    /**
+     * 发票抬头
+     */
+    private String invoiceTitle;
+
+    /**
+     * 发票类型0不开发票 1普通发票 2增值税发票
+     */
+    private Long type;
+
+    /**
+     * 发票内容
+     */
+    private String invoiceContent;
+
+    /**
+     * 企业税号
+     */
+    private String corporationTaxNum;
+
+    /**
+     * 注册地址
+     */
+    private String registeredAddress;
+
+    /**
+     * 注册电话
+     */
+    private String registeredPhone;
+
+    /**
+     * 开户银行账户
+     */
+    private String bankAccountNo;
+
+    /**
+     * 开户银行
+     */
+    private String openBank;
+
+    private static final long serialVersionUID = 1L;
+}

+ 0 - 10
src/main/java/com/caimei/model/vo/CmOrderVo.java

@@ -42,14 +42,4 @@ public class CmOrderVo{
      */
     private BigDecimal returnedPurchaseFee;
 
-    /**
-     * 免邮标志  运费:-1到付,0包邮,1需要运费
-     */
-    private String freePostFlag;
-
-    /**
-     * 0包邮/到付,大于0具体金额
-     */
-    private BigDecimal freight;
-
 }

+ 0 - 7
src/main/java/com/caimei/model/vo/LadderPriceVo.java

@@ -9,13 +9,6 @@ import java.math.BigDecimal;
  */
 @Data
 public class LadderPriceVo {
-    private Integer id;
-
-    /**
-     * 商品id
-     */
-    private Integer productId;
-
     /**
      * 第几阶梯
      */

+ 12 - 40
src/main/java/com/caimei/service/impl/OrderServiceImpl.java

@@ -68,7 +68,7 @@ public class OrderServiceImpl implements OrderService {
         String apiOrganizeOrderId;
         Map<String, Object> addressInfo;
         Map<String, Object> productInfo;
-        Map<String, Object> payInfo;
+        BigDecimal orderShouldPayFee;
         Map<String, Object> invoiceInfo;
         String notifyUrl;
         try {
@@ -87,8 +87,8 @@ public class OrderServiceImpl implements OrderService {
             if (null == productInfo) {
                 return ResponseJson.error("订单商品数据异常");
             }
-            payInfo = orderInfo.getJSONObject("payInfo");
-            if (null == payInfo) {
+            orderShouldPayFee = orderInfo.getBigDecimal("orderShouldPayFee");
+            if (null == orderShouldPayFee) {
                 return ResponseJson.error("订单金额数据异常");
             }
             invoiceInfo = orderInfo.getJSONObject("invoiceInfo");
@@ -123,12 +123,6 @@ public class OrderServiceImpl implements OrderService {
         BigDecimal payTotalFee = BigDecimal.ZERO;
         // 真实支付金额(订单总额减去抵扣的账户余额)
         BigDecimal payableAmount = BigDecimal.ZERO;
-        // 运费
-        if (null == payInfo.get("freePostFlag") || null == payInfo.get("freight")) {
-            return ResponseJson.error("运费数据异常");
-        }
-        Integer freePostFlag = (Integer) payInfo.get("freePostFlag");
-        BigDecimal freight = new BigDecimal(payInfo.get("freight").toString());
         /*
          * 发票信息获取
          */
@@ -163,20 +157,6 @@ public class OrderServiceImpl implements OrderService {
         if (null == provinceId || null == cityId || null == townId) {
             return ResponseJson.error("地址信息异常");
         }
-        // 验证运费是否正确
-        if (1 == freePostFlag) {
-            if (19 != provinceId) {
-                return ResponseJson.error("广东省外地址只能到付");
-            } else if (202 != cityId) {
-                if (0 != freight.compareTo(new BigDecimal(15))) {
-                    return ResponseJson.error("深圳市外运费应为15元");
-                }
-            } else if (0 != freight.compareTo(new BigDecimal(10))) {
-                return ResponseJson.error("深圳室内运费应为10元");
-            }
-        } else if (0 != freight.compareTo(BigDecimal.ZERO)) {
-            return ResponseJson.error("运费应为0元");
-        }
         /*
          * 初始化主订单参数
          */
@@ -235,6 +215,9 @@ public class OrderServiceImpl implements OrderService {
             productCount += productNum;
             // 获取商品信息
             CmApiOrganizeProductPo organizeProduct = productMapper.getProductByProductId(productId);
+            if (productNum < organizeProduct.getMinBuyNumber()) {
+                return ResponseJson.error("商品购买数量不能少于最小起订量");
+            }
             if (null == organizeProduct) {
                 return ResponseJson.error("订单商品数据异常");
             }
@@ -311,20 +294,12 @@ public class OrderServiceImpl implements OrderService {
         //促销赠品数量
         order.setPromotionalGiftsCount(0);
         // 0包邮 -1到付 1 有运费
-        order.setFreePostFlag(freePostFlag.toString());
-        order.setFreight(freight);
+        order.setFreePostFlag("-1");
+        order.setFreight(BigDecimal.ZERO);
         // 商品总额
         order.setProductTotalFee(productTotalFee);
         // 订单总额(商品金额+运费)
-        if (1 == freePostFlag) {
-            // 机构用户 计算商品运费
-            Double freightFee = computedPostageFee(provinceId, cityId);
-            freight = BigDecimal.valueOf(freightFee);
-            order.setFreight(freight);
-            payTotalFee = MathUtil.add(productTotalFee, freight);
-        } else {
-            payTotalFee = productTotalFee;
-        }
+        payTotalFee = productTotalFee;
         orderTotalFee = productTotalFee;
         order.setOrderTotalFee(orderTotalFee);
         order.setPayTotalFee(payTotalFee);
@@ -344,7 +319,6 @@ public class OrderServiceImpl implements OrderService {
         // 是否返佣订单
         order.setRebateFlag("0");
         // 判断前端传入orderShouldPayFee订单应付金额,和后台计算应付金额对比
-        BigDecimal orderShouldPayFee = new BigDecimal(payInfo.get("orderShouldPayFee").toString());
         double v = MathUtil.sub(payableAmount, orderShouldPayFee).doubleValue();
         log.info(">>>>>payableAmount:" + payableAmount + " ,orderShouldPayFee:" + orderShouldPayFee);
         // 考虑前端计算不精确
@@ -532,11 +506,8 @@ public class OrderServiceImpl implements OrderService {
             //退款总金额
             cmOrderVo.setReturnedPurchaseFee(returnedPurchaseFee);
         }
-        // 运费信息
-        cmOrderVo.setFreePostFlag(order.getFreePostFlag());
-        cmOrderVo.setFreight(order.getFreight());
         // 发票信息
-        BpOrderInvoicePo invoiceInfo = orderMapper.getOrderInvoice(order.getOrderID());
+        BpOrderInvoiceVo invoiceInfo = orderMapper.getOrderInvoiceVo(order.getOrderID());
         // 商品信息
         List<OrderProductVo> dbProductList = productMapper.getOrderProduct(order.getOrderID());
         List<DisplayOrderProductVo> orderProductList = new ArrayList<>();
@@ -580,6 +551,7 @@ public class OrderServiceImpl implements OrderService {
             orderProductList.add(product);
         }
         HashMap<String, Object> orderDetail = new HashMap<>();
+        orderDetail.put("orderId", apiOrganizeOrderId);
         orderDetail.put("addressInfo", addressInfo);
         orderDetail.put("orderInfo", cmOrderVo);
         orderDetail.put("productInfo", orderProductList);
@@ -626,7 +598,7 @@ public class OrderServiceImpl implements OrderService {
         order.setCloseReason("协销或用户主动取消订单");
         order.setCloseTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
         orderMapper.updateOrder(order);
-        return ResponseJson.success("取消订单成功");
+        return ResponseJson.success();
     }
 
     @Override

+ 1 - 1
src/main/java/com/caimei/service/impl/ProductServiceImpl.java

@@ -121,7 +121,7 @@ public class ProductServiceImpl implements ProductService {
         for (ProductImagePo image : imageList) {
             String imageURL = ProductUtils.getImageURL("product", image.getImage(), 0, domain);
             image.setImage(imageURL);
-            images += "".equals(images) ? "" : "," + image.getImage();
+            images += ("".equals(images) ? "" : ",") + image.getImage();
         }
         productDetail.setImages(images);
         DecimalFormat decimalFormat = new DecimalFormat("0000");

+ 17 - 0
src/main/resources/mapper/OrderMapper.xml

@@ -1636,6 +1636,23 @@
         WHERE
             orderId = #{orderId}
     </select>
+
+    <select id="getOrderInvoiceVo" resultType="com.caimei.model.vo.BpOrderInvoiceVo">
+        SELECT
+            invoiceTitle,
+            `type`,
+            invoiceType,
+            invoiceContent,
+            corporationTaxNum,
+            registeredAddress,
+            registeredPhone,
+            bankAccountNo,
+            openBank
+        FROM
+            bp_order_invoice
+        WHERE
+            orderId = #{orderId}
+    </select>
     <select id="getCountByOrderId" resultType="java.lang.Integer">
         select count(*) from cm_order where userID = #{userId} and apiOrganizeOrderId = #{apiOrganizeOrderId}
     </select>

+ 1 - 1
src/main/resources/mapper/ProductMapper.xml

@@ -93,7 +93,7 @@
         <if test="productName != null and productName != ''">
             and p.name like concat('%',#{productName},'%')
         </if>
-        order by cop.addTime desc
+        order by cop.id desc
     </select>
     <select id="findProductByProductId" resultType="com.caimei.model.vo.ProductVo">
         select cop.id           as productId,

+ 9 - 33
src/test/java/caimei/OpenApplicationTests.java

@@ -1,16 +1,10 @@
 package caimei;
 
 import com.alibaba.fastjson.JSONObject;
-import com.aliyun.oss.internal.OSSUtils;
-import com.caimei.model.ResponseJson;
-import com.caimei.utils.Base64;
 import com.caimei.utils.KeyGenerator;
 import com.caimei.utils.KeyPair;
 import com.caimei.utils.KeyUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.web.multipart.MultipartFile;
@@ -21,18 +15,15 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
-import java.security.NoSuchAlgorithmException;
-import java.security.spec.InvalidKeySpecException;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
+import java.math.BigDecimal;
 import java.util.UUID;
 
 @SpringBootTest
 public class OpenApplicationTests {
 
     //private String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDawyiPFWo4tSS1YX/mXTIGWghehyYfec2JeQFJONfLTOcyJ11RP+19E3QSn6JiclYbRM+Rzt/gvFOnVAyvZ6VUFkIZlMr9ykqB74crQs6pw4AY0lREscV8yk5QYEGPCv3I97A8Pm44ThWGuXQ1cjmxBk+zS4xR2Yu+jPZb65HsNwIDAQAB";
-//    private String privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANrDKI8Vaji1JLVhf+ZdMgZaCF6HJh95zYl5AUk418tM5zInXVE/7X0TdBKfomJyVhtEz5HO3+C8U6dUDK9npVQWQhmUyv3KSoHvhytCzqnDgBjSVESxxXzKTlBgQY8K/cj3sDw+bjhOFYa5dDVyObEGT7NLjFHZi76M9lvrkew3AgMBAAECgYBFSyISyI6/7aj2By8zMfwBhQ03nAmYWMWhMQIWRnocPHzTJyLo9J3uS3Yt3ADcvCjINHCnV+cUUbMRwo7OFL+KH+NDeLBmv0b+oMoVeOhgJZWkpt+O4bA90+NrA4P3sPqPbJUG1fqtm+Ll8wTASrLxrwyiRn2VRCfwMRTqaTc9sQJBAPqvhe+Ler0dx82kXxr+gwOdRJLqYCqverP66obKRamOG0wF9Hj04fTgz0iwiQK/Jpvu4jfPg6fWyGvGq6lNFdkCQQDfZmMCOHowT9AS21VZYJVE+cBZjg2aP5XV1rXPnOi18cBaDwo8EIIO9gXPtk1GtMeuVf9esXNfSI8SI9GtTXiPAkEAl7UTXAVP8RUNrqCTwbVWuiA5uKNIMWzi1/q4ZXwRrmvGjzpnWa/w8o3+Q6I6OERP7DwkANx/c1ojDj478ogo+QJAfK3H1BVxHEVu+xcuKxOcO0Kn91MwhEW4ef+6uIP53JFvqNN8AsmzzGXCGIrF1hBO4R1dyJuAqEz2jEkxXGdAQQJBAKKFeQ6eiHzwWeiiuMG0Hge4gTPra4v4lHtxcFfqv3tlQ+7LVnw4+4YBMqXRoW+CbwCYhrvoaOqSYTq0xvkctGo=";
-    private String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAICCSN7GK4wCYyT6uZttd69OHz+dZ+utyzgnDx2BOkX6bxTZ9YcTR42B7NcBpuAXQ51cZiBS7wUVl/Gb4ATu6s2xrGgCQ33JVwAJYsidbFLj7vq8YXGII6lnRFUfn+S2BUYU1Vti2FA7pzYaZ9/t1TMv83gjM/hEs9bdxazv52zTAgMBAAECgYAuKR5tzzdTOoRMgzdqqj6knOZCnpL2qF3oFLesPIAnJNcD4Wr9kyJPpUziyngb5J9oBgm1MLUk2WXT5s7oVr3GlO6B7Ei2Gl7lvYQCmBiIIRg4xa5wPn5T4cGCAPqOZ0LPLZSt7tOVUCiPo3oTQDxQoWbt9pS777GiMjiI7ZJDWQJBALXbDm4GWPRYqpyk7EB59vK1wrp7nv1yxUC8hH5hqpZIe/xy2Qhr79R/NI5YQ5A/+W2/7vQh3260Fjj8pXbntgcCQQC05zs1XI53qArMaJo2Ijzd2hmG3t/U0TTiCav0jDGv7tRsAypkwm/emAcoc81GvXEG0HEwWKguS4GoykGj1P/VAkAaySIt+IdfrjOrEOuvb4d9JmKBPzYi1KXTLDFDwDT1H8YLYAsxn1xa60Wddci11YZysOOMV/TmBGaFjEj+45A/AkBjTMIdam7xk5ZJ2ek8adLLXJrCg7iN00CaCwEOvZ3QmuKTX7F3mZtarkzPkbFOcVKHkQdwqFm4/81uX4dkbNj5AkEAiTQESAc0v/DaI89m97cD6bR3o7VMdmdhS+FDjmR0EKJYhsF7iWC2jehOz9GQH+26z7udh9XC7yHMviXYzt945A==";
+    private String privateKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANrDKI8Vaji1JLVhf+ZdMgZaCF6HJh95zYl5AUk418tM5zInXVE/7X0TdBKfomJyVhtEz5HO3+C8U6dUDK9npVQWQhmUyv3KSoHvhytCzqnDgBjSVESxxXzKTlBgQY8K/cj3sDw+bjhOFYa5dDVyObEGT7NLjFHZi76M9lvrkew3AgMBAAECgYBFSyISyI6/7aj2By8zMfwBhQ03nAmYWMWhMQIWRnocPHzTJyLo9J3uS3Yt3ADcvCjINHCnV+cUUbMRwo7OFL+KH+NDeLBmv0b+oMoVeOhgJZWkpt+O4bA90+NrA4P3sPqPbJUG1fqtm+Ll8wTASrLxrwyiRn2VRCfwMRTqaTc9sQJBAPqvhe+Ler0dx82kXxr+gwOdRJLqYCqverP66obKRamOG0wF9Hj04fTgz0iwiQK/Jpvu4jfPg6fWyGvGq6lNFdkCQQDfZmMCOHowT9AS21VZYJVE+cBZjg2aP5XV1rXPnOi18cBaDwo8EIIO9gXPtk1GtMeuVf9esXNfSI8SI9GtTXiPAkEAl7UTXAVP8RUNrqCTwbVWuiA5uKNIMWzi1/q4ZXwRrmvGjzpnWa/w8o3+Q6I6OERP7DwkANx/c1ojDj478ogo+QJAfK3H1BVxHEVu+xcuKxOcO0Kn91MwhEW4ef+6uIP53JFvqNN8AsmzzGXCGIrF1hBO4R1dyJuAqEz2jEkxXGdAQQJBAKKFeQ6eiHzwWeiiuMG0Hge4gTPra4v4lHtxcFfqv3tlQ+7LVnw4+4YBMqXRoW+CbwCYhrvoaOqSYTq0xvkctGo=";
+//    private String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAICCSN7GK4wCYyT6uZttd69OHz+dZ+utyzgnDx2BOkX6bxTZ9YcTR42B7NcBpuAXQ51cZiBS7wUVl/Gb4ATu6s2xrGgCQ33JVwAJYsidbFLj7vq8YXGII6lnRFUfn+S2BUYU1Vti2FA7pzYaZ9/t1TMv83gjM/hEs9bdxazv52zTAgMBAAECgYAuKR5tzzdTOoRMgzdqqj6knOZCnpL2qF3oFLesPIAnJNcD4Wr9kyJPpUziyngb5J9oBgm1MLUk2WXT5s7oVr3GlO6B7Ei2Gl7lvYQCmBiIIRg4xa5wPn5T4cGCAPqOZ0LPLZSt7tOVUCiPo3oTQDxQoWbt9pS777GiMjiI7ZJDWQJBALXbDm4GWPRYqpyk7EB59vK1wrp7nv1yxUC8hH5hqpZIe/xy2Qhr79R/NI5YQ5A/+W2/7vQh3260Fjj8pXbntgcCQQC05zs1XI53qArMaJo2Ijzd2hmG3t/U0TTiCav0jDGv7tRsAypkwm/emAcoc81GvXEG0HEwWKguS4GoykGj1P/VAkAaySIt+IdfrjOrEOuvb4d9JmKBPzYi1KXTLDFDwDT1H8YLYAsxn1xa60Wddci11YZysOOMV/TmBGaFjEj+45A/AkBjTMIdam7xk5ZJ2ek8adLLXJrCg7iN00CaCwEOvZ3QmuKTX7F3mZtarkzPkbFOcVKHkQdwqFm4/81uX4dkbNj5AkEAiTQESAc0v/DaI89m97cD6bR3o7VMdmdhS+FDjmR0EKJYhsF7iWC2jehOz9GQH+26z7udh9XC7yHMviXYzt945A==";
     private String cmAccount = "A1F078B2B6DE43EC34071ED42EC6D359";
 //    private String cmAccount = "AAD38EE44AC49124B18C089717ED10B0";
 
@@ -57,7 +48,7 @@ public class OpenApplicationTests {
     @Test
     public void productDetail() throws Exception {
         JSONObject json = new JSONObject();
-        json.put("productId", "0002");
+        json.put("productId", "0009");
         // 私钥签名
         String sign = KeyUtils.buildSign(json, privateKey);
         json.put("sign", sign);
@@ -72,7 +63,7 @@ public class OpenApplicationTests {
     @Test
     public void orderSubmit() throws Exception {
         JSONObject json = new JSONObject();
-        json.put("orderId", "cm8872");
+        json.put("orderId", "cm8882");
         json.put("notifyUrl", "https://open-b.caimei365.com/order/pay/callBack");
         JSONObject addressInfoMap =  new JSONObject();
         addressInfoMap.put("provinceName", "广东省");
@@ -86,14 +77,9 @@ public class OpenApplicationTests {
 //        productInfoMap.put("0001", 2);
 //        productInfoMap.put("0002", 3);
 //        productInfoMap.put("0003", 4);
-        productInfoMap.put("0004", 4);
-        productInfoMap.put("0006", 3);
+        productInfoMap.put("0003", 2);
         json.put("productInfo", productInfoMap);
-        JSONObject payInfoMap = new JSONObject();
-        payInfoMap.put("orderShouldPayFee", 2360.14f);
-        payInfoMap.put("freight", 0);
-        payInfoMap.put("freePostFlag", -1);
-        json.put("payInfo", payInfoMap);
+        json.put("orderShouldPayFee", new BigDecimal(600f).toString());
         JSONObject orderInvoiceMap = new JSONObject();
         orderInvoiceMap.put("type", 2);
         orderInvoiceMap.put("invoiceTitle", "单位名称");
@@ -119,7 +105,7 @@ public class OpenApplicationTests {
     @Test
     public void orderDetail() throws Exception {
         JSONObject json = new JSONObject();
-        json.put("orderId", "cm8870");
+        json.put("orderId", "cm8872");
         // 私钥签名
         String sign = KeyUtils.buildSign(json, privateKey);
         json.put("sign", sign);
@@ -135,7 +121,7 @@ public class OpenApplicationTests {
     @Test
     public void orderCancel() throws Exception {
         JSONObject json = new JSONObject();
-        json.put("orderId", "cm8869");
+        json.put("orderId", "cm8871");
         // 私钥签名
         String sign = KeyUtils.buildSign(json, privateKey);
         json.put("sign", sign);
@@ -148,14 +134,4 @@ public class OpenApplicationTests {
     }
 
 
-
-
-    @Test
-    public void buildKey() throws NoSuchAlgorithmException {
-        KeyPair keyPair = KeyGenerator.generateKeyPair();
-        String publicKey = keyPair.getPublicKey();
-        String privateKey = keyPair.getPrivateKey();
-        System.out.println(publicKey);
-        System.out.println(privateKey);
-    }
 }