Browse Source

Merge branch 'dev-mysql' into dev-mysql-1227

hulh 8 years ago
parent
commit
7d850afd13

+ 10 - 0
src/main/java/com/uas/platform/b2c/logistics/controller/DistributionRuleController.java

@@ -6,6 +6,7 @@ import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.logistics.model.DistributionRule;
 import com.uas.platform.b2c.logistics.model.UsableRuleInfo;
 import com.uas.platform.b2c.logistics.service.DistributionRuleService;
+import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.logging.BufferedLoggerManager;
 import com.uas.platform.core.model.PageParams;
@@ -143,4 +144,13 @@ public class DistributionRuleController {
 	public List<UsableRuleInfo> findFareRule(Double price, @RequestBody List<UsableRuleInfo> ruleList){
 		return distributionRuleService.findFareOfRule(ruleList, price);
 	}
+
+	/**
+	 * 获取指定运费价格
+	 * @return
+	 */
+	@RequestMapping(value = "/update/price", method = RequestMethod.GET)
+	public List<Goods>  getUpdate(){
+		return distributionRuleService.updateData();
+	}
 }

+ 3 - 0
src/main/java/com/uas/platform/b2c/logistics/service/DistributionRuleService.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2c.logistics.service;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2c.logistics.model.DistributionRule;
 import com.uas.platform.b2c.logistics.model.UsableRuleInfo;
+import com.uas.platform.b2c.prod.commodity.model.Goods;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageParams;
 import org.springframework.data.domain.Page;
@@ -103,4 +104,6 @@ public interface DistributionRuleService {
 	 * @return
 	 */
 	List<UsableRuleInfo> findFareOfRule(List<UsableRuleInfo> ruleList, Double price);
+
+	List<Goods> updateData();
 }

+ 62 - 0
src/main/java/com/uas/platform/b2c/logistics/service/impl/DistributionRuleServiceImpl.java

@@ -10,9 +10,13 @@ import com.uas.platform.b2c.logistics.dao.AddressTakeSelfDao;
 import com.uas.platform.b2c.logistics.dao.DistributionRuleDao;
 import com.uas.platform.b2c.logistics.model.*;
 import com.uas.platform.b2c.logistics.service.DistributionRuleService;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
+import com.uas.platform.b2c.prod.commodity.model.Goods;
+import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
 import com.uas.platform.b2c.prod.store.dao.StoreInDao;
 import com.uas.platform.b2c.prod.store.model.StoreIn;
 import com.uas.platform.b2c.prod.store.model.StoreStatus;
+import com.uas.platform.b2c.trade.order.StringConstant.Currency;
 import com.uas.platform.b2c.trade.support.CodeType;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.exception.IllegalOperatorException;
@@ -53,6 +57,9 @@ public class DistributionRuleServiceImpl implements DistributionRuleService{
 	@Autowired
 	private SysConf sysConf;
 
+	@Autowired
+	private GoodsDao goodsDao;
+
 	@Override
 	public Page<DistributionRule> findPageRule(PageParams params) {
 		final PageInfo pageInfo = new PageInfo(params);
@@ -532,4 +539,59 @@ public class DistributionRuleServiceImpl implements DistributionRuleService{
 			return false;
 		}
 	}
+
+	@Override
+	public List<Goods> updateData() {
+		List<Goods> allGoods = goodsDao.findAll();
+		List<Goods> resultList = new ArrayList<>(allGoods.size());
+		for (Goods goods : allGoods) {
+			if (isNeedUpdate(goods)) {
+//				updatePrice(goods);
+				resultList.add(goods);
+			}
+		}
+//		goodsDao.save(resultList);
+		return resultList;
+	}
+
+	private void updatePrice(Goods goods) {
+		if (Currency.RMB.equals(goods.getCurrencyName())) {
+			goods.setMinPriceRMB(GoodsUtil.getMinPriceRMB(goods.getPrices()));
+			goods.setMaxPriceRMB(GoodsUtil.getMaxPriceRMB(goods.getPrices()));
+		} else if (Currency.USD.equals(goods.getCurrencyName())) {
+			goods.setMinPriceUSD(GoodsUtil.getMinPriceUSD(goods.getPrices()));
+			goods.setMaxPriceUSD(GoodsUtil.getMaxPriceUSD(goods.getPrices()));
+		}
+	}
+
+	private boolean isNeedUpdate(Goods goods) {
+		if (Currency.RMB.equals(goods.getCurrencyName())) {
+			return boolRmb(goods);
+		} else if (Currency.USD.equals(goods.getCurrencyName())) {
+			return boolUsd(goods);
+		}
+		return false;
+	}
+
+	private boolean boolRmb(Goods goods) {
+		if (goods.getMinPriceRMB() == null || goods.getMaxPriceRMB() == null) {
+			return true;
+		}
+		if (!goods.getMinPriceRMB().equals(GoodsUtil.getMinPriceRMB(goods.getPrices()))
+				|| !goods.getMaxPriceRMB().equals(GoodsUtil.getMaxPriceRMB(goods.getPrices()))) {
+			return true;
+		}
+		return false;
+	}
+
+	private boolean boolUsd(Goods goods) {
+		if (goods.getMinPriceUSD() == null || goods.getMaxPriceUSD() == null) {
+			return true;
+		}
+		if (!goods.getMinPriceUSD().equals(GoodsUtil.getMinPriceUSD(goods.getPrices()))
+				|| !goods.getMaxPriceUSD().equals(GoodsUtil.getMaxPriceUSD(goods.getPrices()))) {
+			return true;
+		}
+		return false;
+	}
 }