真爱生命,远离外包!哈哈

这外包的水平真是不敢恭维,只要达到效果从不考虑效率

看看这个代码:

        /// <summary>
        /// 增加一条数据
        /// </summary>
        /// <param name="model">退货申请实体</param>
        public int AddReturnOrder(www.bpj.com.webservice.Model.ReturnOrder model, int retractableDays)
        {
            // 获取订单ID
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select");
            strSql.Append("  OrderId");
            strSql.Append("  , datediff(day, CreateTime, getdate()) as days ");
            strSql.Append("from");
            strSql.Append("  Orders ");
            strSql.Append("where");
            strSql.Append("  OrderSn = @OrderSn ");
            strSql.Append("  and IsDeleted = 0 ");
            strSql.Append("  and UserDeleted = 0");

            SqlParameter[] parameters = { new SqlParameter("@OrderSn", SqlDbType.NVarChar, 50) };
            parameters[0].Value = model.OrderSn;

            DataSet dsOrder = SqlServerHelper.Query(strSql.ToString(), parameters);
            DataTable dtOrder = dsOrder.Tables[0];

            String strOrderId = string.Empty;
            if (dtOrder.Rows.Count == 0)
            {
                return -1;
            }
            else
            {
                int days = int.Parse(dtOrder.Rows[0]["days"].ToString());
                if (days >= retractableDays)
                {
                    return -2;
                }

                strOrderId = dtOrder.Rows[0]["OrderId"].ToString();
            }

            // 获取可退数量
            strSql = new StringBuilder();
            strSql.Append("select");
            strSql.Append("  OrderProductsId, RetractableCount ");
            strSql.Append("from");
            strSql.Append("  OrderProducts ");
            strSql.Append("where");
            strSql.Append("  OrderId = @OrderId ");
            strSql.Append("  and ProductSKUId = @ProductSKUId ");
            strSql.Append("  AND IsDeleted = 0");

            parameters = new SqlParameter[] { new SqlParameter("@OrderId", SqlDbType.Int, 4)
                , new SqlParameter("@ProductSKUId", SqlDbType.Int, 4) };
            parameters[0].Value = strOrderId;
            parameters[1].Value = model.ProductSKUId;

            DataSet dsOrderProduct = SqlServerHelper.Query(strSql.ToString(), parameters);
            DataTable dtOrderProduct = dsOrderProduct.Tables[0];

            String strOrderProductsId = string.Empty;
            if (dtOrderProduct.Rows.Count == 0)
            {
                return -1;
            }
            else
            {
                int retractableCount = int.Parse(dtOrderProduct.Rows[0]["RetractableCount"].ToString());
                if (retractableCount - model.ReturnCount < 0)
                {
                    return -3;
                }
                strOrderProductsId = dtOrderProduct.Rows[0]["OrderProductsId"].ToString();
            }

            // 订单商品表更新
            Dictionary<string, SqlParameter[]> dicSQLStringList = new Dictionary<string,SqlParameter[]>();
            strSql = new StringBuilder();
            strSql.Append("update OrderProducts set RetractableCount = RetractableCount - @ReturnCount from OrderProducts where OrderProductsId = @OrderProductsId");

            parameters = new SqlParameter[] { new SqlParameter("@ReturnCount", SqlDbType.Int, 4)
                , new SqlParameter("@OrderProductsId", SqlDbType.Int, 4) };
            parameters[0].Value = model.ReturnCount;
            parameters[1].Value = strOrderProductsId;

            dicSQLStringList.Add(strSql.ToString(), parameters);

            //SqlServerHelper.ExecuteSql(strSql.ToString(), parameters);

            strSql = new StringBuilder();
            strSql.Append("insert into ReturnOrder(");
            strSql.Append("IsDeleted,UserDeleted,OrderId,ProductSKUId,UserId,ReturnCount,ApplyReturnMoney,ReturnMoney,CreateTime,Status,ReturnOrderReason,ReturnDealResult,ReturnOrderSn,PayPic)");
            strSql.Append(" values (");
            strSql.Append("@IsDeleted,@UserDeleted,@OrderId,@ProductSKUId,@UserId,@ReturnCount,@ApplyReturnMoney,0,getdate(),1,@ReturnOrderReason,null,@ReturnOrderSn,null)");
            //strSql.Append(";select @[email protected]@IDENTITY");
            parameters = new SqlParameter[] {
					new SqlParameter("@IsDeleted", SqlDbType.Bit,1),
					new SqlParameter("@UserDeleted", SqlDbType.Int,4),
					new SqlParameter("@OrderId", SqlDbType.Int,4),
					new SqlParameter("@ProductSKUId", SqlDbType.Int,4),
					new SqlParameter("@UserId", SqlDbType.Int,4),
					new SqlParameter("@ReturnCount", SqlDbType.Int,4),
					new SqlParameter("@ApplyReturnMoney", SqlDbType.Decimal,9),
					new SqlParameter("@ReturnOrderReason", SqlDbType.NText),
                    new SqlParameter("@ReturnOrderSn", SqlDbType.NVarChar,50)};
            parameters[0].Value = model.IsDeleted;
            parameters[1].Value = model.UserDeleted;
            parameters[2].Value = strOrderId;
            parameters[3].Value = model.ProductSKUId;
            parameters[4].Value = model.UserId;
            parameters[5].Value = model.ReturnCount;
            parameters[6].Value = model.ApplyReturnMoney;
            parameters[7].Value = model.ReturnOrderReason;
            parameters[8].Value = model.ReturnOrderSn;

            dicSQLStringList.Add(strSql.ToString(), parameters);

            SqlServerHelper.ExecuteSqlTran(dicSQLStringList);

            // 退货申请ID
            strSql = new StringBuilder();
            strSql.Append("select ReturnOrderId from ReturnOrder where ReturnOrderSn = @ReturnOrderSn");

            parameters = new SqlParameter[] { new SqlParameter("@ReturnOrderSn", SqlDbType.NVarChar, 50) };
            parameters[0].Value = model.ReturnOrderSn;

            DataSet dsRet = SqlServerHelper.Query(strSql.ToString(), parameters);
            int intId = -1;
            if (dsRet.Tables[0].Rows.Count > 0)
            {
                intId = int.Parse(dsRet.Tables[0].Rows[0]["ReturnOrderId"].ToString());
            }

            return intId;
        }

