|
|
@@ -19,16 +19,39 @@ import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
import com.uas.platform.b2c.core.utils.DoubleArith;
|
|
|
import com.uas.platform.b2c.core.utils.FastjsonUtils;
|
|
|
import com.uas.platform.b2c.core.utils.NumberUtil;
|
|
|
-import com.uas.platform.b2c.core.utils.PatternUtil;
|
|
|
import com.uas.platform.b2c.core.utils.RegexConstant;
|
|
|
import com.uas.platform.b2c.external.erp.commodity.util.ModelConverter;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.IntegerConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
|
|
|
-import com.uas.platform.b2c.prod.commodity.dao.*;
|
|
|
-import com.uas.platform.b2c.prod.commodity.model.*;
|
|
|
+import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
|
|
|
+import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
|
|
|
+import com.uas.platform.b2c.prod.commodity.dao.GoodsModifyInfoDao;
|
|
|
+import com.uas.platform.b2c.prod.commodity.dao.GoodsSimpleDao;
|
|
|
+import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
|
|
|
+import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
|
|
|
+import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
|
|
|
+import com.uas.platform.b2c.prod.commodity.dao.ProductStandardPutOnInfoDao;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.Goods;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.GoodsFilter;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
|
|
|
import com.uas.platform.b2c.prod.commodity.model.GoodsHistory.OperateType;
|
|
|
-import com.uas.platform.b2c.prod.commodity.service.*;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.GoodsInfo;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.GoodsModifyInfo;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.GoodsPriceInfo;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.ModifyInfo;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.Product;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
|
|
|
+import com.uas.platform.b2c.prod.commodity.model.ProductStandardPutOnInfo;
|
|
|
+import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
|
|
|
+import com.uas.platform.b2c.prod.commodity.service.GoodsPriceInfoService;
|
|
|
+import com.uas.platform.b2c.prod.commodity.service.GoodsService;
|
|
|
+import com.uas.platform.b2c.prod.commodity.service.ProductService;
|
|
|
+import com.uas.platform.b2c.prod.commodity.service.ProductStandardPutOnInfoService;
|
|
|
+import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
|
|
|
import com.uas.platform.b2c.prod.commodity.status.ModifyInfoStatus;
|
|
|
import com.uas.platform.b2c.prod.commodity.type.ModifyConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
|
|
|
@@ -62,7 +85,11 @@ import com.uas.platform.b2c.trade.support.CodeType;
|
|
|
import com.uas.platform.b2c.trade.support.ResultMap;
|
|
|
import com.uas.platform.b2c.trade.util.BoundedExecutor;
|
|
|
import com.uas.platform.core.exception.IllegalOperatorException;
|
|
|
-import com.uas.platform.core.model.*;
|
|
|
+import com.uas.platform.core.model.Constant;
|
|
|
+import com.uas.platform.core.model.EncodingRulesConstant;
|
|
|
+import com.uas.platform.core.model.PageInfo;
|
|
|
+import com.uas.platform.core.model.PageParams;
|
|
|
+import com.uas.platform.core.model.Type;
|
|
|
import com.uas.platform.core.persistence.criteria.CriterionExpression;
|
|
|
import com.uas.platform.core.persistence.criteria.CriterionExpression.Operator;
|
|
|
import com.uas.platform.core.persistence.criteria.LogicalExpression;
|
|
|
@@ -99,7 +126,17 @@ import javax.persistence.criteria.Root;
|
|
|
import java.math.BigInteger;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.GregorianCalendar;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
import java.util.concurrent.Executors;
|
|
|
import java.util.regex.Matcher;
|
|
|
@@ -1470,6 +1507,17 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
info.setBatchCode(beforeGoods.getBatchCode());
|
|
|
infoList.add(info);
|
|
|
}
|
|
|
+ Integer beforeGoodsStatus = beforeGoods.getStatus();
|
|
|
+ Integer afterGoodsStatus = afterGoods.getStatus();
|
|
|
+ if (!beforeGoodsStatus.equals(afterGoodsStatus)) {
|
|
|
+ ModifyInfo info = new ModifyInfo();
|
|
|
+ info.setModifyField(ModifyConstant.MODIFY_GOODS_STATUS.getPhrase());
|
|
|
+ info.setBefore(Status.valueStringOf(beforeGoodsStatus));
|
|
|
+ info.setAfter(Status.valueStringOf(afterGoodsStatus));
|
|
|
+ info.setType(ModifyInfo.TYPE_SALE);
|
|
|
+ info.setBatchCode(beforeGoods.getBatchCode());
|
|
|
+ infoList.add(info);
|
|
|
+ }
|
|
|
Short beforeMaxDelivery = beforeGoods.getMaxDelivery();
|
|
|
Short afterMaxDelivery = afterGoods.getMaxDelivery();
|
|
|
if (!beforeMaxDelivery.equals(afterMaxDelivery)) {
|
|
|
@@ -1759,9 +1807,19 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
if (resultMap.getCode() != CodeType.OK.code()) {
|
|
|
return null;
|
|
|
}
|
|
|
-
|
|
|
GoodsHistory history = goodsHistoryService.converTGoodsHist(nowGoods,
|
|
|
OperateType.Update.getPhrase(), false);
|
|
|
+ // 修改上下架状态并产生上下架历史
|
|
|
+ GoodsHistory goodsHistory = null;
|
|
|
+ if (!nowGoods.getStatus().equals(oldGoods.getStatus())) {
|
|
|
+ nowGoods.setStatus(oldGoods.getStatus());
|
|
|
+ // 如果是下架
|
|
|
+ if (oldGoods.getStatus().equals(Status.REMOVED.value())) {
|
|
|
+ goodsHistory = goodsHistoryService.converTGoodsHist(nowGoods, OperateType.Down.getPhrase(), false);
|
|
|
+ } else if (oldGoods.getStatus().equals(Status.AVAILABLE.value())) {
|
|
|
+ goodsHistory = goodsHistoryService.converTGoodsHist(nowGoods, OperateType.Publish.getPhrase(), false);
|
|
|
+ }
|
|
|
+ }
|
|
|
List<Order> orders = detailService.updateOrderDetailsByGoods(nowGoods);
|
|
|
//更新购物车信息
|
|
|
List<Cart> cartList = cartService.updateCartByGoods(nowGoods);
|
|
|
@@ -1770,6 +1828,9 @@ public class GoodsServiceImpl implements GoodsService {
|
|
|
// ProductStandardPutOnInfo putOnInfo = productStandardPutOnInfoService.updateProductStandardPutOnInfoByGoods(nowGoods);
|
|
|
// Product product = productService.updateProduct(putOnInfo);
|
|
|
updateGoodsRelateInfo(orders, cartList, browsingHistories, null, null, history, nowGoods);
|
|
|
+ if (null != goodsHistory) {
|
|
|
+ goodsHistoryService.save(goodsHistory);
|
|
|
+ }
|
|
|
//更新店铺推荐的信息
|
|
|
if(isChangeSaleType) { // 如果切换了销售方式
|
|
|
Set<String> uuids = new HashSet<>();
|