using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.Data.SqlClient;
[WebService(Namespace = " http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () {
        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }
    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }
    /// <summary>
    /// 客户结账后把钱放在中介处
    /// </summary>
    /// <param name="addID"></param>
    /// <param name="m"></param>
    /// <returns></returns>
    [WebMethod]
    public string ConvertMoney(int addID, int m)
    {
        SqlConnection con = new SqlConnection("server=DFDAWEFDSSEW;database=FlowerDB;user=sa;pwd=sa;");
        //准备加钱的命令
        string sql = "insert Medi values(@addID,12345,@m)";
        SqlCommand cmd = new SqlCommand(sql, con);
        SqlParameter aID = new SqlParameter("@addID", SqlDbType.Int);
        aID.Value = addID;
        cmd.Parameters.Add(aID);
        SqlParameter mID = new SqlParameter("@m", SqlDbType.Int);
        mID.Value = m;
        cmd.Parameters.Add(mID);
        //准备减钱的命令
        string sql1 = "update UserPay set SumMoney=SumMoney-@m where PayID=@addID and SumMoney>@m";
        SqlCommand cmd1 = new SqlCommand(sql1, con);
        SqlParameter mID1 = new SqlParameter("@m", SqlDbType.Int);
        mID1.Value = m;
        cmd1.Parameters.Add(mID1);
        SqlParameter ID = new SqlParameter("@addID", SqlDbType.Int);
        ID.Value = addID;
        cmd1.Parameters.Add(ID);
        //执行
        SqlTransaction trans = null;
        try
        {
            con.Open();
            trans = con.BeginTransaction();
            //用事务将所有的命令串起来
            cmd.Transaction = trans;
            cmd1.Transaction = trans;
            //业务上判断:执行成功,再提交,否则,回滚
            int i = cmd.ExecuteNonQuery();
            int i1 = cmd1.ExecuteNonQuery();
            if (i == 1 && i1 == 1)
            {
                trans.Commit();
                con.Close();
                return "成功";
            }
            else
            {
                trans.Rollback();
                con.Close(); ;
                return "余额不足";
            }
        }
        catch (Exception ex)
        {
            //如果有异常,回滚
            if (trans != null)
                trans.Rollback();
            return "系统繁忙";
        }
        finally
        {
            if (con.State == ConnectionState.Open)
                con.Close();
        }
    }
    /// <summary>
    /// 客户确认后把中介处钱打入商家账户
    /// </summary>
    /// <param name="addID"></param>
    /// <param name="m"></param>
    /// <returns></returns>
    [WebMethod]
    public string ConvertToMoney(int addID, int m)
    {
        SqlConnection con = new SqlConnection("server=DFDAWEFDSSEW;database=FlowerDB;user=sa;pwd=sa;");
        //准备加钱的命令
        string sql = "update Buss set SumMon=SumMon+@m where PayID=@addID";
        SqlCommand cmd = new SqlCommand(sql, con);
        SqlParameter aID = new SqlParameter("@addID", SqlDbType.Int);
        aID.Value = addID;
        cmd.Parameters.Add(aID);
        SqlParameter mID = new SqlParameter("@m", SqlDbType.Int);
        mID.Value = m;
        cmd.Parameters.Add(mID);
        //准备减钱的命令
        string sql1 = "delete Medi where PayID=@addID";
        SqlCommand cmd1 = new SqlCommand(sql1, con);
        SqlParameter ID = new SqlParameter("@addID", SqlDbType.Int);
        ID.Value = addID;
        cmd1.Parameters.Add(ID);
        //执行
        SqlTransaction trans = null;
        try
        {
            con.Open();
            trans = con.BeginTransaction();
            //用事务将所有的命令串起来
            cmd.Transaction = trans;
            cmd1.Transaction = trans;
            //业务上判断:执行成功,再提交,否则,回滚
            int i = cmd.ExecuteNonQuery();
            int i1 = cmd1.ExecuteNonQuery();
            if (i == 1 && i1 == 1)
            {
                trans.Commit();
                con.Close();
                return "成功";
            }
            else
            {
                trans.Rollback();
                con.Close();
                return "余额不足";
            }
        }
        catch (Exception ex)
        {
            //如果有异常,回滚
            if (trans != null)
                trans.Rollback();
            return "系统繁忙";
        }
        finally
        {
            if (con.State == ConnectionState.Open)
                con.Close();
        }
    }
}