这一个新增的方法连接5次数据库 大神啊 !你是BDQN毕业的吧!!!

哥还是优化下吧:

 public int Add(API.Model.MReturnOrder model)
        {
            int rowsAffected;
            SqlParameter[] parameters = {
					new SqlParameter("@ReturnOrderId", SqlDbType.Int,4),
					new SqlParameter("@ProductSKUId", SqlDbType.Int,4),
					new SqlParameter("@UserId", SqlDbType.Int,4),
					new SqlParameter("@ReturnCount", SqlDbType.Int,4),
					new SqlParameter("@ApplyReturnMoney", SqlDbType.Decimal,9),
					new SqlParameter("@ReturnOrderReason", SqlDbType.NText),
					new SqlParameter("@ReturnOrderSn", SqlDbType.NVarChar,50),
                                        new SqlParameter("@OrderSn", SqlDbType.NVarChar,50)
				};
            parameters[0].Direction = ParameterDirection.Output;
            parameters[1].Value = model.ProductSKUId;
            parameters[2].Value = model.UserId;
            parameters[3].Value = model.ReturnCount;
            parameters[4].Value = model.ApplyReturnMoney;
            parameters[5].Value = model.ReturnOrderReason;
            parameters[6].Value = DateTime.Now.ToString("yyyyMMddhhmmssfff") + model.UserId.PadLeft(5, ‘0‘) + "RO";
            DbHelperSQL.RunProcedure("api_ReturnOrder_ADD", parameters, out rowsAffected);
            return (int)parameters[0].Value;
        }

存储过程:

