Commit 5ed8adb0 authored by liudong1993's avatar liudong1993

1

parent e613a71a
......@@ -13,6 +13,11 @@ namespace Mall.Model.Extend.TradePavilion
[DB(ConnectionName = "DefaultConnection")]
public class RB_FirstShop_ListEnroll_Extend : RB_FirstShop_ListEnroll
{
/// <summary>
/// 获取榜单ids
/// </summary>
public string ListIds { get; set; }
/// <summary>
/// 查询候选列表 1是
/// </summary>
......
......@@ -18,6 +18,11 @@ namespace Mall.Model.Extend.TradePavilion
/// </summary>
public List<string> ObjectTypeList { get; set; }
/// <summary>
/// 榜单Ids
/// </summary>
public string ListIds { get; set; }
/// <summary>
/// 面向群里id
/// </summary>
......
......@@ -393,7 +393,7 @@ namespace Mall.Module.TradePavilion
else
{
#region 验证
var valistList = firstShop_ListEnrollRepository.GetList(new RB_FirstShop_ListEnroll_Extend() { MallBaseId = demodel.MallBaseId, UserId = demodel.UserId, ObjectType = demodel.ObjectType, ObjectId = demodel.ObjectId });
var valistList = firstShop_ListEnrollRepository.GetList(new RB_FirstShop_ListEnroll_Extend() { MallBaseId = demodel.MallBaseId, ListId = demodel.ListId, UserId = demodel.UserId, ObjectType = demodel.ObjectType, ObjectId = demodel.ObjectId });
if (valistList.Any())
{
return "该品牌/载体已报名,无法重复报名";
......@@ -506,6 +506,36 @@ namespace Mall.Module.TradePavilion
List<ExcelDataSource> RList = new List<ExcelDataSource>();
var enrollList = firstShop_ListEnrollRepository.GetList(new RB_FirstShop_ListEnroll_Extend() { MallBaseId = mallBaseId, ListId = listId });
if (enrollList.Any()) {
string userIds = string.Join(",", enrollList.Select(x => x.UserId).Distinct());
var clist = companyRepository.GetCompanyListRepository(new RB_Company_Extend() { MallBaseId = mallBaseId, UserIds = userIds });
//查询 品牌/载体 名称 图片
var e1list = enrollList.Where(x => x.ObjectType == Common.Enum.TradePavilion.ListObjectTypeEnum.Brand).ToList();
var e2list = enrollList.Where(x => x.ObjectType == Common.Enum.TradePavilion.ListObjectTypeEnum.Carrier).ToList();
if (e1list.Any())
{
//查询品牌
string bids = string.Join(",", e1list.Select(x => x.ObjectId));
var blist = brandRepository.GetBrandList(new RB_Brand_Extend() { MallBaseId = mallBaseId, BrandIds = bids });
foreach (var item in e1list)
{
var bmodel = blist.Where(x => x.ID == item.ObjectId).FirstOrDefault();
item.ObjectName = bmodel?.BrandName ?? "";
item.ObjectIcon = bmodel?.Logo ?? "";
}
}
if (e2list.Any())
{
//查询载体
string cids = string.Join(",", e2list.Select(x => x.ObjectId));
var carrlist = carrierRepository.GetCarrierList(new RB_Carrier_Extend() { MallBaseId = mallBaseId, CarrierIds = cids });
foreach (var item in e2list)
{
var cmodel = carrlist.Where(x => x.ID == item.ObjectId).FirstOrDefault();
item.ObjectName = cmodel?.CarrierName ?? "";
item.ObjectIcon = cmodel?.Logo ?? "";
}
}
#region 组装头部
var enrollModel = enrollList.FirstOrDefault();
if (string.IsNullOrEmpty(enrollModel.Content))
......@@ -515,7 +545,9 @@ namespace Mall.Module.TradePavilion
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: "企业名称") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
new ExcelColumn(value: "企业名称") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "类型") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "对象名称") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
},
ColumnHight = 30
};
......@@ -528,8 +560,110 @@ namespace Mall.Module.TradePavilion
header.ExcelRows.Add(new ExcelColumn(value: obj.Name) { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER });
}
}
header.ExcelRows.Add(new ExcelColumn(value: "状态") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER });
header.ExcelRows.Add(new ExcelColumn(value: "评语") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER });
header.ExcelRows.Add(new ExcelColumn(value: "报名时间") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER });
RList.Add(header);
#endregion
#region 组装数据
foreach (var item in enrollList) {
var cmodel = clist.Where(x => x.CreateBy == item.UserId).FirstOrDefault();
ExcelDataSource row = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: cmodel?.CompanyName??"") { },
new ExcelColumn(value: item.ObjectType.GetEnumName()) { },
new ExcelColumn(value: item.ObjectName) { },
},
ColumnHight = 30
};
elist = JsonHelper.DeserializeObject<List<FormDataItem>>(item.Content);
if (elist.Any())
{
foreach (var qitem in elist)
{
string value = "";
if (qitem.CompKey == "SingleLineText" || qitem.CompKey == "MultiLineText")
{
var objv = JsonHelper.DeserializeObject<TextItem>(qitem.CompData.ToString());
value = objv.TextValue;
}
else if (qitem.CompKey == "DorpDownList")
{
var objv = JsonHelper.DeserializeObject<WordSelectItem>(qitem.CompData.ToString());
var olist = objv.OptionList.Where(x => ("," + objv.OptionValue + ",").Contains("," + x.Id + ",")).ToList();
value = string.Join(",", olist.Select(x => x.Name));
}
else
{
var objv = JsonHelper.DeserializeObject<UploadItem>(qitem.CompData.ToString());
value = JsonHelper.Serialize(objv.FileList);
}
row.ExcelRows.Add(new ExcelColumn(value: value) { });
}
}
row.ExcelRows.Add(new ExcelColumn(value: item.RankListState == 1 ? "上榜" : "未上榜") { });
row.ExcelRows.Add(new ExcelColumn(value: item.Reviews) { });
row.ExcelRows.Add(new ExcelColumn(value: item.CreateDate.ToString("yyyy-MM-dd HH:mm:ss")) { });
RList.Add(row);
}
#endregion
}
return RList;
}
/// <summary>
/// 多榜单excel导出
/// </summary>
/// <param name="listIds"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public List<ExcelDataSource> GetFirstShopMoreListEnrollToExcel(string listIds, int mallBaseId)
{
List<ExcelDataSource> RList = new List<ExcelDataSource>();
var list = firstShop_ListRepository.GetList(new RB_FirstShop_List_Extend() { MallBaseId = mallBaseId, ListIds = listIds });
if (!list.Any()) { return new List<ExcelDataSource>(); }
//查询报名记录
var enrollList = firstShop_ListEnrollRepository.GetList(new RB_FirstShop_ListEnroll_Extend() { MallBaseId = mallBaseId, ListIds = listIds });
#region 组装头部
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: "企业名称") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }
},
ColumnHight = 30
};
foreach (var item in list)
{
header.ExcelRows.Add(new ExcelColumn(value: item.ListName) { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER });
}
RList.Add(header);
#endregion
#region 组装数据
if (enrollList.Any())
{
string userIds = string.Join(",", enrollList.Select(x => x.UserId).Distinct());
var clist = companyRepository.GetCompanyListRepository(new RB_Company_Extend() { MallBaseId = mallBaseId, UserIds = userIds });
foreach (var item in clist) {
ExcelDataSource rowData = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: item.CompanyName) { }
},
ColumnHight = 30
};
foreach (var qitem in list)
{
bool IsOk = enrollList.Where(x => x.ListId == qitem.Id && x.UserId == item.CreateBy).Any();
rowData.ExcelRows.Add(new ExcelColumn(value: IsOk ? "√" : "") { });
}
RList.Add(rowData);
}
}
#endregion
return RList;
}
#endregion
......
......@@ -83,6 +83,10 @@ where {where} order by w.Id desc
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.ListId)}={dmodel.ListId}";
}
if (!string.IsNullOrEmpty(dmodel.ListIds))
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.ListId)} in({dmodel.ListIds})";
}
if (dmodel.UserId > 0)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.UserId)}={dmodel.UserId}";
......@@ -91,6 +95,10 @@ where {where} order by w.Id desc
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.ObjectType)}={(int)dmodel.ObjectType}";
}
if (dmodel.ObjectId > 0)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.ObjectId)}={dmodel.ObjectId}";
}
if (dmodel.CandidateState > 0)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.CandidateState)}={dmodel.CandidateState}";
......
......@@ -111,6 +111,10 @@ where {where} {orderBy}
{
where += $@" and w.{nameof(RB_FirstShop_List_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.ListIds))
{
where += $@" and w.{nameof(RB_FirstShop_List_Extend.Id)} in({dmodel.ListIds})";
}
if (dmodel.ListType > 0)
{
where += $@" and w.{nameof(RB_FirstShop_List_Extend.ListType)}={(int)dmodel.ListType}";
......
......@@ -2196,7 +2196,7 @@ namespace Mall.WebApi.Controllers.TradePavilion
}
/// <summary>
/// 获取榜单
/// 获取榜单报名excel导出
/// </summary>
/// <returns></returns>
[HttpPost]
......@@ -2230,6 +2230,41 @@ namespace Mall.WebApi.Controllers.TradePavilion
}
}
/// <summary>
/// 获取多榜单excel导出
/// </summary>
/// <returns></returns>
[HttpPost]
public FileContentResult GetFirstShopMoreListEnrollToExcel()
{
string ExcelName = "多榜单情况" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>();
var req = base.RequestParm;
JObject parms = JObject.Parse(req.msg.ToString());
string ListIds = parms.GetStringValue("ListIds");//榜单ids
if (string.IsNullOrEmpty(ListIds))
{
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
try
{
List<ExcelDataSource> RList = firstShopListModule.GetFirstShopMoreListEnrollToExcel(ListIds, req.MallBaseId);
slist.AddRange(RList);
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData, "application/octet-stream", ExcelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, string.Format("GetFirstShopMoreListEnrollToExcel: {0}", JsonHelper.Serialize(RequestParm)));
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
}
/// <summary>
/// 报名列表word导出
/// </summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment