public async Task UpdateOrSaveWebSiteInputBase_Check() { var full = WebSiteFull.MapFrom(InputSample.NewSaveWebSiteInput); Assert.NotNull(full.WebSite); await Task.CompletedTask; }
public async Task <WebSiteFull> UpdateAsync(WebSiteFull i) { i.WebSiteConfig.Id = i.WebSite.Id; i.WebSitePayConfig.Id = i.WebSite.Id; await Task.WhenAll( _websiteRepository.UpdateAsync(i.WebSite), _siteConfigRepository.UpdateAsync(i.WebSiteConfig), _sitePayRepository.UpdateAsync(i.WebSitePayConfig)); return(i); }
public async Task InsertAsync(WebSiteFull i) { i.WebSiteConfig.Id = i.WebSite.Id; i.WebSitePayConfig.Id = i.WebSite.Id; await Task.WhenAll( _websiteRepository.InsertAsync(i.WebSite), _siteConfigRepository.InsertAsync(i.WebSiteConfig), _sitePayRepository.InsertAsync(i.WebSitePayConfig)); //await _websiteRepository.InsertAsync(i.WebSite); //await _siteConfigRepository.InsertAsync(i.WebSiteConfig); //await _sitePayRepository.InsertAsync(i.WebSitePayConfig); }
/// <summary> /// 获取站点详情 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <ApiResult <GetWebsitOutput> > GetWebSite(string id) { GetWebsitOutput result = null; var webSite = await _siteFullRepository.GetAsync(id); if (webSite != null) { if (webSite.WebSite.IsDeleted) { return(ApiResult.DataNotFound <GetWebsitOutput>()); } result = WebSiteFull.MapTo <GetWebsitOutput>(webSite); if (!string.IsNullOrEmpty(webSite.WebSite.WebSiteMater)) { //获取关联的DefaultJFPrice和DefaultNotePrice var price = _userScoreRepository.GetAll() .Where(i => i.Id == result.WebSiteMater) .Select(i => new { i.JfPrice, i.NotePrice }).FirstOrDefault(); //获取关联的provinceid var province = _userSysSettingRepository.GetAll().Where(i => i.Id == result.WebSiteMater) .Select(i => new { i.Provinceid }).FirstOrDefault(); //获取关联的Email和LoginName var info = _userRepository.GetAll().Where(i => i.Id == result.WebSiteMater) .Select(i => new { i.EmailAddress, i.LoginName }).FirstOrDefault(); //var (price, province, info) = await (defaultJFPriceAndDefaultNotePriceTask, provinceidTask, // emailAndloginnameTask); result.DefaultJFPrice = price?.JfPrice; result.DefaultNotePrice = price?.NotePrice; result.Provinceid = province?.Provinceid ?? "0"; result.Email = info?.EmailAddress; result.loginname = info?.LoginName; } } return(ApiResult.Success(result)); }
///// <summary> ///// 获取WebSite的分页列表信息 /////</summary> ///// <param name="input"></param> ///// <returns></returns> //public async Task<PagedResultDto<WebSiteListDto>> GetPaged(GetWebSitesInput input) //{ // var query = _websiteRepository.GetAll(); // // TODO:根据传入的参数添加过滤条件 // var count = await query.CountAsync(); // var entityList = await query // .OrderBy(input.Sorting).AsNoTracking() // .PageBy(input) // .ToListAsync(); // // var entityListDtos = ObjectMapper.Map<List<WebSiteListDto>>(entityList); // var entityListDtos = entityList.MapTo<List<WebSiteListDto>>(); // return new PagedResultDto<WebSiteListDto>(count, entityListDtos); //} ///// <summary> ///// 通过指定id获取WebSiteListDto信息 ///// </summary> //public async Task<WebSiteListDto> GetById(EntityDto<string> input) //{ // var entity = await _websiteRepository.GetAsync(input.Id); // return entity.MapTo<WebSiteListDto>(); //} ///// <summary> ///// 获取编辑 WebSite ///// </summary> ///// <param name="input"></param> ///// <returns></returns> //public async Task<GetWebSiteForEditOutput> GetForEdit(EntityDto<string> input) //{ // var output = new GetWebSiteForEditOutput(); // WebSiteEditDto editDto; // if (!input.Id.IsNullOrEmpty()) // { // var entity = await _websiteRepository.GetAsync(input.Id); // editDto = entity.MapTo<WebSiteEditDto>(); // //webSiteEditDto = ObjectMapper.Map<List<webSiteEditDto>>(entity); // } // else // { // editDto = new WebSiteEditDto(); // } // output.WebSite = editDto; // return output; //} ///// <summary> ///// 添加或者修改WebSite的公共方法 ///// </summary> ///// <param name="input"></param> ///// <returns></returns> //public async Task CreateOrUpdate(CreateOrUpdateWebSiteInput input) //{ // if (!input.WebSite.Id.IsNullOrEmpty()) // { // await Update(input.WebSite); // } // else // { // await Create(input.WebSite); // } //} ///// <summary> ///// 新增WebSite ///// </summary> //protected virtual async Task<WebSiteEditDto> Create(WebSiteEditDto input) //{ // //TODO:新增前的逻辑判断,是否允许新增 // // var entity = ObjectMapper.Map <WebSite>(input); // var entity = input.MapTo<WebSite>(); // entity = await _websiteRepository.InsertAsync(entity); // return entity.MapTo<WebSiteEditDto>(); //} ///// <summary> ///// 编辑WebSite ///// </summary> //protected virtual async Task Update(WebSiteEditDto input) //{ // //TODO:更新前的逻辑判断,是否允许更新 // var entity = await _websiteRepository.GetAsync(input.Id); // input.MapTo(entity); // // ObjectMapper.Map(input, entity); // await _websiteRepository.UpdateAsync(entity); //} ///// <summary> ///// 删除WebSite信息的方法 ///// </summary> ///// <param name="input"></param> ///// <returns></returns> //public async Task Delete(EntityDto<string> input) //{ // //TODO:删除前的逻辑判断,是否允许删除 // await _websiteRepository.DeleteAsync(input.Id); //} ///// <summary> ///// 批量删除WebSite的方法 ///// </summary> //public async Task BatchDelete(List<string> input) //{ // // TODO:批量删除前的逻辑判断,是否允许删除 // await _websiteRepository.DeleteAsync(s => input.Contains(s.Id)); //} ///// <summary> ///// 导出WebSite为excel表,等待开发。 ///// </summary> ///// <returns></returns> //public async Task<FileDto> GetToExcel() //{ // var users = await UserManager.Users.ToListAsync(); // var userListDtos = ObjectMapper.Map<List<UserListDto>>(users); // await FillRoleNames(userListDtos); // return _userListExcelExporter.ExportToFile(userListDtos); //} /// <summary> /// 列出站点 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <ApiPageResult <ListWebSiteOutputItem> > ListWebSite(ListWebSiteInput input) { Expression <Func <WebSiteFull, bool> > where = i => i.WebSite.IsDeleted == false; if (input.IsHide) { where = where.And(i => i.WebSite.EndTime > DateTime.Now); } if (!string.IsNullOrWhiteSpace(input.Key)) { where = where.And(i => i.WebSite.WebSiteName.Contains(input.Key)); } var resultTemp = await _siteFullRepository.QueryByWhereAsync <WebSiteFull>(input, null, where); return(input .SetResult(resultTemp.TotalCount, WebSiteFull.MapToList <ListWebSiteOutputItem>(resultTemp.Datas)) .ToApiPageResult()); }
public async Task <ApiResult> UpdateWebSite(UpdateWebSiteInput input) { // 是否使用系统的配置 WhenUseSysAlipayPayment(input); WhenUseSysWeiXinPay(input); //todo:记录日志 var websiteTemp = _siteFullRepository.GetAllNoTracking() .Where(i => i.WebSite.Id == input.Id) .Select(i => new { i.WebSite.WebSiteMater, i.WebSite.WorkerName, i.WebSiteConfig.GivePointsPerMonth, i.WebSiteConfig.DefaultNotePrice, i.WebSiteConfig.DefaultJfPrice }).FirstOrDefault(); if (websiteTemp == null) { return(ApiResult.DataNotFound()); //throw new UserFriendlyException("该站点不存在,无法编辑!"); } // 更新站点 var insertWebsite = WebSiteFull.MapFrom(input); insertWebsite.WebSite.Id = input.Id; await _siteFullRepository.UpdateAsync(insertWebsite); // 站点管理员的 WorkerName 和 PROVINCEID 变更时 var UserSysSetting = await _userSysSettingRepository .FirstOrDefaultAsync(i => i.Id == input.WebSiteMater && i.WebSiteId == input.Id); if (UserSysSetting == null) { throw new UserFriendlyException("注意,总站信息不对!"); } if (UserSysSetting.Provinceid != input.PROVINCEID || UserSysSetting.Swfzr != input.WorkerName) { UserSysSetting.Provinceid = input.PROVINCEID; UserSysSetting.Swfzr = input.WorkerName; await _userSysSettingRepository.UpdateAsync(UserSysSetting); } // 每月赠送次数 变更时 var UserScore = await _userScoreRepository.FirstOrDefaultAsync(i => i.Id == input.WebSiteMater); if (UserScore != null) { if (UserScore.GivePointsPerMonth != input.GivePointsPerMonth) { UserScore.GivePointsPerMonth = input.GivePointsPerMonth; await _userScoreRepository.UpdateAsync(UserScore); } } //站点短信与积分单价变化时,更新所有站点用户的短信与积分单价,暂时不做这个操作 //if (website.DefaultJfPrice!=input.DefaultJfPrice // ||website.DefaultNotePrice!=input.DefaultNotePrice) //{ //} return(new ApiResult().Success()); }
public async Task <ApiResult <SaveWebSiteOutput> > SaveWebSite(SaveWebSiteInput input) { // 是否使用系统的配置 WhenUseSysAlipayPayment(input); WhenUseSysWeiXinPay(input); //todo:记日志 // 检查数据库中是否存在数据 var existedDatas = await _websiteRepository.GetAll() .Where(i => i.WebSiteKey == input.WebSiteKey || i.Id == input.Id) .Select(i => new { i.Id, i.WebSiteKey }).ToDynamicListAsync(); if (existedDatas.Any(i => i.Id == input.Id)) { throw new UserFriendlyException("站点Id已存在!"); } if (existedDatas.Any(i => i.WebSiteKey == input.WebSiteKey)) { throw new UserFriendlyException("订单Id前缀已存在!"); } // 创建站点管理员账号 // todo:管理员账号基础信息处理及角色分配 DateTime time = DateTime.Now; string userId = input.Id + time.ToString("yyyyMMddHHmmss") + RNG.Next(10).ToString().PadLeft(10, '0'); string safePassword = Guid.NewGuid().ToString("N").Substring(0, 6); // 创建站点 var siteFull = WebSiteFull.MapFrom(input); siteFull.WebSite.Id = input.Id; siteFull.WebSite.WebSiteMater = userId; var insertWebSiteTask = _siteFullRepository.InsertAsync(siteFull); // 创建站点管理员账号信息 var insertUserTask = _userRepository.InsertAsync(new Users { Id = userId, WebSiteId = input.Id, UserName = input.Loginname, LoginName = input.Loginname, EmailAddress = input.Email, Password = Encryptor.MD5Entry(safePassword), Safepassword = safePassword, IsActive = true, }); // 创建站点管理员附属信息(商务经理、省) var insertUserSysSettingTask = _userSysSettingRepository.InsertAsync(new UserSysSetting { Id = userId, Swfzr = input.WorkerName, Provinceid = input.PROVINCEID, WebSiteId = input.Id }); // 创建站点管理员的每月积分 var insertUserScoreTask = _userScoreRepository.InsertAsync(new UserScore { Id = userId, GivePointsPerMonth = input.GivePointsPerMonth, NotePrice = input.DefaultJfPrice, JfPrice = input.DefaultJfPrice }); await(insertWebSiteTask, insertUserTask, insertUserSysSettingTask, insertUserScoreTask); return(ApiResult.Success(new SaveWebSiteOutput { Safepassword = safePassword, LoginName = input.Loginname })); }