CREATE PROCEDURE api_ReturnOrder_ADD
@ReturnOrderId int output,
@ProductSKUId int,
@UserId int,
@ReturnCount int,
@ApplyReturnMoney decimal(18,2),
@ReturnOrderReason ntext,
@ReturnOrderSn nvarchar(50),
@OrderSn nvarchar(50)
 AS
    declare @OrderId int
    declare @d int
    declare @OrderProductsId int
    declare @RetractableCount int
    if exists(select OrderSn from Orders where OrderSn = @OrderSn and IsDeleted = 0 and UserDeleted = 0)
    begin
      select @OrderId=OrderId , @d=datediff(day, CreateTime, getdate()) from Orders where  OrderSn = @OrderSn and IsDeleted = 0 and UserDeleted = 0
      if @d>=7
      begin
          select @OrderProductsId=OrderProductsId, @RetractableCount=RetractableCount from OrderProducts where OrderId = @OrderId and ProductSKUId = @ProductSKUId AND IsDeleted = 0
          if @@ROWCOUNT>0
          begin
             if (@[email protected])<0
             begin
               set @ReturnOrderId = -3
             end
             begin
                update OrderProducts set RetractableCount = RetractableCount - @ReturnCount from OrderProducts where OrderProductsId = @OrderProductsId
                INSERT INTO [ReturnOrder]([IsDeleted],[UserDeleted],[OrderId],[ProductSKUId],[UserId],[ReturnCount],[ApplyReturnMoney],[ReturnMoney],[CreateTime],[Status],[ReturnOrderReason],[ReturnOrderSn],[RebateCalculatedStatus]
				)VALUES(0,0,@OrderId,@ProductSKUId,@UserId,@ReturnCount,@ApplyReturnMoney,0,GETDATE(),1,@ReturnOrderReason,@ReturnOrderSn,0)
				SET @ReturnOrderId = @@IDENTITY
             end
          end
          else
          begin
             set @ReturnOrderId=-1
          end
      end
      begin
        set @ReturnOrderId = -2
      end
    end
    else
    begin
      set @ReturnOrderId=-1
    end
GO

本文纯属吐糟 ,勿喷!

时间: 2024-08-15 02:21:45

真爱生命,远离外包!哈哈的相关文章

哦 原来那不是真爱

我有一个朋友经常加班,国庆也是 为什么加班?因为我要努力工作 为什么努力工作?因为我要赚更多的钱 为什么要赚那么多钱?因为娶老婆嘛.. 为什么要赚那么多钱??因为要买房子呀.呀..呀...(以前很烦把句号当省略号,但现在接受了) 压力就是这么来的,扭曲从这里开始的 量力而行,适可而止 还是韩寒说的好,我们听过了很多的大道理,却依旧过不好这一生 年薪10万,可以很轻松在县里买个房子,就不要想在北上深和省会买了呀 10万个女孩子中总有一个会尊重这个想法的 那些早结婚的说结婚幸福的,真的没有听到 听到

如何寻找&ldquo;真爱&rdquo;型合伙人

      曾与朋友笑侃,现在找人结婚,跟合伙开公司差不多,各自条件一一对比,细细斟酌,最后双方达成一致,才得凑成一对冤家.谁说不是呢?两种关系都实为"伙伴",开公司重"伙"多一些,所以是合作伙伴,组建家庭重"伴"多一些,所以叫人生伴侣.然而,事实是,不管是开公司还是组建家庭,似乎太多人将重点混淆了.       人生找对了爱人,家庭和睦,幸福美满.伴侣不合适,轻者争吵连连,重者劳燕分飞.创立企业,找对了合伙人,事业得以蓬勃发展,奋斗目标得以实现

【34岁男子带13岁女孩私奔 被女方父母追上送大牢】在审讯过程中刘某坚称自己是真爱。

[34岁男子带13岁女孩私奔 被女方父母追上]34岁的刘某长相英俊,因为家境贫寒一直没有成家.刘某在打工期间与一名13岁女孩相识并发生了关系.刘某许诺女孩一个美好的未来让女孩跟他私奔,就在二人私奔的当天,被女孩的父母追上.在审讯过程中刘某坚称自己是真爱.http://www.ehotelier.cn/Thread.jsp?tid=193968http://www.ehotelier.cn/Thread.jsp?tid=193969http://www.ehotelier.cn/Thread.js

