yzh
2022-05-23 41ecad7e49a93c493832282b5ecd6c69f464b648
web/web/GwOrder.ashx
@@ -9,6 +9,7 @@
{
    private GwOrderDao _Dao = new GwOrderDao();
    private GwSpDao _GwSpDao = new GwSpDao();
    private GwClientDao _GwClientDao = new GwClientDao();
    private GwOpGroupDao _GwOpGroupDao = new GwOpGroupDao();
    private GwProductDao _GwProductDao = new GwProductDao();
    private SysXhDao _SysXhDao = new SysXhDao();
@@ -22,10 +23,18 @@
    private List<GwOpGroup> _GroupList;
    private List<GwProduct> _ProductList;   //产品及产品分类
    //private List<GwProduct> _ProductClassList;  //产品分类
    private int _userId = -1;
    private int _userType = -1;
    private string _account = "";
    public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context)
    {
        string @string = context.GetString("action");
        _userId = context.SessionObject.UserID;
        _userType = context.SessionObject.UserType;
        _account = context.SessionObject.Account;
        switch (@string)
        {
            case "delete":
@@ -66,8 +75,10 @@
        int recordCount = 0;
        int pageSize = context.GetInt("pageSize", 50);
        int pageIndex = context.GetInt("pageIndex", 1);
        string permissionsSQL = new GwClientDao().GetClientPermissions(_userId, _userType, "GWC");
        List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, clientName, flag, startDate, endDate, pageSize, pageIndex, out recordCount);
        List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, clientName, flag, startDate, endDate, pageSize, pageIndex, permissionsSQL, out recordCount);
        string str1 = "";
        if (list != null && list.Count > 0)
@@ -87,7 +98,8 @@
                str1 = str1 + "<td>" + bean.GivingNum + "</td>";
                str1 = str1 + string.Format("<td>{0}元/条</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000)));
                str1 = str1 + "<td>" + bean.OrderNumTotal + "</td>";
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000)));;
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000)));
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000)));
                str1 = str1 + "<td>" + bean.BeforeBalanceNum + "</td>";
                str1 = str1 + "<td>" + bean.Creator + "</td>";
                str1 = str1 + "<td>" + bean.CreateTime + "</td>";
@@ -101,7 +113,7 @@
            }
        }
        else
            str1 += "<tr><td colspan=\"14\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
            str1 += "<tr><td colspan=\"15\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
        return new JsonPageResult(true,  new
        {
@@ -123,8 +135,10 @@
        int recordCount = 0;
        int pageSize = context.GetInt("pageSize", 50);
        int pageIndex = context.GetInt("pageIndex", 1);
        string permissionsSQL = new GwClientDao().GetClientPermissions(_userId, _userType, "GWC");
        List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, clientName, flag, startDate, endDate, pageSize, pageIndex, out recordCount);
        List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, clientName, flag, startDate, endDate, pageSize, pageIndex, permissionsSQL, out recordCount);
        string str1 = "";
        if (list != null && list.Count > 0)
@@ -144,7 +158,8 @@
                str1 = str1 + "<td>" + bean.GivingNum + "</td>";
                str1 = str1 + string.Format("<td>{0}元/条</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000)));
                str1 = str1 + "<td>" + bean.OrderNumTotal + "</td>";
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000)));;
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000)));
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000)));
                str1 = str1 + "<td>" + bean.BeforeBalanceNum + "</td>";
                str1 = str1 + "<td>" + bean.Creator + "</td>";
                str1 = str1 + "<td>" + bean.CreateTime + "</td>";
@@ -162,7 +177,7 @@
            }
        }
        else
            str1 += "<tr><td colspan=\"14\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
            str1 += "<tr><td colspan=\"15\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
        return new JsonPageResult(true,  new
        {
@@ -190,14 +205,19 @@
        string clientId = context.GetString("clientId");
        string clientName = context.GetString("clientName");
        int flag = context.GetInt("flag");
        //string startDate = context.GetString("startDate");
        //string endDate = context.GetString("endDate");
        DateTime startDate = context.GetDateTime("startDate");
        DateTime endDate = context.GetDateTime("endDate");
        int recordCount = 0;
        int pageSize = context.GetInt("pageSize", 50);
        int pageIndex = context.GetInt("pageIndex", 1);
        string permissionsSQL = new GwClientDao().GetClientPermissions(_userId, _userType, "GWC");
        List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, clientName, flag, startDate, endDate, pageSize, pageIndex, out recordCount);
        //List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, clientName, flag, Convert.ToDateTime(startDate), Convert.ToDateTime(endDate).AddDays(1.0), pageSize, pageIndex, out recordCount);
        List<GwOrder> list = _Dao.LoadInfoList(spId, clientId, clientName, flag, startDate, endDate.AddDays(1.0), pageSize, pageIndex, permissionsSQL, out recordCount);
        string str1 = "";
        if (list != null && list.Count > 0)
@@ -217,7 +237,8 @@
                str1 = str1 + "<td>" + bean.GivingNum + "</td>";
                str1 = str1 + string.Format("<td>{0}元/条</td>", (object)(Convert.ToDecimal(bean.Price) / new Decimal(1000)));
                str1 = str1 + "<td>" + bean.OrderNumTotal + "</td>";
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000)));;
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.OrderAmountTotal) / new Decimal(1000)));
                str1 = str1 + string.Format("<td>{0}元</td>", (object)(Convert.ToDecimal(bean.PayAmount) / new Decimal(1000)));
                str1 = str1 + "<td>" + bean.BeforeBalanceNum + "</td>";
                str1 = str1 + "<td>" + bean.Creator + "</td>";
                str1 = str1 + "<td>" + bean.CreateTime + "</td>";
