新增盛大报价
This commit is contained in:
@@ -7,10 +7,7 @@ import lingtao.net.bean.SysUser;
|
||||
import lingtao.net.dao.ProductMapper;
|
||||
import lingtao.net.dao.QuoteLogMapper;
|
||||
import lingtao.net.util.*;
|
||||
import lingtao.net.vo.FunReturnVo;
|
||||
import lingtao.net.vo.HuaFangPriceProcessItemsVo;
|
||||
import lingtao.net.vo.HuaFangPriceRequstVo;
|
||||
import lingtao.net.vo.HuaFangPriceResultVo;
|
||||
import lingtao.net.vo.*;
|
||||
import org.apache.commons.collections.map.HashedMap;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -1605,21 +1602,21 @@ public class ProductService {
|
||||
|
||||
if ("300克".equals(dto.getKind())) {
|
||||
double sePrice = 5;
|
||||
prices = new double[]{70, 140, 280, 350, 700, 1400, 2100, 3500, 7000};
|
||||
prices = new double[]{70, 135, 270, 335, 680, 1375, 2070, 3465, 6960};
|
||||
if ((width <= 9 && length <= 5.4) || (length <= 9 && width <= 5.4)) {
|
||||
|
||||
} else if (width < 10 && length < 10) {
|
||||
sePrice = 10;
|
||||
prices = new double[]{128, 256, 512, 640, 1280, 2560, 3840, 6400, 12800};
|
||||
prices = new double[]{128, 251, 502, 625, 1260, 2535, 3810, 6365, 12760};
|
||||
} else if ((width <= 10 && length <= 15) || (length <= 10 && width <= 15)) {
|
||||
prices = new double[]{185, 370, 740, 925, 1850, 3700, 5550, 9250, 18500};
|
||||
prices = new double[]{185, 365, 730, 910, 1830, 3675, 5520, 9215, 18460};
|
||||
sePrice = 15;
|
||||
} else if (width < 15 && length < 15) {
|
||||
prices = new double[]{300, 600, 1200, 1500, 3000, 6000, 9000, 15000, 30000};
|
||||
prices = new double[]{300, 595, 1190, 1485, 2980, 5975, 8970, 14965, 29960};
|
||||
sePrice = 20;
|
||||
// ((width <= 20 && length <= 15) || (length <= 20 && width <= 15))
|
||||
} else {
|
||||
prices = new double[]{450, 900, 1800, 2250, 4500, 9000, 13500, 22500, 45000};
|
||||
prices = new double[]{450, 895, 1790, 2235, 4480, 8975, 13470, 22465, 44960};
|
||||
sePrice = 25;
|
||||
}
|
||||
|
||||
@@ -2964,23 +2961,23 @@ public class ProductService {
|
||||
designFee = 16;
|
||||
designFee9 = 15;
|
||||
}*/ else if ((length - 4 <= 210 && width - 4 <= 140) || (length - 4 <= 140 && width - 4 <= 210)) {
|
||||
designFee = 15;
|
||||
designFee = 10;
|
||||
designFee9 = 15;
|
||||
} else if ((length - 4 <= 285 && width - 4 - 4 <= 210) || (length - 4 <= 210 && width - 4 <= 285)) {
|
||||
designFee = 35;
|
||||
designFee = 30;
|
||||
designFee9 = 40;
|
||||
} else if ((length - 4 <= 420 && width - 4 <= 285) || (length - 4 <= 285 && width - 4 <= 420)) {
|
||||
designFee = 50;
|
||||
designFee = 45;
|
||||
designFee9 = 60;
|
||||
} else {
|
||||
designFee = 50;
|
||||
designFee = 45;
|
||||
designFee9 = 80;
|
||||
}
|
||||
if ("腰封".equals(dto.getKind())) {
|
||||
zhang = 8;
|
||||
}
|
||||
if ("特种纸名片".equals(dto.getKind())) {
|
||||
zhang = 18;
|
||||
zhang = 16;
|
||||
}
|
||||
// 一张l/w 大的纸张能做多少个此类尺寸的产品
|
||||
double max = 1;
|
||||
@@ -4366,12 +4363,96 @@ public class ProductService {
|
||||
return getTearingJoyPrice(dto, width, length);
|
||||
case "哑粉纸":
|
||||
return getYaFenPrice(dto, width, length);
|
||||
case "UV打印亚克力":
|
||||
return getUVDayinYKLPrice(dto, width, length);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<Product> getUVDayinYKLPrice(Product dto, Double width, Double length) {
|
||||
List<String> craft_lists = dto.getCraft() == null ? new ArrayList<>() : Arrays.asList(dto.getCraft());
|
||||
List<String> craft_list = new ArrayList<>(craft_lists);
|
||||
List<Product> priceList = new ArrayList<>();
|
||||
int count = dto.getCount();
|
||||
int number = dto.getNumber();
|
||||
|
||||
ShengDaPriceRequstVo params = new ShengDaPriceRequstVo();
|
||||
params.setProductCategory("UVDAYINYAKELI");
|
||||
params.setPaper(dto.getKind());
|
||||
ShengDaPriceRequstItemVo baseCrafts = new ShengDaPriceRequstItemVo();
|
||||
|
||||
baseCrafts.setName("打印");
|
||||
Map<String, String> basecraftsItem = new HashMap<>();
|
||||
basecraftsItem.put("类型", "标准款");
|
||||
baseCrafts.setParameters(basecraftsItem);
|
||||
params.setBaseCrafts(Collections.singletonList(baseCrafts));
|
||||
|
||||
List<ShengDaPriceRequstPartsVo> partsVoList = new ArrayList<>();
|
||||
ShengDaPriceRequstPartsVo partsVo = new ShengDaPriceRequstPartsVo();
|
||||
partsVo.setName("板块");
|
||||
partsVo.setNum(count * number);
|
||||
partsVo.setSizeUnit("CM");
|
||||
partsVo.setWidth(width);
|
||||
partsVo.setHeight(length);
|
||||
//印面 0不印 1单面 2双面
|
||||
partsVo.setPrintSide(0);
|
||||
craft_list.remove("不印面");
|
||||
if (craft_list.contains("单面")) {
|
||||
partsVo.setPrintSide(1);
|
||||
craft_list.remove("单面");
|
||||
}
|
||||
if (craft_list.contains("双面")) {
|
||||
partsVo.setPrintSide(2);
|
||||
craft_list.remove("双面");
|
||||
}
|
||||
List<ShengDaPriceRequstItemVo> crafts = new ArrayList<>();
|
||||
//固定分类
|
||||
ShengDaPriceRequstItemVo craft_diaoke = new ShengDaPriceRequstItemVo();
|
||||
craft_diaoke.setName("按设计文件雕刻");
|
||||
Map<String, String> craft_diaokeItem = new HashMap<>();
|
||||
craft_diaokeItem.put("类型", "文件造型");
|
||||
craft_diaoke.setParameters(craft_diaokeItem);
|
||||
crafts.add(craft_diaoke);
|
||||
|
||||
for (String s : craft_list) {
|
||||
ShengDaPriceRequstItemVo craftItem = new ShengDaPriceRequstItemVo();
|
||||
HashMap<String, String> parameters = new HashMap<>();
|
||||
if ("3m胶".equals(s)) {
|
||||
craftItem.setName("背胶");
|
||||
parameters.put("类型", "覆3M胶");
|
||||
craftItem.setParameters(parameters);
|
||||
} else if ("打孔".equals(s)) {
|
||||
craftItem.setName("打孔");
|
||||
String type = "按文件设计";
|
||||
if (craft_list.contains("广告钉") || craft_list.contains("镜钉")) {
|
||||
type = "按钉子直径打孔";
|
||||
}
|
||||
parameters.put("类型", type);
|
||||
parameters.put("单块打孔个数", String.valueOf(Math.max(dto.getPcount() == null ? 0 : dto.getPcount(), 1)));
|
||||
craftItem.setParameters(parameters);
|
||||
} else {
|
||||
craftItem.setName(s);
|
||||
}
|
||||
crafts.add(craftItem);
|
||||
}
|
||||
partsVo.setCrafts(crafts);
|
||||
partsVoList.add(partsVo);
|
||||
params.setParts(partsVoList);
|
||||
|
||||
ShengDaPriceResultVo result = ShengDaPriceUtils.getPrice(params);
|
||||
double price = Math.ceil(result.getData().getPrice() / (1 - 0.65));
|
||||
double designPrice = number * 5;
|
||||
|
||||
Product product = new Product();
|
||||
product.setPrice(Math.ceil(Math.max(price, 30) + designPrice));
|
||||
product.setCount(dto.getCount());
|
||||
product.setNumber(dto.getNumber());
|
||||
priceList.add(product);
|
||||
return priceList;
|
||||
}
|
||||
|
||||
private List<Product> getsmPVCPrice(Product dto, Double width, Double length, String role) {
|
||||
List<String> craft_list = dto.getCraft() == null ? new ArrayList<>() : Arrays.asList(dto.getCraft());
|
||||
List<Product> priceList = new ArrayList<>();
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package lingtao.net.util;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lingtao.net.vo.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class ShengDaPriceUtils {
|
||||
|
||||
private static final String AppId = "3a1ab376af58ec4e918b4c506480efdf";
|
||||
private static final String AppSecret = "e06KAvT6ugHpQd5zjHukfMJBH0dxfA74gWk9o1lsLqOMTYExFVvWuTh0twMQvNBF";
|
||||
//UV打印亚克力
|
||||
private static final String productId = "UVDAYINYAKELI";
|
||||
|
||||
public static String getToken() {
|
||||
String tokenString = HttpUtils.sendGetRequest("http://47.114.150.226:88/Handler/apiShengda.ashx?t=apiGetToken");
|
||||
System.out.println("获取token返回:" + tokenString);
|
||||
ShengDaTokenVo huaFangTokenVo = JSONObject.parseObject(tokenString, ShengDaTokenVo.class);
|
||||
return huaFangTokenVo.getResult();
|
||||
}
|
||||
|
||||
|
||||
public static ShengDaPriceResultVo getPrice(ShengDaPriceRequstVo params) {
|
||||
Map<String, String> heards = new HashMap<>();
|
||||
heards.put("Authorization", "Bearer " + getToken());
|
||||
String resultText = HttpUtils.sendPostRequest("https://open.sd2000.com/api/app/calculate", JSONObject.toJSONString(params), heards);
|
||||
ShengDaPriceResultVo result = JSONObject.parseObject(resultText, ShengDaPriceResultVo.class);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package lingtao.net.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class ShengDaPriceRequstItemVo {
|
||||
|
||||
private String name;
|
||||
|
||||
private Map<String, String> parameters;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package lingtao.net.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ShengDaPriceRequstPartsVo {
|
||||
private List<ShengDaPriceRequstItemVo> crafts;
|
||||
private String name;
|
||||
private Integer num;
|
||||
private String sizeUnit;
|
||||
private Double height;
|
||||
private Double width;
|
||||
private Integer printSide;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package lingtao.net.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ShengDaPriceRequstVo {
|
||||
|
||||
private String productCategory;
|
||||
|
||||
private String paper;
|
||||
|
||||
private List<ShengDaPriceRequstItemVo> baseCrafts;
|
||||
|
||||
private List<ShengDaPriceRequstPartsVo> parts;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package lingtao.net.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class ShengDaPriceResultVo {
|
||||
private Integer errCode;
|
||||
private String errMsg;
|
||||
private ResultData data;
|
||||
|
||||
@Data
|
||||
public class ResultData {
|
||||
private String productCategoryId;
|
||||
private String productCategoryName;
|
||||
private Double price;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package lingtao.net.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ShengDaTokenVo {
|
||||
private String type;
|
||||
private String result;
|
||||
}
|
||||
Reference in New Issue
Block a user