예제 #1
0
        /// <summary>
        /// 插入
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int Insert(CriticalMass.TagNode.Model.tsku_attribute model, IDbTransaction trn)
        {
            IDbConnection conn           = trn.Connection;
            string        sqlCommandText = @"insert into tsku_attribute(`sku_id`,`attr_name_id`,`attr_val_id`,`createBy`,`createTime`,`modifyBy`,`modifyTime`)values(@sku_id,@attr_name_id,@attr_val_id,@createBy,@createTime,@modifyBy,@modifyTime);SELECT ifnull(@@IDENTITY,0)";

            return(conn.Query <int>(sqlCommandText, model, trn).First());
        }
예제 #2
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="model">模型</param>
        /// <returns></returns>
        public bool Update(CriticalMass.TagNode.Model.tsku_attribute model)
        {
            IDbConnection conn           = base.GetConnection();
            string        sqlCommandText = @"update tsku_attribute set `sku_id`=@sku_id,`attr_name_id`=@attr_name_id,`attr_val_id`=@attr_val_id,`createBy`=@createBy,`createTime`=@createTime,`modifyBy`=@modifyBy,`modifyTime`=@modifyTime where id=@id";

            return(conn.Execute(sqlCommandText, model) > 0 ? true : false);
        }
예제 #3
0
        /// <summary>
        /// 是否存在
        /// </summary>
        /// <param name="where">条件</param>
        ///<param name="parameter">参数</param>
        /// <returns></returns>
        public bool Exists(string where, CriticalMass.TagNode.Model.tsku_attribute parameter)
        {
            IDbConnection conn = base.GetConnection();
            string        sql  = @"SELECT count(0) FROM tsku_attribute WHERE {0} ";
            int           res  = conn.Query <int>(string.Format(sql, where), parameter).First();

            return(res > 0);
        }
예제 #4
0
        /// <summary>
        /// 删除记录
        /// </summary>
        /// <param name="id">id</param>
        /// <returns></returns>
        public bool Del(string where, CriticalMass.TagNode.Model.tsku_attribute parameter, IDbTransaction trn)
        {
            if (string.IsNullOrWhiteSpace(where))
            {
                return(false);
            }
            IDbConnection conn           = trn.Connection;
            string        sqlCommandText = @"delete from tsku_attribute where " + where;

            return(conn.Execute(sqlCommandText, parameter, trn) > 0 ? true : false);
        }
예제 #5
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="model">模型</param>
        /// <returns></returns>
        public bool Update(string field, CriticalMass.TagNode.Model.tsku_attribute model, IDbTransaction trn)
        {
            IDbConnection conn = trn.Connection;

            if (model.id <= 0)
            {
                return(false);
            }
            string sqlCommandText = @"update tsku_attribute set " + field + " where id=@id";

            return(conn.Execute(sqlCommandText, model, trn) > 0 ? true : false);
        }
예제 #6
0
        /// <summary>
        /// 添加或修改sku
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string AddOrModifySku([FromBody] dynamic parameModel)
        {
            AjaxResult result = new AjaxResult();

            try{
                TransactionOptions options = new TransactionOptions();
                options.IsolationLevel = System.Transactions.IsolationLevel.RepeatableRead;
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options)) {
                    string         product_desc = parameModel.product_desc;
                    int            product_id   = parameModel.product_id;
                    int            createBy     = parameModel.createBy;
                    int            modifyBy     = parameModel.modifyBy;
                    var            SkuSrv       = HttpContext.RequestServices.GetService <ItskuRepository>();
                    var            SkuAttrSrv   = HttpContext.RequestServices.GetService <Itsku_attributeRepository>();
                    List <dynamic> lt           = ((string)parameModel.product_attributes.ToString()).Str2List <dynamic>();
                    if (Convert.ToInt32(CriticalMass.TagNode.Repository.Common.GetObject(string.Format("select count(1) from tsku t where t.`desc`='{0}'", product_desc))) > 0)
                    {
                        throw new Exception("产品名称已存在!");
                    }
                    //sku
                    CriticalMass.TagNode.Model.tsku s = product_id > 0 ? SkuSrv.GetModel(product_id) : new tsku();
                    s.desc   = product_desc;
                    s.status = 1;
                    if (s.id > 0)
                    {
                        s.modifyBy   = modifyBy;
                        s.modifyTime = DateTime.Now;
                    }
                    else
                    {
                        s.createBy   = createBy;
                        s.createTime = DateTime.Now;
                        s.id         = SkuSrv.Insert(s);
                        s.code       = s.id.IntToHex();
                    }
                    SkuSrv.Update(s);
                    //sku属性
                    CriticalMass.TagNode.Repository.Common.ExecSql(string.Format("update tsku_attribute t set t.status=0 where t.sku_id='{0}'", s.id));
                    lt.Each(a => {
                        int attribute_id        = a.attribute_id;
                        List <int> lt_attr_vals = ((string)a.attribute_val_id.ToString()).Str2List <int>();
                        lt_attr_vals.Each(b => {
                            CriticalMass.TagNode.Model.tsku_attribute SkuAttr = SkuAttrSrv.GetModel(string.Format("sku_id='{0}' and attr_name_id='{1}' and attr_val_id='{2}'", s.id, attribute_id, b));
                            if (SkuAttr == null)
                            {
                                SkuAttr = new tsku_attribute();
                            }
                            SkuAttr.sku_id       = s.id;
                            SkuAttr.attr_name_id = attribute_id;
                            SkuAttr.attr_val_id  = b;
                            SkuAttr.status       = 1;
                            if (SkuAttr.id == 0)
                            {
                                SkuAttr.createBy   = createBy;
                                SkuAttr.createTime = DateTime.Now;
                                SkuAttrSrv.Insert(SkuAttr);
                            }
                            else
                            {
                                SkuAttrSrv.Update(SkuAttr);
                            }
                        });
                    });
                    CriticalMass.TagNode.Repository.Common.ExecSql(string.Format("delete from tsku_attribute t where t.status=0 and t.sku_id='{0}'", s.id));
                    scope.Complete();
                    result.Data = s.id;
                    result.Msg  = "ok";
                }
            }
            catch (Exception ex) {
                result.Msg = ex.Message;
            }
            return(result.ToJson());
        }