|
@@ -84,6 +84,19 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
@Autowired
|
|
|
private SupplierProductMapper supplierProductMapper;
|
|
|
|
|
|
+ /**
|
|
|
+ * 缓存订单项的前缀
|
|
|
+ */
|
|
|
+ public static String CACHE_ORDER_ITEM_NAME = null;
|
|
|
+ static {
|
|
|
+ Map<String,String> map = System.getenv();
|
|
|
+ if ("iZ94klno8qrZ".equalsIgnoreCase(map.get("COMPUTERNAME"))) {
|
|
|
+ CACHE_ORDER_ITEM_NAME = "RST_ORDER_ITEM_";
|
|
|
+ } else {
|
|
|
+ CACHE_ORDER_ITEM_NAME = "adv_ORDER_ITEM_";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Integer addSalesOrder(SalesOrder salesOrder) {
|
|
|
return salesOrderMapper.addSalesOrder(salesOrder);
|
|
@@ -251,14 +264,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
}
|
|
|
|
|
|
// 更新Redis缓存
|
|
|
- Map<String,String> map = System.getenv();
|
|
|
- String name = map.get("COMPUTERNAME");
|
|
|
- if ("iZ94klno8qrZ".equalsIgnoreCase(name)) {
|
|
|
- name = "RST_";
|
|
|
- } else {
|
|
|
- name = "adv_";
|
|
|
- }
|
|
|
- RedisUtils.del(name + "ORDER_ITEM_" + salesOrder.getSalesId());
|
|
|
+ cacheOrderItem(salesOrder.getSalesId());
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
@@ -277,29 +283,46 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
return salesOrderMapper.listSalesOrderNum(salesOrder);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取订单的订单项,首先从REDIS中获取,如果没有获取到,尝试从数据库获取
|
|
|
+ * @param salesId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<SalesOrderItem> listOrderItem(Integer salesId) {
|
|
|
+ String key = CACHE_ORDER_ITEM_NAME + salesId;
|
|
|
+ List<SalesOrderItem> list = RedisUtils.list(key, SalesOrderItem.class);
|
|
|
+ if (list == null) {
|
|
|
+ cacheOrderItem(salesId);
|
|
|
+ }
|
|
|
+ return RedisUtils.list(key, SalesOrderItem.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新缓存订单项(从数据库获取一次)
|
|
|
+ * @param salesId
|
|
|
+ */
|
|
|
+ private void cacheOrderItem(Integer salesId) {
|
|
|
+ // 查询数据库的数据
|
|
|
+ SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
+ salesOrderItem.setItemOrderId(salesId);
|
|
|
+ List<SalesOrderItem> list = salesOrderMapper.listSalesOrderItem(salesOrderItem);
|
|
|
+ // 缓存
|
|
|
+ String key = CACHE_ORDER_ITEM_NAME + salesId;
|
|
|
+ RedisUtils.put(key, list);
|
|
|
+ RedisUtils.expire(key,DateTimeUtil.addDay(1));
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public PagedResult<SalesOrder> listSalesOrderPage(int pageNO, int pageSize, SalesOrder salesOrder, boolean isTotalNum) {
|
|
|
+ // 初始化页面分页的数据
|
|
|
salesOrder.setStartOrderNO((pageNO-1) * pageSize);
|
|
|
salesOrder.setEndOrderNO(pageSize);
|
|
|
//查询订单列表信息
|
|
|
List<SalesOrder> orderList = salesOrderMapper.listSalesOrderNew(salesOrder);
|
|
|
for(SalesOrder so : orderList){
|
|
|
- SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
- salesOrderItem.setItemOrderId(so.getSalesId());
|
|
|
- List<SalesOrderItem> salesOrderItemList = salesOrderMapper.listSalesOrderItem(salesOrderItem);
|
|
|
- //去除已退货的订单项
|
|
|
- /*int num = salesOrderItemList.size(); 2019年7月10日 更新
|
|
|
- for(int i = 0;i< num;){
|
|
|
- SalesOrderItem item = salesOrderItemList.get(i);
|
|
|
- if(item.getItemNum().intValue() == item.getItemReturnNum().intValue()){
|
|
|
- salesOrderItemList.remove(i);
|
|
|
- num = salesOrderItemList.size();
|
|
|
- i = 0;
|
|
|
- }else{
|
|
|
- i++;
|
|
|
- }
|
|
|
- }*/
|
|
|
- for(SalesOrderItem item : salesOrderItemList){//判断是否包含净水机 1是 2否
|
|
|
+ List<SalesOrderItem> salesOrderItemList = listOrderItem(so.getSalesId());
|
|
|
+ for(SalesOrderItem item : salesOrderItemList){
|
|
|
+ //判断是否包含净水机 1是 2否
|
|
|
if(item.getColorIsMachine() != null){
|
|
|
if(item.getColorIsMachine() == 1){
|
|
|
so.setIsDevelop(1);
|
|
@@ -662,6 +685,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ // 缓存订单项
|
|
|
+ cacheOrderItem(mainOrder.getSalesId());
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -712,22 +737,6 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|
|
|
|
|
@Override
|
|
|
public List<SalesOrderItem> listSalesOrderItem(SalesOrderItem salesOrderItem) {
|
|
|
- // 通过计算机名称来判断服务器环境
|
|
|
- /*Map<String,String> map = System.getenv();
|
|
|
- String name = map.get("COMPUTERNAME");
|
|
|
- if ("iZ94klno8qrZ".equalsIgnoreCase(name)) {
|
|
|
- name = "RST_";
|
|
|
- } else {
|
|
|
- name = "adv_";
|
|
|
- }
|
|
|
- // 获取数据
|
|
|
- String key = name + "ORDER_ITEM_" + salesOrderItem.getItemOrderId();
|
|
|
- List<SalesOrderItem> list = RedisUtils.list(key, SalesOrderItem.class);
|
|
|
- if (list == null ) {
|
|
|
- list = salesOrderMapper.listSalesOrderItem(salesOrderItem);
|
|
|
- RedisUtils.put(key, list);
|
|
|
- RedisUtils.expire(key, new Date(259200000 + System.currentTimeMillis()));
|
|
|
- }*/
|
|
|
return salesOrderMapper.listSalesOrderItem(salesOrderItem);
|
|
|
}
|
|
|
|