using JiepeiWMS.Common.HttpContextUser;
using JiepeiWMS.Extends;
using JiepeiWMS.IServices;
using JiepeiWMS.Model;
using JiepeiWMS.Model.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace JiepeiWMS.Api.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize(Permissions.Name)]
public class WMProductLocationController : ControllerBase
{
///
/// 商品库位
///
private readonly IWMProductLocationServices _wMProductLocationServices;
private readonly ISysUserInfoServices _sysUserInfoServices;
private readonly ISysOrgServices _BllSysOrg;
readonly IUser _user;
public WMProductLocationController(IWMProductLocationServices WMProductLocationServices, ISysUserInfoServices SysUserInfoServices, ISysOrgServices BllSysOrg, IUser user)
{
_wMProductLocationServices = WMProductLocationServices;
_sysUserInfoServices = SysUserInfoServices;
_BllSysOrg = BllSysOrg;
_user = user;
}
///
/// 查询列表
///
/// 页数
/// 关键字
/// 条数
///
[HttpGet]
public async Task>> Index(int page = 1, string key = "", int intPageSize = 20)
{
if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key))
{
key = "";
}
Expression> whereExpression = s => s.Id > 0;
//筛选主体Id
var userInfoModel = await _sysUserInfoServices.QueryById(_user.ID);
if (userInfoModel != null)
{
whereExpression = whereExpression.And(s => s.SysOrgId == userInfoModel.SysOrgId);
}
if (!string.IsNullOrWhiteSpace(key))
{
whereExpression = whereExpression.And(s => s.LocationName != null && s.LocationName.Contains(key.Trim()));
}
var productLocation = await _wMProductLocationServices.QueryPage(whereExpression, page, intPageSize, " Id desc ");
foreach (var item in productLocation.data)
{
var UserInfoModel = await _sysUserInfoServices.QueryById(item.AdminId);
if (UserInfoModel != null)
{
item.AdminName = UserInfoModel.uRealName;
}
}
return new MessageModel>()
{
msg = "获取成功",
success = productLocation.dataCount >= 0,
response = productLocation
};
}
///
/// 获取列表
///
///
[HttpGet]
[AllowAnonymous]
public async Task> Get(int id = 0)
{
var locationList = await _wMProductLocationServices.Query(x => x.IsUse == true);
locationList = locationList.Where(x => x.SysOrgId == _user.SysOrgId).ToList();
return new MessageModel