using Common.Models.Enums; using Common.Models.SubTables; using Common.Models.UnqTables; using Server.MyClass.Views; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Http; using Server.Services; namespace Server.Controllers.OrderManagement { public class WphOrderController : DefaultController { /// /// 获取机器人信息 /// /// [HttpPost, ErrorFilter] public WebResult GetRobotInfo() { var PageIndex = GetInt("PageIndex"); var PageSize = GetInt("PageSize"); var tNumber = 0; var Keyword = GetString("Keyword"); var exp = Expressionable.Create(); if (!string.IsNullOrEmpty(Keyword)) { exp.And(f => f.Nickname.Contains(Keyword)); } var DataList = Db.Queryable().Where(exp.ToExpression()) .Select(m => new RobotInfo { RobotId = m.Id, RobotName = m.Nickname }) .ToPageList(PageIndex, PageSize, ref tNumber); var res = new PageResult(DataList, tNumber, PageSize, PageIndex); return PutData(res); } [HttpPost, ErrorFilter] public WebResult GetWphOrders() { var PageIndex = GetInt("PageIndex", true); var PageSize = GetInt("PageSize", true); var tNumber = 0; var MinTime = GetTime("MinTime"); var MaxTime = GetTime("MaxTime"); var exp = Expressionable.Create(); if (MinTime == DateTime.MinValue) MinTime = DateTime.Now.AddMonths(-3); if (MaxTime == DateTime.MinValue) MaxTime = DateTime.Now; exp.And((o, u, r) => o.orderTime > MinTime && o.orderTime < MaxTime); var RobotId = GetInt("RobotId"); if (RobotId > 0) exp.And((o, u, r) => r.Id == RobotId); var OrderStatus = GetEnum("OrderStatus"); if (OrderStatus != SystemOrderStatus.未知) exp.And((o, u, r) => o.SystemOrderStatus == OrderStatus); var Keyword = GetString("Keyword"); if (!string.IsNullOrEmpty(Keyword)) { var KeywordType = GetInt("KeywordType", true); switch (KeywordType) { case 1://用户账号查询 exp.And((o, u, r) => u.Username.Contains(Keyword)); break; case 2://用户昵称查询 exp.And((o, u, r) => u.NickName.Contains(Keyword)); break; case 3://订单编号查询 exp.And((o, u, r) => o.orderSn.ToString().Contains(Keyword)); break; case 4://商品编号查询 exp.And((o, u, r) => o.goodsId.ToString().Contains(Keyword)); break; case 5://商品名称 exp.And((o, u, r) => o.goodsName.Contains(Keyword)); break; default: break; } } var DataList = Db.Queryable() .SplitTable(it => it.Take(6)) .LeftJoin((o, u) => o.UserId == u.Id) .LeftJoin((o, u, r) => u.RobotId == r.Id) .Where(exp.ToExpression()) .Select((o, u, r) => new WphOrderShow { ItemCount = o.goodsCount, Itemid = o.goodsId.ToString(), ItemTitle = o.goodsName, OrderStatus = o.SystemOrderStatus, PayPrice = o.goodsFinalPrice, UserHeadurl = u.Headurl, UserId = o.UserId, UsOrderNumber = o.orderSn.ToString(), UserNickname = u.NickName, RobotName = r.Nickname, PartnerPoint = 0.00, //? RebatePoint = o.commission, //? TkOrderNumber = null, // 联盟订单编号 ? RecommendPoint = 0.00, //? Commission = o.commission,//? GrossProfit = o.commissionRate, //? }).ToPageList(PageIndex, PageSize, ref tNumber); var res = new PageResult(DataList, tNumber, PageSize, PageIndex); return PutData(res); } /// /// 加唯品会商店黑名单 /// /// [HttpPost, ErrorFilter] public WebResult AddGoodsBlack() { var id = GetLong("Id"); var isCloud = GetBoolean("IsCloud"); var remark = GetString("Remark"); var order = Db.Queryable().SplitTable(it => it.Take(6)).Where(w => w.Id == id).First(); if (order == null) { return PutData("订单不存在"); } var ser = new BlacklistService(); var result = ser.AddGoodsBlack(order.goodsId + "", LianmengType.唯品会联盟, order.goodsName, remark, isCloud); if (string.IsNullOrWhiteSpace(result)) { return PutSuccess; } return PutData(result); } /// /// 加唯品会店铺黑名单 /// /// [HttpPost, ErrorFilter] public WebResult AddStoreBlack() { var id = GetLong("Id"); var isCloud = GetBoolean("IsCloud"); var remark = GetString("Remark"); var order = Db.Queryable().SplitTable(it => it.Take(6)).Where(w => w.Id == id).First(); if (order == null) { return PutData("订单不存在"); } var ser = new BlacklistService(); var result = ser.AddStoreBlack(LianmengType.唯品会联盟, order.mallId + "", order.brandStoreName, remark, isCloud); if (string.IsNullOrWhiteSpace(result)) { return PutSuccess; } return PutData(result); } } }