|
@@ -53,6 +53,8 @@ public class ProductController extends BaseController {
|
|
|
String equipmentId = "";
|
|
|
Double f=0.00;
|
|
|
int num=0;
|
|
|
+ int n=0;
|
|
|
+ List<Double> price = new ArrayList<Double>();
|
|
|
List<ProductVo> list = new ArrayList<>();
|
|
|
for (Map<String,String> map:products) {
|
|
|
Product product = new Product();
|
|
@@ -72,17 +74,69 @@ public class ProductController extends BaseController {
|
|
|
BigDecimal adminProportion = proportion.getAdminProportion();
|
|
|
Double pricePro = adminProportion.doubleValue()/100;
|
|
|
//平台最低收入
|
|
|
- Double minProportion = 0.005;
|
|
|
+ Double minProportion = 0.01;
|
|
|
//获取重新设定的价格
|
|
|
Double rmbPrice = new BigDecimal( map.get("rmbPrice")).doubleValue();
|
|
|
+
|
|
|
+ //省级分销比例
|
|
|
+ BigDecimal agencyProportion = proportion.getAgencyProportion();
|
|
|
+ Double provinceProportion = agencyProportion.doubleValue()/100;
|
|
|
+ //市级比例
|
|
|
+ BigDecimal merchantProportion = proportion.getMerchantProportion();
|
|
|
+ Double cityProportion = merchantProportion.doubleValue()/100;
|
|
|
+ //终端比例
|
|
|
+ BigDecimal personageProportion = proportion.getPersonageProportion();
|
|
|
+ Double personProportion = personageProportion.doubleValue()/100;
|
|
|
+
|
|
|
+ //本次省级分得的价钱
|
|
|
+ Double provincePrice = rmbPrice*provinceProportion;
|
|
|
+ if(provincePrice>0){
|
|
|
+ provincePrice= new BigDecimal(provincePrice).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ }
|
|
|
+ //本次市级分得的价钱
|
|
|
+ Double cityPrice = rmbPrice*cityProportion;
|
|
|
+ if(cityPrice>0){
|
|
|
+ cityPrice= new BigDecimal(cityPrice).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ }
|
|
|
+ //本次终端分得的价钱
|
|
|
+ Double personPrice = rmbPrice*personProportion;
|
|
|
+ if(personPrice>0){
|
|
|
+ personPrice= new BigDecimal(personPrice).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ }
|
|
|
+
|
|
|
//价格和平台分销比例要大于0
|
|
|
if(pricePro>0&&rmbPrice>0){
|
|
|
//重新设定价格后平台收入和平台最低收入比较
|
|
|
if(rmbPrice*pricePro<minProportion){
|
|
|
num++;
|
|
|
- //保留3位小数点
|
|
|
+ //保留4位小数点
|
|
|
BigDecimal b = new BigDecimal(minProportion/pricePro);
|
|
|
- f = b.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ Double d = b.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ //最低价格f
|
|
|
+ Double testPrice = d-(tran2(d*provinceProportion)+tran2(d*cityProportion)+tran2(d*personProportion));
|
|
|
+ if(tran(testPrice)>=0.01){
|
|
|
+ f=d;
|
|
|
+ }else {
|
|
|
+ for(int i=0;i<=100;i++){
|
|
|
+ d+=0.1;
|
|
|
+ Double pricecd = d-(tran2(d*provinceProportion)+tran2(d*cityProportion)+tran2(d*personProportion));
|
|
|
+ if(tran(pricecd)>=0.01){
|
|
|
+ f=d;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Double testPrice = rmbPrice-(tran2(provincePrice)+tran2(cityPrice)+tran2(personPrice));
|
|
|
+ testPrice= new BigDecimal(testPrice).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ //判断本次价格设定是否合理
|
|
|
+ if(testPrice<0.01){
|
|
|
+ n++;
|
|
|
+ if(rmbPrice!=null){
|
|
|
+ price.add(rmbPrice);
|
|
|
+ }
|
|
|
+
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
@@ -95,10 +149,17 @@ public class ProductController extends BaseController {
|
|
|
Collections.sort(list);
|
|
|
System.out.println(list);
|
|
|
PushUtils.push(equipmentService.find(Long.parseLong(equipmentId)).getGtClientId(), "更新棉花价格", "更新棉花价格", PushUtils.buildJson("products", JSON.toJSONString(list)).toString());
|
|
|
- if(f>0){
|
|
|
-// JsonMessage.error("最低价格应为"+f+"元,或者设为0元。有"+num+"处价格设置不合理!!!");
|
|
|
-// Message.error("最低价格应为"+f+"元,或者设为0元。有"+num+"处价格设置不合理!!!");
|
|
|
- String errorData = "最低价格应大于"+f+"元,或者设为0元。有"+num+"处价格设置不合理!!!";
|
|
|
+ if(num>0 || n>0){
|
|
|
+ String errorData=null;
|
|
|
+ if(num>0 && n==0){
|
|
|
+ errorData = "最低价格为"+f+"元,或者设为0元。有"+num+"处价低于"+f;
|
|
|
+ }
|
|
|
+ if(num==0 && n>0){
|
|
|
+ errorData = "价格"+price.toString()+"设置不通过,请尽量提高价格";
|
|
|
+ }
|
|
|
+ if(num>0&&n>0){
|
|
|
+ errorData ="最低价格为"+f+"元,或者设为0元。有"+num+"处价低于"+f+"。并有价格"+price.toString()+"设置不通过,请尽量提高价格";
|
|
|
+ }
|
|
|
ERROR_MESSAGE.setContent(errorData);
|
|
|
addFlashMessage(redirectAttributes, ERROR_MESSAGE);
|
|
|
return ERROR_MESSAGE;
|
|
@@ -110,5 +171,10 @@ public class ProductController extends BaseController {
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ public Double tran(Double d){
|
|
|
+ return new BigDecimal(d).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ }
|
|
|
+ public Double tran2(Double d){
|
|
|
+ return new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ }
|
|
|
}
|