荣威之后是名爵,上汽对YunOS是真爱,但还不够?

今日广州车展,阿里YunOS再次成为焦点,继荣威RX5之后,上汽旗下另一自主品牌名爵也推出了搭载YunOS系统的第一款互联网SUV车型MG ZS,同时荣威RX5推出混合动力版eRX5,而此前已经亮过相的首款互联网轿车荣威i6也正式发售.另外,阿里YunOS总裁张春晖宣布YunOS for Car全面更名为YunOS Auto. 荣威RX5让上汽底气十足,广州车展连发三款不同车型的互联网汽车 从市场情况来看,荣威RX5销量极佳,一直处于供不应求的状态,官方消息显示RX5从发布至今的4个多月时间订单

左柞女人不自爱,得不到真爱;男人不自重,得不到尊重。

女人不自爱,得不到真爱:男人不自重,得不到尊重. http://passport.baidu.com/?business&un=v3&un=%E5%AE%98%E6%B8%A1%E4%B8%8A%E9%97%A8%E5%92%8C%E7%BE%8E%E5%A5%B3#0 http://dwz.cn/1z8iUF http://passport.baidu.com/?business&un=v3&un=%E5%AE%98%E6%B8%A1%E7%BE%8E%E5%A5%B3%

真爱长什么样

爱是一盏灯,黑暗中照亮前行的远方;爱是一首诗,冰冷中温暖渴求的心房;爱是春日的雨,是夏日的风,是秋日的果,是冬日的阳. 一直以来,许多人都会环绕着一份情愫而迷茫,身在福中不知福,越是得不到的东西越觉得弥足珍贵,其实,爱一直都在自己的身边,需要你去用心感受,用情呵护. 曾经有人问我:“我爱你,你爱过我吗?” 我没有正面回答他的问题,只是简短的回复:“给不了彼此想要的生活,就谈不上是爱.”这是我唯一能明确他的答案,也是对他的尊重和拒绝. 爱,到底是什么?什么才是爱?答案都在我们每个人的心里,经历的人

2016年12月11日《每天听本书》:爱情数学:如何用数学找到真爱

2016年12月11日今天的每天听本书爱情数学:如何用数学找到真爱 现在为大家简要截取 今天罗辑社的每天听本书 微信群发布情况介绍 <每天听本书>,不是逐字逐句的"朗读".因为那会耗费用户更多的时间. <每天听本书>,不是对书本框架结构的"缩写".因为丢掉了细节就是丢掉了灵魂. <每天听本书>,也不是"笔记".摘抄书中的原句,脱离上下文环境,其实没有意义. <每天听本书>,是"转述&quo

这才是真爱!日本玩家举办《ff8》主题婚礼

这才是真爱!日本玩家举行<FF8>主题婚礼 最终理想7:重制版专区 对一个游戏玩家而言,最荣幸的事莫过于能找到志趣相投的另一半,如果然能发展到共度毕生那还真是上辈子修来的福分.近日两位日本玩家喜结连理,并颁布了他们令所有玩家惊羡的婚礼照片: 日本玩家举行<FF8>主题婚礼 这是一场别开生面的以<终极空想8(FF8)>为主题的婚礼,大家都晓得<FF8>的主题是"恋情",王菲那首<Eyes On Me>也传唱了大江南北,令<

穷小子创业中遇真爱

我是一个农村出身的孩子,家里祖祖辈辈都是地地道道的农民,没有钱,更没有势,辛辛苦苦把我供得上了大学,算是他们最欣慰的事了. 我高中是在县城的一所公立学校读的,成绩一直不错,高考时以579分的成绩被山西大学金融专业录取.在大学期间,我的成绩一直都比较优异,拿过好几次的校级奖学金,还拿过两次国家励志奖学金.在大学四年中,我觉得印象最深刻的三件事,一个是作为学校足球队的一员,在太原市高校足球杯比赛中我们学校拿到了冠军;一个是我追了三年也没追上一个女生,因为她嫌我家穷;最后一个就是在大四快毕业时,我注册