1. 程式人生 > >伺服器同步運營商資料業務邏輯(技術無關)

伺服器同步運營商資料業務邏輯(技術無關)

情景:

伺服器這邊資料儲存運營商的套餐列表,伺服器根據運營商的套餐變更而變更

當運營商刪除套餐,伺服器這邊刪除對應套餐,當運營商新增套餐,伺服器新增對應套餐,不變的套餐保持不變(伺服器這邊刪除套餐最好是邏輯刪除)

package testt;

import java.util.ArrayList;
import java.util.List;

public class Test {
	public static void main(String[] args) {
		//套餐:1(套餐)2(套餐)依次類推
		//1是原來的 (伺服器這邊有,運營商這邊也有。不需要變更的套餐)
		//2是新增的(伺服器這邊沒有,運營商這邊有。需要新增的套餐)
		//3是原來的(伺服器這邊有,運營商這邊也有。不需要變更的套餐)
		//4是需要刪除的(伺服器這邊有,運營商這邊沒有,需要在伺服器這邊邏輯刪除的套餐)
		
		//邏輯
//		運營商資料                  資料庫資料
//		    1               1
//		    2               3
//		    3               4
		List<Integer> yun=new ArrayList<Integer>();//運營商
		yun.add(1);
		yun.add(2);
		yun.add(3);
		List<Integer> data=new ArrayList<Integer>();//伺服器
		data.add(1);
		data.add(3);
		data.add(4);
		List<Integer> add=new ArrayList<Integer>();//需要新增的資料
		List<Integer> delete=new ArrayList<Integer>();//需要刪除的資料
		List<Integer> hold=new ArrayList<Integer>();//需要保持不變的資料
		for(Integer y:yun){
			boolean flag=false;
			for(Integer d:data){
				if(y.equals(d)){
					flag=true;
				}
			}
			if(flag){//存在
				hold.add(y);
			}else{//不存在
				add.add(y);
			}
		}
		for(Integer d:data){
			boolean flag=false;
			for(Integer y:yun){
				if(d.equals(y)){
					flag=true;
				}
			}
			if(!flag){//不存在
				delete.add(d);
			}
		}
		for(Integer a:add){
			System.out.println("新增="+a);
		}
		for(Integer d:delete){
			System.out.println("刪除="+d);
		}
		for(Integer c:hold){
			System.out.println("不變="+c);
		}
	}
}

新增=2

刪除=4

不變=1

不變=3