京东慧眼
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
3.5 KiB

using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.HuiYan;
using Coldairarrow.Util;
using EFCore.Sharding;
using LinqKit;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Threading.Tasks;
namespace Coldairarrow.Business.HuiYan
{
public class teamitemsBusiness : BaseBusiness<teamitems>, IteamitemsBusiness, ITransientDependency
{
public teamitemsBusiness(IDbAccessor db)
: base(db)
{
}
#region 外部接口
public async Task<PageResult<teamitems>> GetDataListAsync(PageInput<ConditionDTO> input)
{
var q = GetIQueryable();
var where = LinqHelper.True<teamitems>();
var search = input.Search;
//筛选
if (!search.Condition.IsNullOrEmpty() && !search.Keyword.IsNullOrEmpty())
{
var newWhere = DynamicExpressionParser.ParseLambda<teamitems, bool>(
ParsingConfig.Default, false, $@"{search.Condition}.Contains(@0)", search.Keyword);
where = where.And(newWhere);
}
return await q.Where(where).GetPageResultAsync(input);
}
public async Task<teamitems> GetTheDataAsync(string id)
{
return await GetEntityAsync(id);
}
public async Task AddDataAsync(teamitems data)
{
await InsertAsync(data);
}
public async Task UpdateDataAsync(teamitems data)
{
await UpdateAsync(data);
}
public async Task DeleteDataAsync(List<string> ids)
{
await DeleteAsync(ids);
}
#endregion
#region 私有成员
#endregion
public AjaxResult AddItem(TeamitemDto model)
{
model.Extensions = new List<TeamItemExtension>();
for (int i = 0; i < 5; i++)
model.Extensions.Add(new TeamItemExtension() { Platform = 0 });
var item = Db.GetIQueryable<items>().FirstOrDefault(c => c.GoodsId == model.GoodsId);
if (item == null)
{
item = new items()
{
GoodsId = model.GoodsId,
CreateTime = DateTime.Now,
CreatorId = string.Empty,
Deleted = false,
HasFilter = false,
Id = IdHelper.GetId(),
Platform = 0
};
if (Db.Insert<items>(item) <= 0)
{
return Error("商品添加失败!");
}
}
//设置为初选
int row = Db.Insert<teamitems>(new teamitems()
{
State = 0,
CreateTime = DateTime.Now,
CreatorId = string.Empty,
Deleted = false,
ExtensionJson = Newtonsoft.Json.JsonConvert.SerializeObject(model.Extensions),
Id = IdHelper.GetId(),
//待完善
TeamId = string.Empty,
UserId = string.Empty,
Price = model.Price,
ItemImg = model.ItemImg,
Sales = model.Sales,
Title = model.Title,
ItemId = item.Id
});
if (row <= 0)
return Error("商品信息添加失败!");
return Success();
}
}
}