@@ -235,7 +256,7 @@
            }
        }
        else
            str1 += "<tr><td colspan=\"14\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
            str1 += "<tr><td colspan=\"15\" style=\"padding-left:5px; text-align: center;\">暂无信息</td></tr>";
        return new JsonPageResult(true,  new
        {
@@ -286,8 +307,12 @@
        string orderId = context.GetString("orderId");
        int basicNum = context.GetInt("basicNum");
        int givingNum = context.GetInt("givingNum");
        string clientId = "";
        int payAmount = 0;
        int tmpPayAmount = Math.Max((int) (context.GetDecimal("payAmount", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 0);
        payAmount = tmpPayAmount;
        //double price = context.GetDecimal(price);
        int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
        int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 0);
        string remark = context.GetString("remark");
        int status = context.GetInt("status");  //0-审核不通过;1-审核通过
        string auditReason = context.GetString("auditReason");
@@ -307,7 +332,7 @@
        if (gwOrder.Status !=0 && gwOrder.Status !=1)
            throw new ArgumentException("该订单已处理,操作失败!");
        clientId = gwOrder.ClientId;
        //获取订单审核流程
        string flowGroup = null;    //流程组合
@@ -417,35 +442,51 @@
        }
        else if(status==1)
        {
                int beforeBasicNum = 0;
                int beforeGivingNum = 0;
                int balance = 0;
            if(string.IsNullOrEmpty(nextFlowCode))
            int beforeBasicNum = 0;
            int beforeGivingNum = 0;
            int balance = 0;
            int topUpAmountTotal = 0;
            if (string.IsNullOrEmpty(nextFlowCode))
            {
                orderStatus = 2;
                orderStatus = 2;
                //获取账号信息
                GwSp gwSp = _GwSpDao.Get(spId);
                beforeBasicNum = gwSp.BasicNum;
                beforeGivingNum = gwSp.GivingNum;
                balance = Convert.ToInt32(gwSp.Balance);
                //balance = Convert.ToInt32(gwSp.Balance);
                    //为1-预付费
                if (gwSp.ChargeType.Equals("1") && gwSp.Balance < num * basicNum )
                //获取客户信息
                GwClient gwClient = _GwClientDao.Get(gwSp.ClientID);
                balance =  int.Parse(gwClient.Balance.ToString() );
                topUpAmountTotal = int.Parse(gwClient.Top_up_Amount_Total.ToString() );
                //为1-预付费
                //if (gwSp.ChargeType==1 && (balance + payAmount) < num * basicNum)
                if (gwClient.ChargeType==1 && (balance + payAmount) < num * basicNum)
                {
                        throw new ArgumentException("账号余额不足,请联系管理员!");
                    throw new ArgumentException("客户余额及充值金额不足购买,请调整后提交!");
                }
                //gwSp.Balance = balance - num * basicNum;
                //gwSp.BasicNum = beforeBasicNum + basicNum;
                //gwSp.GivingNum = beforeGivingNum + givingNum;
                //更新账号充值数据
                _GwSpDao.UpdateBalanceByOrder( payAmount, basicNum , givingNum , spId );
                _GwSpDao.UpdateBalanceByOrder(balance - num * basicNum
                    , beforeBasicNum + basicNum
                    , beforeGivingNum + givingNum
                    , spId
                    );
                //有充值金额时,更新客户累计充值金额(厘)
                if (payAmount > 0 || basicNum > 0 ) {
                    //GwClient gwClient = new GwClient();
                    //gwClient = new GwClient();
                    //gwClient.Balance = ((balance + payAmount) - num * basicNum) ;   //充值余额:单位(厘)
                    //gwClient.Top_up_Amount_Total = topUpAmountTotal + payAmount;    //充值金额:单位(厘)
                    //gwClient.ClientID = clientId;
                    //更新客户充值数据
                    _GwClientDao.UpdateClientAmount(payAmount-( num * basicNum), payAmount, clientId );
                }
            }
            else
            {
@@ -462,8 +503,8 @@
            //newGwOrder.OrderAmountTotal = basicNum * num ;
            //newGwOrder.BeforeBalanceNum = beforeGivingNum + beforeGivingNum;
            //newGwOrder.Status = orderStatus;
                //更新订单
               _Dao.UpdateBalanceAndStatus(basicNum, givingNum, basicNum + givingNum, basicNum * num, beforeGivingNum + beforeGivingNum,orderStatus, orderId );
            //更新订单
            _Dao.UpdateBalanceAndStatus(basicNum, givingNum, basicNum + givingNum, basicNum * num, payAmount,  beforeGivingNum + beforeGivingNum, orderStatus, orderId );
            //Dao.Update(newGwOrder);
@@ -496,6 +537,7 @@
        int orderNumTotal = context.GetInt("orderNumTotal", 0);
        int orderAmountTotal = context.GetInt("orderAmountTotal", 0);
        int payAmount = 0;
        int beforeBalanceNum = context.GetInt("beforeBalanceNum", 0);
        //客服人员提交订单时的状态为1-审核中。
        int status = 1; //0-待审核(已提交);1-审核中;2-审核通过;3-审核不通过;4-取消;申请订单在未审核情况下可以取消。
@@ -503,7 +545,9 @@
        DateTime createTime = DateTime.Now;
        string creator = context.OperatorID;
        int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
        int tmpPayAmount = Math.Max((int) (context.GetDecimal("payAmount", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 0);
        payAmount = tmpPayAmount;
        int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 0);
        price = num;
        //校验
@@ -523,9 +567,33 @@
            throw new ArgumentException("账号不能为空!");
        }
        if (basicNum<=0 && givingNum <= 0)
        if (basicNum<=0 && givingNum <= 0 && payAmount <=0)
        {
            throw new ArgumentException("基本条数或赠送条数必须大于零!");
            throw new ArgumentException("充值金额或基本条数或赠送条数必须大于零!");
        }
        //获取账号信息
        GwSp gwSp = _GwSpDao.Get(spId);
        int balance = 0;
        if (gwSp == null)
        {
            throw new ArgumentException("账号不存在!");
        }
        else if (gwSp.Status==0)
        {
            throw new ArgumentException("账号已禁用!");
        }
        //获取客户信息
        GwClient gwClient = _GwClientDao.Get(gwSp.ClientID);
        balance =  int.Parse(gwClient.Balance.ToString() );
        //为1-预付费
        //if (gwSp.ChargeType==1 && (balance + payAmount) < num * basicNum)
        if (gwClient.ChargeType==1 && (balance + payAmount) < num * basicNum)
        {
            throw new ArgumentException("客户余额及充值金额不足购买,请调整后提交!");
        }
        //获取订单审核流程
@@ -588,18 +656,6 @@
            throw new ArgumentException("用户没有充值权限,请联系管理员!");
        }
        //获取订单信息
        GwSp gwSp = _GwSpDao.Get(spId);
        if (gwSp == null)
        {
            throw new ArgumentException("账号不存在!");
        }
        else if (gwSp.Status==0)
        {
            throw new ArgumentException("账号已禁用!");
        }
        productId = gwSp.ProductId;
        price = gwSp.Price;
@@ -620,6 +676,7 @@
            Price = price,    //单价换算
            OrderNumTotal = orderNumTotal,
            OrderAmountTotal = orderAmountTotal,
            PayAmount = payAmount,
            BeforeBalanceNum = beforeBalanceNum,
            Status = status,
            Remark = remark,
@@ -628,19 +685,22 @@
        });
        string auditId = _SysXhDao.getXh("GW_ORDER_AUDIT");  //获取生成订单审核ID
        this._GwOrderAuditDao.Add(new GwOrderAudit()
        //流程组合为空时
        if (!string.IsNullOrEmpty(flowGroup))
        {
            AuditId = auditId,
            OrderId = orderId,
            AuditSort = sort,
            AuditStatus = status,
            Auditor = creator,
            //AuditReason = null,
            AuditTime = createTime
            string auditId = _SysXhDao.getXh("GW_ORDER_AUDIT");  //获取生成订单审核ID
            this._GwOrderAuditDao.Add(new GwOrderAudit()
            {
                AuditId = auditId,
                OrderId = orderId,
                AuditSort = sort,
                AuditStatus = status,
                Auditor = creator,
                //AuditReason = null,
                AuditTime = createTime
        });
            });
        }
        return new JsonPageResult(true, "生成订单信息成功!");
@@ -660,13 +720,17 @@
        int orderNumTotal = context.GetInt("orderNumTotal", 0);
        int orderAmountTotal = context.GetInt("orderAmountTotal", 0);
        int payAmount = 0;
        int beforeBalanceNum = context.GetInt("beforeBalanceNum", 0);
        int status = 0;
        string remark = context.GetString("remark");
        DateTime createTime = DateTime.Now;
        string creator = context.OperatorID;
        int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 1);
        int tmpPayAmount = Math.Max((int) (context.GetDecimal("payAmount", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 0);
        payAmount = tmpPayAmount;
        int num = Math.Max((int) (context.GetDecimal("price", new Decimal(4, 0, 0, false, (byte) 2)) * new Decimal(1000)), 0);
        price = num;
        //校验
@@ -703,6 +767,7 @@
            Price = price,    //单价换算
            OrderNumTotal = orderNumTotal,
            OrderAmountTotal = orderAmountTotal,
            PayAmount = payAmount,
            BeforeBalanceNum = beforeBalanceNum,
            Status = status,
            Remark = remark,