/// <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)); }
/// <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)); }