Commit 9e75dc21 authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents 37f468dd 57786fad
...@@ -15,12 +15,16 @@ namespace Edu.Common.Data ...@@ -15,12 +15,16 @@ namespace Edu.Common.Data
public static List<WordsItem> GetXlsWordsData(string filePath) public static List<WordsItem> GetXlsWordsData(string filePath)
{ {
List<WordsItem> xlsItems = new List<WordsItem>(); List<WordsItem> xlsItems = new List<WordsItem>();
var dt = Common.Plugin.NPOIHelper.ImportExcelToDatatable(filePath, 0, 0, true); var ds = Common.Plugin.NPOIHelper.ExcelToDataSet(filePath);
if (dt != null && dt.Rows.Count > 0) if (ds != null && ds.Tables.Count > 0)
{ {
foreach (DataRow item in dt.Rows) for (var i = 0; i < ds.Tables.Count; i++)
{ {
xlsItems.Add(DataRowToModel(item)); var dataRow = ds.Tables[i].Rows;
for (var j = 0; j < ds.Tables[i].Rows.Count; j++)
{
xlsItems.Add(DataRowToModel((i+1),ds.Tables[i].Rows[j]));
}
} }
} }
return xlsItems; return xlsItems;
...@@ -29,21 +33,73 @@ namespace Edu.Common.Data ...@@ -29,21 +33,73 @@ namespace Edu.Common.Data
/// <summary> /// <summary>
/// DataRow转实体 /// DataRow转实体
/// </summary> /// </summary>
/// <param name="tableName"></param>
/// <param name="dr"></param> /// <param name="dr"></param>
/// <returns></returns> /// <returns></returns>
private static WordsItem DataRowToModel(DataRow dr) private static WordsItem DataRowToModel(int ChapterId, DataRow dr)
{ {
WordsItem model = new WordsItem(); WordsItem model = new WordsItem();
model.ChapterId = ChapterId;
if (dr != null) if (dr != null)
{ {
if (dr.Table.Columns.Contains("品詞名") && !string.IsNullOrEmpty(dr["品詞名"].ToString()))
{
model.WordType = dr["品詞名"].ToString();
}
if (dr.Table.Columns.Contains("語彙・表現") && !string.IsNullOrEmpty(dr["語彙・表現"].ToString()))
{
model.WordContent = dr["語彙・表現"].ToString();
}
if (dr.Table.Columns.Contains("声调") && !string.IsNullOrEmpty(dr["声调"].ToString()))
{
model.WordTone = dr["声调"].ToString();
}
if (dr.Table.Columns.Contains("日文书写") && !string.IsNullOrEmpty(dr["日文书写"].ToString()))
{
model.WordWrite = dr["日文书写"].ToString();
}
if (dr.Table.Columns.Contains("中文意思") && !string.IsNullOrEmpty(dr["中文意思"].ToString()))
{
model.ChineseMean = dr["中文意思"].ToString();
}
} }
return model; return model;
} }
} }
/// <summary>
/// 单词项
/// </summary>
public class WordsItem public class WordsItem
{ {
/// <summary>
/// 章节编号
/// </summary>
public int ChapterId { get; set; }
/// <summary>
/// 单词类型(名词、动词、形容词等)
/// </summary>
public string WordType { get; set; }
/// <summary>
/// 单词内容
/// </summary>
public string WordContent { get; set; }
/// <summary>
/// 单词声调
/// </summary>
public string WordTone { get; set; }
/// <summary>
/// 单词书写
/// </summary>
public string WordWrite { get; set; }
/// <summary>
/// 中文意思
/// </summary>
public string ChineseMean { get; set; }
} }
} }
...@@ -586,6 +586,45 @@ namespace Edu.Common.Plugin ...@@ -586,6 +586,45 @@ namespace Edu.Common.Plugin
return table; return table;
} }
/// <summary>
/// Excel转DataSet
/// </summary>
/// <param name="excelPath"></param>
/// <returns></returns>
public static DataSet ExcelToDataSet(string excelPath)
{
int sheetCount;
return ExcelToDataSet(excelPath, true, out sheetCount);
}
/// <summary>
/// Excel转DataSet
/// </summary>
/// <param name="excelPath"></param>
/// <param name="firstRowAsHeader"></param>
/// <param name="sheetCount"></param>
/// <returns></returns>
static DataSet ExcelToDataSet(string excelPath, bool firstRowAsHeader, out int sheetCount)
{
using (DataSet ds = new DataSet())
{
using (FileStream fileStream = new FileStream(excelPath, FileMode.Open, FileAccess.Read))
{
HSSFWorkbook workbook = new HSSFWorkbook(fileStream);
HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(workbook);
sheetCount = workbook.NumberOfSheets;
for (int i = 0; i < sheetCount; ++i)
{
HSSFSheet sheet = workbook.GetSheetAt(i) as HSSFSheet;
DataTable dt = ImportDataTable(sheet, 0, firstRowAsHeader);
dt.TableName = workbook.GetSheetName(i);
ds.Tables.Add(dt);
}
return ds;
}
}
}
#endregion #endregion
/// <summary> /// <summary>
...@@ -785,7 +824,7 @@ namespace Edu.Common.Plugin ...@@ -785,7 +824,7 @@ namespace Edu.Common.Plugin
{ {
XSSFCell newCell = dataRow.CreateCell(column.Ordinal) as XSSFCell; XSSFCell newCell = dataRow.CreateCell(column.Ordinal) as XSSFCell;
newCell.CellStyle = cellSource.CellStyle; newCell.CellStyle = cellSource.CellStyle;
String drValue = row[column].ToString(); String drValue = row[column].ToString();
newCell.SetCellValue(drValue); newCell.SetCellValue(drValue);
} }
......
...@@ -2,12 +2,15 @@ ...@@ -2,12 +2,15 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Course namespace Edu.Model.Entity.Course
{ {
/// <summary> /// <summary>
/// 课程章节单词实体类 /// 课程章节单词实体类
/// </summary> /// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Course_Words public class RB_Course_Words
{ {
/// <summary> /// <summary>
...@@ -50,6 +53,11 @@ namespace Edu.Model.Entity.Course ...@@ -50,6 +53,11 @@ namespace Edu.Model.Entity.Course
/// </summary> /// </summary>
public string ChineseMean { get; set; } public string ChineseMean { get; set; }
/// <summary>
/// 文件路径
/// </summary>
public string FileUrl { get; set; }
/// <summary> /// <summary>
/// 状态 /// 状态
/// </summary> /// </summary>
......
...@@ -10,6 +10,9 @@ namespace Edu.Model.ViewModel.Course ...@@ -10,6 +10,9 @@ namespace Edu.Model.ViewModel.Course
/// </summary> /// </summary>
public class RB_Course_Words_Extend : RB_Course_Words public class RB_Course_Words_Extend : RB_Course_Words
{ {
/// <summary>
/// 课程编号
/// </summary>
public string QCourseIds { get; set; }
} }
} }
...@@ -144,7 +144,12 @@ namespace Edu.Module.Course ...@@ -144,7 +144,12 @@ namespace Edu.Module.Course
/// 商品规格价格 /// 商品规格价格
/// </summary> /// </summary>
private readonly Repository.Mall.RB_Goods_SpecificationPriceRepository goods_SpecificationPriceRepository = new Repository.Mall.RB_Goods_SpecificationPriceRepository(); private readonly Repository.Mall.RB_Goods_SpecificationPriceRepository goods_SpecificationPriceRepository = new Repository.Mall.RB_Goods_SpecificationPriceRepository();
/// <summary>
/// 课程单词仓储层对象
/// </summary>
private readonly RB_Course_WordsRepository course_WordsRepository = new RB_Course_WordsRepository();
#region 课程管理 #region 课程管理
public List<RB_Course_ViewModel> GetAllCourseChapterCountModule(int groupId, int courseId) public List<RB_Course_ViewModel> GetAllCourseChapterCountModule(int groupId, int courseId)
...@@ -481,6 +486,11 @@ namespace Edu.Module.Course ...@@ -481,6 +486,11 @@ namespace Edu.Module.Course
return chapterRepository.GetChapterListRepository(query); return chapterRepository.GetChapterListRepository(query);
} }
/// <summary>
/// 导入课程章节到新课程
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<ChapterTree_ViewModel> SetImportChapterModule(RB_Course_Chapter_ViewModel query) public List<ChapterTree_ViewModel> SetImportChapterModule(RB_Course_Chapter_ViewModel query)
{ {
var result = GetChapterTreeListModule(query); var result = GetChapterTreeListModule(query);
...@@ -610,13 +620,13 @@ namespace Edu.Module.Course ...@@ -610,13 +620,13 @@ namespace Edu.Module.Course
return treeList; return treeList;
} }
/// <summary> /// <summary>
/// 递归遍历所有章节 /// 递归遍历所有章节
/// </summary> /// </summary>
/// <param name="sourceList">源数据</param> /// <param name="sourceList">源数据</param>
/// <param name="parentId">父节点编号</param> /// <param name="parentId">父节点编号</param>
/// <returns></returns> /// <returns></returns>
public List<ChapterTree_ViewModel> GetChapterChild(List<RB_Course_Chapter_ViewModel> sourceList, int parentId) public List<ChapterTree_ViewModel> GetChapterChild(List<RB_Course_Chapter_ViewModel> sourceList, int parentId)
{ {
List<ChapterTree_ViewModel> resultList = new List<ChapterTree_ViewModel>(); List<ChapterTree_ViewModel> resultList = new List<ChapterTree_ViewModel>();
//获取下级节点 //获取下级节点
...@@ -652,6 +662,11 @@ namespace Edu.Module.Course ...@@ -652,6 +662,11 @@ namespace Edu.Module.Course
return resultList; return resultList;
} }
/// <summary>
/// 批量导入课程章节信息
/// </summary>
/// <param name="courseId"></param>
/// <returns></returns>
public bool SetBatchAllChapterCurrentHoursModule(int courseId) public bool SetBatchAllChapterCurrentHoursModule(int courseId)
{ {
RB_Course_Chapter_ViewModel query = new RB_Course_Chapter_ViewModel() RB_Course_Chapter_ViewModel query = new RB_Course_Chapter_ViewModel()
...@@ -712,8 +727,6 @@ namespace Edu.Module.Course ...@@ -712,8 +727,6 @@ namespace Edu.Module.Course
} }
} }
}); });
return chapterRepository.SetBatchCurrentHoursRepository(list); return chapterRepository.SetBatchCurrentHoursRepository(list);
} }
...@@ -807,7 +820,6 @@ namespace Edu.Module.Course ...@@ -807,7 +820,6 @@ namespace Edu.Module.Course
} }
} }
/// <summary> /// <summary>
/// 获取章节实体类 /// 获取章节实体类
/// </summary> /// </summary>
...@@ -841,7 +853,6 @@ namespace Edu.Module.Course ...@@ -841,7 +853,6 @@ namespace Edu.Module.Course
public bool BatchRemoveChapterModule(RB_Course_Chapter_ViewModel model) public bool BatchRemoveChapterModule(RB_Course_Chapter_ViewModel model)
{ {
var flag = chapterRepository.DeleteBatchChpterRepository(model); var flag = chapterRepository.DeleteBatchChpterRepository(model);
SetBatchAllChapterCurrentHoursModule(model.CourseId); SetBatchAllChapterCurrentHoursModule(model.CourseId);
return flag; return flag;
} }
...@@ -896,8 +907,6 @@ namespace Edu.Module.Course ...@@ -896,8 +907,6 @@ namespace Edu.Module.Course
public bool SetBatchChapterNoModule(List<RB_Course_Chapter_ViewModel> chapters) public bool SetBatchChapterNoModule(List<RB_Course_Chapter_ViewModel> chapters)
{ {
var flag = chapterRepository.SetBatchUpdateChapterNoRepository(chapters); var flag = chapterRepository.SetBatchUpdateChapterNoRepository(chapters);
//SetBatchAllChapterCurrentHoursModule(chapters[0].CourseId);
return flag; return flag;
} }
...@@ -1611,7 +1620,6 @@ namespace Edu.Module.Course ...@@ -1611,7 +1620,6 @@ namespace Edu.Module.Course
public List<RB_Class_Time_UnKnowUser_ViewModel> GetUnKnowUserByClassTimeModule(int classId) public List<RB_Class_Time_UnKnowUser_ViewModel> GetUnKnowUserByClassTimeModule(int classId)
{ {
var list = unKnowRepository.GetUnKnowUsersByClassIdRepository(classId); var list = unKnowRepository.GetUnKnowUsersByClassIdRepository(classId);
return list; return list;
} }
...@@ -1714,6 +1722,7 @@ namespace Edu.Module.Course ...@@ -1714,6 +1722,7 @@ namespace Edu.Module.Course
demodel.GoodsPageType ??= GoodsPageTypeEnum.All; demodel.GoodsPageType ??= GoodsPageTypeEnum.All;
demodel.TenantId = Convert.ToInt32(Config.JHTenantId); demodel.TenantId = Convert.ToInt32(Config.JHTenantId);
demodel.MallBaseId = Convert.ToInt32(Config.JHMallBaseId); demodel.MallBaseId = Convert.ToInt32(Config.JHMallBaseId);
#region 商品规格信息 #region 商品规格信息
demodel.SpecificationList = new List<RB_Goods_Specification_Extend>(); demodel.SpecificationList = new List<RB_Goods_Specification_Extend>();
demodel.SpecificationPriceList = new List<RB_Goods_SpecificationPrice_Extend>(); demodel.SpecificationPriceList = new List<RB_Goods_SpecificationPrice_Extend>();
...@@ -1762,7 +1771,6 @@ namespace Edu.Module.Course ...@@ -1762,7 +1771,6 @@ namespace Edu.Module.Course
demodel.SpecificationList.Add(modelSpecification); demodel.SpecificationList.Add(modelSpecification);
#endregion #endregion
if (demodel.Id == 0)//已存在,更新 if (demodel.Id == 0)//已存在,更新
{ {
demodel.Status = 0; demodel.Status = 0;
...@@ -1772,7 +1780,6 @@ namespace Edu.Module.Course ...@@ -1772,7 +1780,6 @@ namespace Edu.Module.Course
if (goodsId > 0) if (goodsId > 0)
{ {
//插入分类 //插入分类
foreach (var item in model.CategoryList) foreach (var item in model.CategoryList)
{ {
...@@ -1791,93 +1798,98 @@ namespace Edu.Module.Course ...@@ -1791,93 +1798,98 @@ namespace Edu.Module.Course
} }
} }
else else
{ {
//修改 //修改
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>()
{ nameof(RB_Goods.Name),demodel.Name}, {
{ nameof(RB_Goods.CarouselImage),demodel.CarouselImage}, { nameof(RB_Goods.Name),demodel.Name},
{ nameof(RB_Goods.VideoAddress),demodel.VideoAddress}, { nameof(RB_Goods.CarouselImage),demodel.CarouselImage},
{ nameof(RB_Goods.CustomShareTitles),demodel.CustomShareTitles}, { nameof(RB_Goods.VideoAddress),demodel.VideoAddress},
{ nameof(RB_Goods.CustomShareImage),demodel.CustomShareImage}, { nameof(RB_Goods.CustomShareTitles),demodel.CustomShareTitles},
{ nameof(RB_Goods.GoodsStatus),demodel.GoodsStatus}, { nameof(RB_Goods.CustomShareImage),demodel.CustomShareImage},
{ nameof(RB_Goods.InventoryNum),demodel.InventoryNum}, { nameof(RB_Goods.GoodsStatus),demodel.GoodsStatus},
{ nameof(RB_Goods.DefaultSpecificationName),demodel.DefaultSpecificationName}, { nameof(RB_Goods.InventoryNum),demodel.InventoryNum},
{ nameof(RB_Goods.IsCustomSpecification),demodel.IsCustomSpecification}, { nameof(RB_Goods.DefaultSpecificationName),demodel.DefaultSpecificationName},
{ nameof(RB_Goods.Sort),demodel.Sort}, { nameof(RB_Goods.IsCustomSpecification),demodel.IsCustomSpecification},
{ nameof(RB_Goods.SellingPrice),demodel.SellingPrice}, { nameof(RB_Goods.Sort),demodel.Sort},
{ nameof(RB_Goods.OriginalPrice),demodel.OriginalPrice}, { nameof(RB_Goods.SellingPrice),demodel.SellingPrice},
{ nameof(RB_Goods.Unit),demodel.Unit}, { nameof(RB_Goods.OriginalPrice),demodel.OriginalPrice},
{ nameof(RB_Goods.CostPrice),demodel.CostPrice}, { nameof(RB_Goods.Unit),demodel.Unit},
{ nameof(RB_Goods.IsGoodsNegotiable),demodel.IsGoodsNegotiable}, { nameof(RB_Goods.CostPrice),demodel.CostPrice},
{ nameof(RB_Goods.SalesNum),demodel.SalesNum}, { nameof(RB_Goods.IsGoodsNegotiable),demodel.IsGoodsNegotiable},
{ nameof(RB_Goods.GoodsNumbers),demodel.GoodsNumbers}, { nameof(RB_Goods.SalesNum),demodel.SalesNum},
{ nameof(RB_Goods.GoodsWeight),demodel.GoodsWeight}, { nameof(RB_Goods.GoodsNumbers),demodel.GoodsNumbers},
{ nameof(RB_Goods.IsDefaultService),demodel.IsDefaultService}, { nameof(RB_Goods.GoodsWeight),demodel.GoodsWeight},
{ nameof(RB_Goods.GoodsService),demodel.GoodsService}, { nameof(RB_Goods.IsDefaultService),demodel.IsDefaultService},
{ nameof(RB_Goods.FreightId),demodel.FreightId}, { nameof(RB_Goods.GoodsService),demodel.GoodsService},
{ nameof(RB_Goods.FormsId),demodel.FormsId}, { nameof(RB_Goods.FreightId),demodel.FreightId},
{ nameof(RB_Goods.LimitBuyGoodsNum),demodel.LimitBuyGoodsNum}, { nameof(RB_Goods.FormsId),demodel.FormsId},
{ nameof(RB_Goods.LimitBuyOrderNum),demodel.LimitBuyOrderNum}, { nameof(RB_Goods.LimitBuyGoodsNum),demodel.LimitBuyGoodsNum},
{ nameof(RB_Goods.FullNumPinkage),demodel.FullNumPinkage}, { nameof(RB_Goods.LimitBuyOrderNum),demodel.LimitBuyOrderNum},
{ nameof(RB_Goods.FullMoneyPinkage),demodel.FullMoneyPinkage}, { nameof(RB_Goods.FullNumPinkage),demodel.FullNumPinkage},
{ nameof(RB_Goods.IsAreaBuy),demodel.IsAreaBuy}, { nameof(RB_Goods.FullMoneyPinkage),demodel.FullMoneyPinkage},
{ nameof(RB_Goods.IntegralPresent),demodel.IntegralPresent}, { nameof(RB_Goods.IsAreaBuy),demodel.IsAreaBuy},
{ nameof(RB_Goods.IntegralPresentType),demodel.IntegralPresentType}, { nameof(RB_Goods.IntegralPresent),demodel.IntegralPresent},
{ nameof(RB_Goods.PointsDeduction),demodel.PointsDeduction}, { nameof(RB_Goods.IntegralPresentType),demodel.IntegralPresentType},
{ nameof(RB_Goods.PointsDeductionType),demodel.PointsDeductionType}, { nameof(RB_Goods.PointsDeduction),demodel.PointsDeduction},
{ nameof(RB_Goods.IsMultipleDeduction),demodel.IsMultipleDeduction}, { nameof(RB_Goods.PointsDeductionType),demodel.PointsDeductionType},
{ nameof(RB_Goods.GoodsDetails),demodel.GoodsDetails}, { nameof(RB_Goods.IsMultipleDeduction),demodel.IsMultipleDeduction},
{ nameof(RB_Goods.UpdateDate),demodel.UpdateDate}, { nameof(RB_Goods.GoodsDetails),demodel.GoodsDetails},
{ nameof(RB_Goods.SeparateDistribution),demodel.SeparateDistribution}, { nameof(RB_Goods.UpdateDate),demodel.UpdateDate},
{ nameof(RB_Goods.SeparateDistributionType),demodel.SeparateDistributionType}, { nameof(RB_Goods.SeparateDistribution),demodel.SeparateDistribution},
{ nameof(RB_Goods.SeparateDistributionMoneyType),demodel.SeparateDistributionMoneyType}, { nameof(RB_Goods.SeparateDistributionType),demodel.SeparateDistributionType},
{ nameof(RB_Goods.EnjoyMember),demodel.EnjoyMember}, { nameof(RB_Goods.SeparateDistributionMoneyType),demodel.SeparateDistributionMoneyType},
{ nameof(RB_Goods.SeparateSetMember),demodel.SeparateSetMember}, { nameof(RB_Goods.EnjoyMember),demodel.EnjoyMember},
{ nameof(RB_Goods.IsQuickBuy),demodel.IsQuickBuy}, { nameof(RB_Goods.SeparateSetMember),demodel.SeparateSetMember},
{ nameof(RB_Goods.SupplierId),demodel.SupplierId}, { nameof(RB_Goods.IsQuickBuy),demodel.IsQuickBuy},
{ nameof(RB_Goods.IsProxy),demodel.IsProxy}, { nameof(RB_Goods.SupplierId),demodel.SupplierId},
{ nameof(RB_Goods.ProxyType),demodel.ProxyType}, { nameof(RB_Goods.IsProxy),demodel.IsProxy},
{ nameof(RB_Goods.ProxyRises),demodel.ProxyRises}, { nameof(RB_Goods.ProxyType),demodel.ProxyType},
{ nameof(RB_Goods.ProxyMoney),demodel.ProxyMoney}, { nameof(RB_Goods.ProxyRises),demodel.ProxyRises},
{ nameof(RB_Goods.Commission),demodel.Commission}, { nameof(RB_Goods.ProxyMoney),demodel.ProxyMoney},
{ nameof(RB_Goods.PresentFXGrade),demodel.PresentFXGrade}, { nameof(RB_Goods.Commission),demodel.Commission},
{ nameof(RB_Goods.PresentFXMonth),demodel.PresentFXMonth}, { nameof(RB_Goods.PresentFXGrade),demodel.PresentFXGrade},
{ nameof(RB_Goods.Advertising),demodel.Advertising}, { nameof(RB_Goods.PresentFXMonth),demodel.PresentFXMonth},
{ nameof(RB_Goods.SubName),demodel.SubName}, { nameof(RB_Goods.Advertising),demodel.Advertising},
{ nameof(RB_Goods.MarketingLogo),demodel.MarketingLogo}, { nameof(RB_Goods.SubName),demodel.SubName},
{ nameof(RB_Goods.IsLiveGoods),demodel.IsLiveGoods}, { nameof(RB_Goods.MarketingLogo),demodel.MarketingLogo},
{ nameof(RB_Goods.ShelvesDate),demodel.ShelvesDate }, { nameof(RB_Goods.IsLiveGoods),demodel.IsLiveGoods},
{ nameof(RB_Goods.DownDate),demodel.DownDate }, { nameof(RB_Goods.ShelvesDate),demodel.ShelvesDate },
{ nameof(RB_Goods.SendArea),demodel.SendArea }, { nameof(RB_Goods.DownDate),demodel.DownDate },
{ nameof(RB_Goods.VideoType),demodel.VideoType }, { nameof(RB_Goods.SendArea),demodel.SendArea },
{ nameof(RB_Goods.IntegralComment),demodel.IntegralComment }, { nameof(RB_Goods.VideoType),demodel.VideoType },
{ nameof(RB_Goods.IntegralCommentType),demodel.IntegralCommentType }, { nameof(RB_Goods.IntegralComment),demodel.IntegralComment },
{ nameof(RB_Goods.Remark),demodel.Remark }, { nameof(RB_Goods.IntegralCommentType),demodel.IntegralCommentType },
{ nameof(RB_Goods.GoodsPageType),demodel.GoodsPageType }, { nameof(RB_Goods.Remark),demodel.Remark },
{ nameof(RB_Goods.IsNoTax),demodel.IsNoTax }, { nameof(RB_Goods.GoodsPageType),demodel.GoodsPageType },
{ nameof(RB_Goods.MinProfitRate),demodel.MinProfitRate }, { nameof(RB_Goods.IsNoTax),demodel.IsNoTax },
{ nameof(RB_Goods.GoodsCountry),demodel.GoodsCountry }, { nameof(RB_Goods.MinProfitRate),demodel.MinProfitRate },
{ nameof(RB_Goods.FatCode),demodel.FatCode }, { nameof(RB_Goods.GoodsCountry),demodel.GoodsCountry },
{ nameof(RB_Goods.GoodsUrl),demodel.GoodsUrl }, { nameof(RB_Goods.FatCode),demodel.FatCode },
{ nameof(RB_Goods.goodsLogo),demodel.goodsLogo }, { nameof(RB_Goods.GoodsUrl),demodel.GoodsUrl },
}; { nameof(RB_Goods.goodsLogo),demodel.goodsLogo },
List<WhereHelper> wheres = new List<WhereHelper>() { };
new WhereHelper(){ List<WhereHelper> wheres = new List<WhereHelper>()
FiledName=nameof(RB_Goods.Id), {
FiledValue=demodel.Id, new WhereHelper()
OperatorEnum=OperatorEnum.Equal {
}, FiledName=nameof(RB_Goods.Id),
new WhereHelper(){ FiledValue=demodel.Id,
FiledName=nameof(RB_Goods.TenantId), OperatorEnum=OperatorEnum.Equal
FiledValue=demodel.TenantId, },
OperatorEnum=OperatorEnum.Equal new WhereHelper()
}, {
new WhereHelper(){ FiledName=nameof(RB_Goods.TenantId),
FiledName=nameof(RB_Goods.MallBaseId), FiledValue=demodel.TenantId,
FiledValue=demodel.MallBaseId, OperatorEnum=OperatorEnum.Equal
OperatorEnum=OperatorEnum.Equal },
} new WhereHelper()
}; {
FiledName=nameof(RB_Goods.MallBaseId),
FiledValue=demodel.MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = mallGoodsRepository.Update(keyValues, wheres); bool flag = mallGoodsRepository.Update(keyValues, wheres);
if (flag) if (flag)
{ {
...@@ -1900,7 +1912,6 @@ namespace Edu.Module.Course ...@@ -1900,7 +1912,6 @@ namespace Edu.Module.Course
} }
#endregion #endregion
#region 修改分类 #region 修改分类
var clist = MallGoodsCategoryRepository.GetList(new RB_Goods_Category_Extend() { GoodsId = demodel.Id, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId }); var clist = MallGoodsCategoryRepository.GetList(new RB_Goods_Category_Extend() { GoodsId = demodel.Id, TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId });
var insertList = model.CategoryList.Where(x => !clist.Select(y => y.CategoryId).Contains(x.CategoryId)).ToList(); var insertList = model.CategoryList.Where(x => !clist.Select(y => y.CategoryId).Contains(x.CategoryId)).ToList();
...@@ -2062,7 +2073,6 @@ namespace Edu.Module.Course ...@@ -2062,7 +2073,6 @@ namespace Edu.Module.Course
} }
#endregion #endregion
return goodsId; return goodsId;
} }
...@@ -2075,13 +2085,12 @@ namespace Edu.Module.Course ...@@ -2075,13 +2085,12 @@ namespace Edu.Module.Course
public bool UpdateMallGoodsPrice(RB_Course_ViewModel courseModel, List<RB_Course_Preferential_Extend> list) public bool UpdateMallGoodsPrice(RB_Course_ViewModel courseModel, List<RB_Course_Preferential_Extend> list)
{ {
bool flag = false; bool flag = false;
if (courseModel.MallGoodsId > 0) if (courseModel.MallGoodsId > 0)
{ {
Dictionary<string, object> fileds = new Dictionary<string, object>() Dictionary<string, object> fileds = new Dictionary<string, object>()
{ {
{nameof(RB_Goods.SellingPrice),courseModel.SellPrice }, {nameof(RB_Goods.SellingPrice),courseModel.SellPrice },
{nameof(RB_Goods.OriginalPrice),courseModel.OriginalPrice }, {nameof(RB_Goods.OriginalPrice),courseModel.OriginalPrice },
}; };
flag = mallGoodsRepository.Update(fileds, new WhereHelper(nameof(RB_Goods.Id), courseModel.MallGoodsId)); flag = mallGoodsRepository.Update(fileds, new WhereHelper(nameof(RB_Goods.Id), courseModel.MallGoodsId));
var oldList = MallGoodsPreferentialRepository.GetGoodsPreferentialListRepostory(new RB_Goods_Preferential_Extend() { GoodsId = courseModel.MallGoodsId }); var oldList = MallGoodsPreferentialRepository.GetGoodsPreferentialListRepostory(new RB_Goods_Preferential_Extend() { GoodsId = courseModel.MallGoodsId });
...@@ -2165,7 +2174,6 @@ namespace Edu.Module.Course ...@@ -2165,7 +2174,6 @@ namespace Edu.Module.Course
} }
} }
} }
return flag; return flag;
} }
......
...@@ -29,6 +29,16 @@ namespace Edu.Module.Course ...@@ -29,6 +29,16 @@ namespace Edu.Module.Course
return list; return list;
} }
/// <summary>
/// 批量添加课程单词
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public bool BatchInsertCourseWordsModule(List<RB_Course_Words_Extend> list)
{
return course_WordsRepository.BatchInsertCourseWordsRepository(list);
}
/// <summary> /// <summary>
/// 新增修改课程单词 /// 新增修改课程单词
/// </summary> /// </summary>
...@@ -47,6 +57,7 @@ namespace Edu.Module.Course ...@@ -47,6 +57,7 @@ namespace Edu.Module.Course
{nameof(RB_Course_Words_Extend.WordTone),model.WordTone }, {nameof(RB_Course_Words_Extend.WordTone),model.WordTone },
{nameof(RB_Course_Words_Extend.WordWrite),model.WordWrite }, {nameof(RB_Course_Words_Extend.WordWrite),model.WordWrite },
{nameof(RB_Course_Words_Extend.ChineseMean),model.ChineseMean }, {nameof(RB_Course_Words_Extend.ChineseMean),model.ChineseMean },
{nameof(RB_Course_Words_Extend.FileUrl),model.FileUrl },
{nameof(RB_Course_Words_Extend.UpdateBy),model.UpdateBy }, {nameof(RB_Course_Words_Extend.UpdateBy),model.UpdateBy },
{nameof(RB_Course_Words_Extend.UpdateTime),model.UpdateTime }, {nameof(RB_Course_Words_Extend.UpdateTime),model.UpdateTime },
}; };
......
...@@ -437,6 +437,29 @@ namespace Edu.Module.User ...@@ -437,6 +437,29 @@ namespace Edu.Module.User
extModel.StuPurposeName = learningGoalsRepository.GetLearningGoalsExtEntityRepository(extModel.StuPurpose)?.Name ?? ""; extModel.StuPurposeName = learningGoalsRepository.GetLearningGoalsExtEntityRepository(extModel.StuPurpose)?.Name ?? "";
extModel.StuChannelName = channelRepository.GetChannelExtEntityRepository(extModel.StuChannel)?.Name ?? ""; extModel.StuChannelName = channelRepository.GetChannelExtEntityRepository(extModel.StuChannel)?.Name ?? "";
extModel.StuNeedsName = needsRepository.GetNeedsExtEntityRepository(extModel.StuNeeds)?.Name ?? ""; extModel.StuNeedsName = needsRepository.GetNeedsExtEntityRepository(extModel.StuNeeds)?.Name ?? "";
if (extModel.CustomerId > 0)
{
extModel.CustomerName = customerRepository.GetEntity(extModel.CustomerId)?.CustomerName ?? "";
}
if (extModel.StuSourceId>0)
{
if (extModel.CreateType == StuCreateTypeEnum.CustomerInput)
{
extModel.StuSourceIdName = customerRepository.GetEntity(extModel.StuSourceId)?.CustomerName ?? "";
}
else if (extModel.CreateType == StuCreateTypeEnum.EmployeeInput)
{
extModel.StuSourceIdName = accountModule.GetEmployeeInfo(extModel.StuSourceId)?.EmployeeName ?? "";
}
else if (extModel.CreateType == StuCreateTypeEnum.InternalIntroduction)
{
extModel.StuSourceIdName = accountModule.GetEmployeeInfo(extModel.StuSourceId)?.EmployeeName ?? "";
}
else if (extModel.CreateType == StuCreateTypeEnum.TransIntroduction)
{
extModel.StuSourceIdName = studentRepository.GetEntity(extModel.StuSourceId)?.StuName ?? "";
}
}
} }
return extModel; return extModel;
} }
......
...@@ -37,8 +37,37 @@ WHERE 1=1 ...@@ -37,8 +37,37 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Words_Extend.CourseId), query.CourseId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Words_Extend.CourseId), query.CourseId);
} }
if (!string.IsNullOrEmpty(query.QCourseIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Course_Words_Extend.CourseId), query.QCourseIds);
}
} }
return Get<RB_Course_Words_Extend>(builder.ToString()).ToList(); return Get<RB_Course_Words_Extend>(builder.ToString()).ToList();
} }
/// <summary>
/// 批量添加课程单词
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public bool BatchInsertCourseWordsRepository(List<RB_Course_Words_Extend> list)
{
bool flag = true;
if (list != null && list.Count > 0)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" INSERT INTO RB_Course_Words(CourseId,ChapterId,WordType,WordContent,WordTone,WordWrite,ChineseMean,Status,Group_Id,CreateBy,CreateTime,UpdateBy,UpdateTime) ");
builder.AppendFormat(" VALUES ");
string tempStr = "";
foreach (var item in list)
{
tempStr += $",({item.CourseId},{item.ChapterId},'{item.WordType}','{item.WordContent}','{item.WordTone}','{item.WordWrite}','{item.ChineseMean}',0,{item.Group_Id},{item.CreateBy},'{item.CreateTime}',{item.UpdateBy},'{item.UpdateTime}') ";
}
builder.Append(tempStr.TrimStart(','));
flag = base.Execute(builder.ToString()) > 0;
}
return flag;
}
} }
} }
...@@ -582,10 +582,19 @@ namespace Edu.WebApi.Controllers.Course ...@@ -582,10 +582,19 @@ namespace Edu.WebApi.Controllers.Course
#region 课程章节管理 #region 课程章节管理
/// <summary>
/// 导入课程章节到新课程
/// </summary>
/// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult SetImportCourseChapter() public ApiResult SetImportCourseChapter()
{ {
var query = Common.Plugin.JsonHelper.DeserializeObject<RB_Course_Chapter_ViewModel>(RequestParm.Msg.ToString()); var query = new RB_Course_Chapter_ViewModel()
{
CourseIds = base.ParmJObj.GetStringValue("CourseIds"),
NewCourseId = base.ParmJObj.GetInt("NewCourseId"),
MaxLength = base.ParmJObj.GetInt("MaxLength")
};
query.Group_Id = base.UserInfo.Group_Id; query.Group_Id = base.UserInfo.Group_Id;
query.School_Id = base.UserInfo.School_Id; query.School_Id = base.UserInfo.School_Id;
query.CreateBy = base.UserInfo.Id; query.CreateBy = base.UserInfo.Id;
......
using Edu.Common.API; using Edu.Common.API;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Module.Course;
using Edu.WebApi.Filter; using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
...@@ -16,6 +19,11 @@ namespace Edu.WebApi.Controllers.Course ...@@ -16,6 +19,11 @@ namespace Edu.WebApi.Controllers.Course
[EnableCors("AllowCors")] [EnableCors("AllowCors")]
public class CourseWordsController : BaseController public class CourseWordsController : BaseController
{ {
/// <summary>
/// 课程单词处理类对象
/// </summary>
private readonly CourseWordsModule courseWordsModule = new CourseWordsModule();
/// <summary> /// <summary>
/// 导入Excel单词 /// 导入Excel单词
/// </summary> /// </summary>
...@@ -24,7 +32,109 @@ namespace Edu.WebApi.Controllers.Course ...@@ -24,7 +32,109 @@ namespace Edu.WebApi.Controllers.Course
{ {
var userInfo = base.GetUserInfo(Uid); var userInfo = base.GetUserInfo(Uid);
var dataList = Common.Data.CourseWordsHelper.GetXlsWordsData(filePath); var dataList = Common.Data.CourseWordsHelper.GetXlsWordsData(filePath);
return ApiResult.Success(data: dataList); List<RB_Course_Words_Extend> result = new List<RB_Course_Words_Extend>();
if (dataList != null && dataList.Count > 0)
{
foreach (var item in dataList)
{
var model = new RB_Course_Words_Extend()
{
Id = 0,
CourseId = CourseId,
ChapterId = item.ChapterId,
WordType = item.WordType,
WordContent = item.WordContent,
WordTone = item.WordTone,
WordWrite = item.WordWrite,
ChineseMean = item.ChineseMean,
Status = Common.Enum.DateStateEnum.Normal,
Group_Id = userInfo.Group_Id,
CreateBy = userInfo.Id,
CreateTime = DateTime.Now,
UpdateBy = userInfo.Id,
UpdateTime = DateTime.Now
};
if (!string.IsNullOrEmpty(model.WordContent))
{
result.Add(model);
}
}
}
bool flag = false;
if (result != null && result.Count > 0)
{
flag = courseWordsModule.BatchInsertCourseWordsModule(result);
}
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 获取课程单词列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetCourseWordsList()
{
var query = new RB_Course_Words_Extend()
{
CourseId = base.ParmJObj.GetInt("CourseId"),
ChapterId = base.ParmJObj.GetInt("ChapterId"),
};
query.Group_Id = base.UserInfo.Group_Id;
var list = courseWordsModule.GetCourseWordsListModule(query);
return ApiResult.Success(data: list);
}
/// <summary>
/// 添加修改课程单词
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetCourseWords()
{
var extModel = new RB_Course_Words_Extend()
{
Id = base.ParmJObj.GetInt("Id"),
CourseId = base.ParmJObj.GetInt("CourseId"),
ChapterId = base.ParmJObj.GetInt("ChapterId"),
WordType = base.ParmJObj.GetStringValue("WordType"),
WordContent = base.ParmJObj.GetStringValue("WordContent"),
WordTone = base.ParmJObj.GetStringValue("WordTone"),
WordWrite = base.ParmJObj.GetStringValue("WordWrite"),
ChineseMean = base.ParmJObj.GetStringValue("ChineseMean"),
FileUrl = base.ParmJObj.GetStringValue("FileUrl"),
};
extModel.CreateTime = DateTime.Now;
extModel.CreateBy = UserInfo.Id;
extModel.UpdateBy = UserInfo.Id;
extModel.UpdateTime = DateTime.Now;
extModel.Group_Id = this.UserInfo.Group_Id;
bool flag = courseWordsModule.SetCourseWordsModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 根据编号获取单词详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetCourseWords()
{
var Id = base.ParmJObj.GetInt("Id", 0);
var extModel = courseWordsModule.GetCourseWordsModule(Id);
return ApiResult.Success(data: extModel);
}
/// <summary>
/// 根据编号删除单词
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult RemoveCourseWords()
{
var Id = base.ParmJObj.GetInt("Id", 0);
var flag = courseWordsModule.RemoveCourseWordsModule(Id);
return flag ? ApiResult.Success() : ApiResult.Failed();
} }
} }
} }
\ No newline at end of file
...@@ -1223,6 +1223,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -1223,6 +1223,7 @@ namespace Edu.WebApi.Controllers.User
extModel.PlatformName, extModel.PlatformName,
AssistList = extModel?.AssistList ?? new List<RB_Student_Assist_Extend>(), AssistList = extModel?.AssistList ?? new List<RB_Student_Assist_Extend>(),
extModel.StuSourceId, extModel.StuSourceId,
extModel.StuSourceIdName,
extModel.QQ, extModel.QQ,
extModel.WeChatNo, extModel.WeChatNo,
extModel.StuType, extModel.StuType,
...@@ -1230,6 +1231,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -1230,6 +1231,7 @@ namespace Edu.WebApi.Controllers.User
extModel.StuNeeds, extModel.StuNeeds,
extModel.StuNeedsName, extModel.StuNeedsName,
extModel.StuRealMobile, extModel.StuRealMobile,
extModel.CustomerName,
}; };
return ApiResult.Success(data: obj); return ApiResult.Success(data: obj);
} }
......
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