编辑代码

class Main {
	public static void main(String[] args) {
        int DeductedGoldShellMode = 1;

                //购买金币数来扣减
                Integer orderGoldShell =750;
                Integer userGoldShell =700;
                Integer userBindGoldShell =50;

                  //根据扣减方式来扣减金币
                Integer deductedGoldShell=0;
                Integer deductedBindGoldShell = 0;
                Integer tempDeductedGoldShell =0;
                Integer tempSurplusGoldShell=0;

                   //扣减时先扣减非绑定金币,若非绑定金币不足,再扣减绑定金币
                    if(orderGoldShell>userGoldShell){
                        deductedGoldShell=userGoldShell;
                        tempDeductedGoldShell=orderGoldShell-userGoldShell;
                        tempSurplusGoldShell=tempDeductedGoldShell;
                        if(userBindGoldShell>0){
                            if(tempDeductedGoldShell > userBindGoldShell){
                                deductedBindGoldShell=userBindGoldShell;
                                tempSurplusGoldShell=tempDeductedGoldShell-userBindGoldShell;
                            }else{
                                deductedBindGoldShell=tempDeductedGoldShell;
                                tempSurplusGoldShell=0;
                            }
                        }
                    }else{
                        deductedGoldShell= orderGoldShell;
                    }
                    //System.out.println("before mode deductedGoldShell="+deductedGoldShell);
                    if(DeductedGoldShellMode==1){
                        deductedGoldShell=deductedGoldShell+tempSurplusGoldShell;
                    }else if(DeductedGoldShellMode==0 && userGoldShell<0){
                        deductedGoldShell=0;
                    }
                    deductedGoldShell=-1*deductedGoldShell;
                    deductedBindGoldShell=-1*deductedBindGoldShell;
                     System.out.println("deductedGoldShell="+deductedGoldShell);
                     System.out.println("deductedBindGoldShell="+deductedBindGoldShell);

                    int remainUserGoldShell=userGoldShell+deductedGoldShell;
                    int remainUserBindGoldShell=userBindGoldShell+deductedBindGoldShell;
                    System.out.println("remainUserGoldShell="+remainUserGoldShell);
                    System.out.println("remainUserBindGoldShell="+remainUserBindGoldShell);

                    int actualDeductedGoldShell=0;
                    if(deductedGoldShell<0){
                       actualDeductedGoldShell= remainUserGoldShell-deductedGoldShell;
                    }
                    int actualDeductedBindGoldShell=0;
                    if(deductedBindGoldShell<0){
                       actualDeductedBindGoldShell= remainUserBindGoldShell-deductedBindGoldShell;
                    }

                    System.out.println("---actualDeductedGoldShell="+actualDeductedGoldShell);
                    System.out.println("---actualDeductedBindGoldShell="+actualDeductedBindGoldShell);
                    if(actualDeductedGoldShell<0){
                        actualDeductedGoldShell=0;
                    }
                     if(actualDeductedGoldShell>=orderGoldShell){
                        actualDeductedGoldShell=orderGoldShell;
                     }
                    if(actualDeductedBindGoldShell<0){
                        actualDeductedBindGoldShell=0;
                    }
                     if(actualDeductedBindGoldShell>=orderGoldShell){
                        actualDeductedBindGoldShell=orderGoldShell;
                     }
                    System.out.println("actualDeductedGoldShell="+actualDeductedGoldShell);
                    System.out.println("actualDeductedBindGoldShell="+actualDeductedBindGoldShell);
	}
}