Ejemplo n.º 1
0
        /// <summary>
        /// 新增商品
        /// lz
        /// 2016-09-26
        /// </summary>
        //[HttpPost]
        public ActionResult Add()
        {
            var sr = RequestResult(res =>
            {
                #region 获取参数
                Hashtable param = base.GetParameters();
                ParamVessel p   = new ParamVessel();
                p.Add("id_shop", string.Empty, HandleType.ReturnMsg);       //门店id *
                p.Add("id_masteruser", string.Empty, HandleType.ReturnMsg); //主用户id *
                p.Add("id_user", string.Empty, HandleType.ReturnMsg);       //用户id *
                p.Add("barcode", string.Empty, HandleType.ReturnMsg);       //条码 *
                p.Add("bm", string.Empty, HandleType.ReturnMsg);            //编码 *
                p.Add("mc", string.Empty, HandleType.ReturnMsg);            //名称 *
                p.Add("dj_jh", 0m, HandleType.DefaultValue);                //进货价
                p.Add("dj_ls", 0m, HandleType.DefaultValue);                //零售价
                p.Add("dj_hy", 0m, HandleType.DefaultValue);                //会员价
                p.Add("dj_ps", 0m, HandleType.DefaultValue);                //配送价
                p.Add("dw", string.Empty, HandleType.ReturnMsg);            //单位 *
                p.Add("sl_kc_min", 0m, HandleType.DefaultValue);            //最底库存量 *
                p.Add("sl_kc_max", 0m, HandleType.DefaultValue);            //最高库存量 *
                p.Add("flag_czfs", string.Empty, HandleType.ReturnMsg);     //计价方式 *
                p.Add("id_spfl", string.Empty, HandleType.ReturnMsg);       //分类ID *
                p.Add("yxq", 0, HandleType.DefaultValue);                   //保质期 天

                p.Add("cd", string.Empty, HandleType.DefaultValue);         //产地
                p.Add("pic_path", string.Empty, HandleType.DefaultValue);   //图片路径
                p.Add("id_gys", string.Empty, HandleType.DefaultValue);     //默认供应商
                p.Add("bz", string.Empty, HandleType.DefaultValue);         //备注
                p.Add("dj_pf", 0m, HandleType.DefaultValue);                //批发价  目前此字段没用

                p.Add("je_qc", 0m, HandleType.DefaultValue);                //期初金额
                p.Add("sl_qc", 0m, HandleType.DefaultValue);                //期初数量

                p.Add("dbzList", string.Empty, HandleType.DefaultValue);    //多包装

                p.Add("sign", string.Empty, HandleType.ReturnMsg);          //sign
                #endregion
                #region 验证参数
                try
                {
                    param = param.Trim(p);
                }
                catch (Exception ex)
                {
                    res.State   = ServiceState.Fail;
                    res.Message = ServiceFailCode.A0001;
                    return(res);
                }
                #endregion
                #region 读取ticket
                //读取ticket
                Hashtable ht = new Hashtable();
                ht.Add("key_y", param["id_masteruser"].ToString() + "_" + param["id_shop"].ToString());
                var ticketBr = base.GetTicketInfo(param["id_masteruser"].ToString() + "_" + param["id_shop"].ToString());
                if (!ticketBr.Success)
                {
                    res.State   = ServiceState.Fail;
                    res.Message = ServiceFailCode.S0001;
                    return(res);
                }
                var ticketModel = (Tb_Ticket)ticketBr.Data;
                if (ticketModel == null)
                {
                    res.State   = ServiceState.Fail;
                    res.Message = ServiceFailCode.A0003;
                    return(res);
                }
                var ticket = ticketModel.ticket;
                #endregion
                #region 验证签名
                IDictionary <string, string> dic = base.GetParameters(new string[] { "id_shop", "id_masteruser", "id_user", "barcode", "bm", "mc", "dj_jh", "dj_ls", "dj_hy", "dj_ps", "dw", "sl_kc_min", "sl_kc_max", "flag_czfs", "id_spfl", "yxq", "cd", "pic_path", "id_gys", "bz", "je_qc", "sl_qc", "dbzList" });

                var validSign = SignUtils.SignRequest(dic, ticket);
                //验证签名
                if (param["sign"].ToString() != validSign)
                {
                    res.State   = ServiceState.Fail;
                    res.Message = ServiceFailCode.A0002;
                    return(res);
                }
                #endregion
                #region 验证参数是否符合

                #region 多包装
                //多包装
                var dbzList = new List <Tb_Shopsp_DBZ>();
                try
                {
                    dbzList = JSON.Deserialize <List <Tb_Shopsp_DBZ> >(param["dbzList"].ToString()) ?? new List <Tb_Shopsp_DBZ>();
                    foreach (var item in dbzList)
                    {
                        item.id        = Guid.NewGuid().ToString();
                        item.info_type = "add";
                    }
                }
                catch (Exception ex)
                {
                    res.State   = ServiceState.Fail;
                    res.Message = "操作失败 多包装不符合要求!";
                    return(res);
                }
                #endregion

                #region 期初
                //期初
                var qcModel = new Td_Sp_Qc()
                {
                    sl_qc = decimal.Parse(param["sl_qc"].ToString()), je_qc = decimal.Parse(param["je_qc"].ToString())
                };
                #endregion

                #region 验证数据
                //控制层验证数据
                var brCheck = this.CheckParam(param, qcModel, dbzList);
                if (!brCheck.Success)
                {
                    res.State   = ServiceState.Fail;
                    res.Message = string.Join(";", brCheck.Message);
                    return(res);
                }
                #endregion

                #region 数据处理

                #region 图片
                // 图片
                if (param["pic_path"] != null && !string.IsNullOrEmpty(param["pic_path"].ToString()))
                {
                    CheckImgPath();
                    string[] url_img = param["pic_path"].ToString().Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
                    string guid      = Guid.NewGuid().ToString();
                    string extension = Path.GetExtension(url_img[url_img.Length - 1]);
                    string fileName  = guid + extension;
                    ImgExtension.MakeThumbnail(param["pic_path"].ToString(), "/UpLoad/Goods/thumb/_480x480_" + fileName, 480, 480, ImgCreateWay.Cut, false);
                    string newPath = string.Format("/UpLoad/Goods/thumb/_480x480_{0}", fileName);
                    ;
                    ; //480x480
                    param.Remove("pic_path");
                    param.Add("pic_path", newPath);
                }
                #endregion

                #region 多包装
                if (param.ContainsKey("dbzList"))
                {
                    param.Remove("dbzList");
                }
                param.Add("dbzList", dbzList);
                #endregion

                #region 期初
                if (param.ContainsKey("sp_qc"))
                {
                    param.Remove("sp_qc");
                }
                param.Add("sp_qc", qcModel);
                #endregion

                #region 用户管理门店
                var brShopShop = this.GetUserShopShop(param["id_masteruser"].ToString(), param["id_shop"].ToString(), param["id_user"].ToString());
                if (!brShopShop.Success)
                {
                    res.State   = ServiceState.Fail;
                    res.Message = string.Join(";", brShopShop.Message);
                    return(res);
                }
                var shopShopList = (List <Tb_User_ShopWithShopMc>)brShopShop.Data;
                param.Add("shop_shop", shopShopList);
                #endregion

                #region 获取小数点位数
                var DigitHashtable = BusinessFactory.Account.GetParm(param["id_masteruser"].ToString());
                if (!param.ContainsKey("DigitHashtable"))
                {
                    param.Add("DigitHashtable", DigitHashtable);
                }
                #endregion

                #endregion

                #endregion
                #region 保存至本地图片
                if (param.ContainsKey("pic_path") && !string.IsNullOrEmpty(param["pic_path"].ToString()))
                {
                    var pic_path = BusinessFactory.Tb_Shopsp.GetBarcodePic(new Tb_Shopsp_Service()
                    {
                        BarCode = param["barcode"].ToString(), Picture = param["pic_path"].ToString()
                    });
                    param["pic_path"] = pic_path;
                }
                #endregion
                #region 新增
                var br = BusinessFactory.Tb_Shopsp.Add(param);
                #endregion
                #region 返回
                res.State   = br.Success ? ServiceState.Done : ServiceState.Fail;
                res.Message = br.Message.FirstOrDefault();
                if (br.Success)
                {
                    res.Data = br.Data;
                }
                return(res);

                #endregion
            });

            return(JsonString(sr));
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 检测新增/编辑的数据是否合法
 /// </summary>
 /// <param name="param"></param>
 /// <param name="qcModel"></param>
 /// <param name="dbzList"></param>
 /// <returns></returns>
 public BaseResult CheckParam(Hashtable param, Td_Sp_Qc qcModel, List <Tb_Shopsp_DBZ> dbzList)
 {
     return(BusinessFactory.Tb_Shopsp.CheckParam(param, qcModel, dbzList));
 }