public string SaveRetailTrader(string pRequest) { var rp = pRequest.DeserializeJSONTo <APIRequest <SaveRetailTraderRP> >(); if (rp.Parameters.RetailTraderInfo == null) { throw new APIException("缺少参数【RetailTraderInfo】或参数值为空") { ErrorCode = 135 }; } if (rp.Parameters.IsNewHeadImg == null) { throw new APIException("缺少参数【IsNewHeadImg】或参数值为空") { ErrorCode = 135 }; } var loggingSessionInfo = Default.GetBSLoggingSession(rp.CustomerID, "1"); var bll = new RetailTraderBLL(loggingSessionInfo); var rd = new SaveRetailTraderRD(); var rsp = new SuccessResponse <IAPIResponseData>(rd); //判断登陆名是否有重复的,要从ap库里取 var ds = bll.getRetailTraderInfoByLogin2(rp.Parameters.RetailTraderInfo.RetailTraderLogin, "", loggingSessionInfo.ClientID); var retailTraderInfo = new RetailTraderInfo(); //判断账号是否存在 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { var tempDt = ds.Tables[0]; retailTraderInfo = DataTableToObject.ConvertToObject <RetailTraderInfo>(tempDt.Rows[0]); //直接根据所需要的字段反序列化 if (retailTraderInfo.RetailTraderID != rp.Parameters.RetailTraderInfo.RetailTraderID) //如果取出来的实体的id和传过来的参数的id不一样,说明不是同一个实体 { rsp.Message = "该登陆账号已经存在,不能重复使用"; rsp.ResultCode = 137; return(rsp.ToJSON());//这里要返回 } } //从RetailTraderInfo转到RetailTraderEntity RetailTraderEntity en = new RetailTraderEntity(); en.RetailTraderID = rp.Parameters.RetailTraderInfo.RetailTraderID; if (rp.Parameters.RetailTraderInfo.RetailTraderID == null || rp.Parameters.RetailTraderInfo.RetailTraderID.ToString() == "") { en.RetailTraderID = Guid.NewGuid().ToString(); //获取当前最大的 //如果是新增,则取本客户下的最大编号作为分销商编号 en.RetailTraderCode = bll.getMaxRetailTraderCode(rp.CustomerID) + 1; en.CreateTime = DateTime.Now; en.CreateBy = rp.UserID; } en.RetailTraderName = rp.Parameters.RetailTraderInfo.RetailTraderName; en.RetailTraderLogin = rp.Parameters.RetailTraderInfo.RetailTraderLogin; if (!string.IsNullOrEmpty(rp.Parameters.RetailTraderInfo.RetailTraderPass)) { en.RetailTraderPass = MD5Helper.Encryption(rp.Parameters.RetailTraderInfo.RetailTraderPass); } en.RetailTraderMan = rp.Parameters.RetailTraderInfo.RetailTraderMan; en.RetailTraderPhone = rp.Parameters.RetailTraderInfo.RetailTraderPhone; en.RetailTraderAddress = rp.Parameters.RetailTraderInfo.RetailTraderAddress; en.CooperateType = rp.Parameters.RetailTraderInfo.CooperateType; en.SalesType = rp.Parameters.RetailTraderInfo.SalesType; en.SellUserID = rp.Parameters.RetailTraderInfo.SellUserID; en.UnitID = rp.Parameters.RetailTraderInfo.UnitID; en.Status = "1";//启用状态 en.LastUpdateTime = DateTime.Now; en.LastUpdateBy = rp.UserID; en.IsDelete = 0; en.CustomerId = rp.CustomerID; if (rp.Parameters.RetailTraderInfo.RetailTraderID == null || rp.Parameters.RetailTraderInfo.RetailTraderID.ToString() == "") { bll.Create(en); // rp.Parameters.RetailTraderInfo.RetailTraderID = en.RetailTraderID;//为了返回数据时使用 } else { bll.Update(en, null, false);//不更新空值的字段 } //另外要保存到ap库里,这样才能登陆时从ap库里统一取出分销商信息,和对应的customerid if (rp.Parameters.RetailTraderInfo.RetailTraderID == null || rp.Parameters.RetailTraderInfo.RetailTraderID.ToString() == "") { bll.Create2Ap(en); //ap库里的RetailTraderID和商户里的RetailTraderID是一样的 rp.Parameters.RetailTraderInfo.RetailTraderID = en.RetailTraderID; //为了返回数据时使用,到这里才赋值*** } else { bll.Update2Ap(en, null, false);//不更新空值的字段 } //如果IsNewHeadImg为1时,即上传图片时,则删除之前的关联图片(逻辑删除) if (rp.Parameters.IsNewHeadImg == 1) { ObjectImagesBLL _ObjectImagesBLL = new ObjectImagesBLL(loggingSessionInfo); ObjectImagesEntity ObjectImagesEn = new ObjectImagesEntity(); _ObjectImagesBLL.DeleteByObjectID(en.RetailTraderID.ToString()); } rd.RetailTraderInfo = rp.Parameters.RetailTraderInfo; return(rsp.ToJSON()); }