Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
huatu_API
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liudong1993
huatu_API
Commits
a7946a22
Commit
a7946a22
authored
Aug 20, 2025
by
吴春
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
64754337
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
349 additions
and
74 deletions
+349
-74
GuestDataHelper.cs
REBORN.Data/Guest/GuestDataHelper.cs
+58
-44
RB_Travel_Order_Extend.cs
REBORN.Model/Extend/Dmc/RB_Travel_Order_Extend.cs
+6
-0
SellOrderModule.cs
REBORN.Module.SellModule/SellOrderModule.cs
+183
-4
DMCFileUploadService.cs
REBORN.Services.DMCService/DMCFileUploadService.cs
+24
-1
VisaService.cs
REBORN.Services.DMCService/VisaService.cs
+1
-1
SellOrderService.cs
REBORN.Services.SellService/SellOrderService.cs
+64
-23
SellOrderService_V2.cs
REBORN.Services.SellService/SellOrderService_V2.cs
+10
-1
AppSetting.config
REBORN.WebApi/AppSetting.config
+3
-0
No files found.
REBORN.Data/Guest/GuestDataHelper.cs
View file @
a7946a22
...
...
@@ -14,7 +14,7 @@ namespace REBORN.Data.Guest
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public
static
List
<
ImpoertGuest
>
ImpoertGuestData
(
string
fileName
)
public
static
List
<
ImpoertGuest
>
ImpoertGuestData
(
string
fileName
,
int
Type
=
0
)
{
List
<
ImpoertGuest
>
list
=
new
List
<
ImpoertGuest
>();
var
dt
=
REBORN
.
Common
.
Plugin
.
NPOIHelper
.
ImportExceltoDt
(
fileName
,
0
,
0
,
true
,
"ImpoertGuestData"
);
...
...
@@ -22,19 +22,21 @@ namespace REBORN.Data.Guest
{
foreach
(
DataRow
dr
in
dt
.
Rows
)
{
ImpoertGuest
model
=
DataRowToModel
(
dr
);
ImpoertGuest
model
=
DataRowToModel
(
dr
,
Type
);
list
.
Add
(
model
);
}
}
return
list
;
}
/// <summary>
/// DataRow转实体
/// </summary>
/// <param name="dr"></param>
/// <returns></returns>
public
static
ImpoertGuest
DataRowToModel
(
DataRow
dr
)
public
static
ImpoertGuest
DataRowToModel
(
DataRow
dr
,
int
Type
=
0
)
{
ImpoertGuest
model
=
new
ImpoertGuest
();
if
(
dr
!=
null
)
...
...
@@ -43,25 +45,60 @@ namespace REBORN.Data.Guest
{
model
.
IdCard
=
dr
[
"身份证号码"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"中文姓"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"中文姓"
].
ToString
().
Trim
()))
{
model
.
SurName
=
dr
[
"中文姓"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"中文名"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"中文名"
].
ToString
().
Trim
()))
{
model
.
Name
=
dr
[
"中文名"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"性别"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"性别"
].
ToString
().
Trim
()))
{
model
.
Sex
=
dr
[
"性别"
].
ToString
().
Trim
()
==
"男"
?
1
:
2
;
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"英文姓"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"英文姓"
].
ToString
().
Trim
()))
if
(
Type
==
0
)
{
model
.
ESurName
=
dr
[
"英文姓"
].
ToString
().
Trim
();
if
(
dr
.
Table
.
Columns
.
Contains
(
"中文姓"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"中文姓"
].
ToString
().
Trim
()))
{
model
.
SurName
=
dr
[
"中文姓"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"中文名"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"中文名"
].
ToString
().
Trim
()))
{
model
.
Name
=
dr
[
"中文名"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"性别"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"性别"
].
ToString
().
Trim
()))
{
model
.
Sex
=
dr
[
"性别"
].
ToString
().
Trim
()
==
"男"
?
1
:
2
;
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"英文姓"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"英文姓"
].
ToString
().
Trim
()))
{
model
.
ESurName
=
dr
[
"英文姓"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"英文名"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"英文名"
].
ToString
().
Trim
()))
{
model
.
EName
=
dr
[
"英文名"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"出生地"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"出生地"
].
ToString
().
Trim
()))
{
model
.
BirthdayAddress
=
dr
[
"出生地"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"护照签发地"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"护照签发地"
].
ToString
().
Trim
()))
{
model
.
PassportAddress
=
dr
[
"护照签发地"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"国籍"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"国籍"
].
ToString
().
Trim
()))
{
model
.
NationalityStr
=
dr
[
"国籍"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"是否占床"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"是否占床"
].
ToString
().
Trim
()))
{
model
.
IsBed
=
dr
[
"是否占床"
].
ToString
().
Trim
()
==
"是"
?
1
:
0
;
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"房号"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"房号"
].
ToString
().
Trim
()))
{
Int32
.
TryParse
(
dr
[
"房号"
].
ToString
().
Trim
(),
out
int
HouseNum
);
model
.
HouseNo
=
HouseNum
;
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"房间类型"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"房间类型"
].
ToString
().
Trim
()))
{
model
.
HouseType
=
dr
[
"房间类型"
].
ToString
().
Trim
();
}
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"英文名"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"英文名"
].
ToString
().
Trim
())
)
else
if
(
Type
==
1
)
{
model
.
EName
=
dr
[
"英文名"
].
ToString
().
Trim
();
if
(
dr
.
Table
.
Columns
.
Contains
(
"姓名"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"姓名"
].
ToString
().
Trim
()))
{
model
.
Name
=
dr
[
"姓名"
].
ToString
().
Trim
();
}
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"手机号码"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"手机号码"
].
ToString
().
Trim
()))
{
...
...
@@ -72,18 +109,10 @@ namespace REBORN.Data.Guest
DateTime
.
TryParse
(
dr
[
"出生日期"
].
ToString
().
Trim
(),
out
DateTime
Birthday
);
model
.
Birthday
=
Birthday
;
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"出生地"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"出生地"
].
ToString
().
Trim
()))
{
model
.
BirthdayAddress
=
dr
[
"出生地"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"护照号"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"护照号"
].
ToString
().
Trim
()))
{
model
.
PassportNo
=
dr
[
"护照号"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"护照签发地"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"护照签发地"
].
ToString
().
Trim
()))
{
model
.
PassportAddress
=
dr
[
"护照签发地"
].
ToString
().
Trim
();
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"护照签发日期"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"护照签发日期"
].
ToString
().
Trim
()))
{
DateTime
.
TryParse
(
dr
[
"护照签发日期"
].
ToString
().
Trim
(),
out
DateTime
PassportIssued
);
...
...
@@ -94,26 +123,11 @@ namespace REBORN.Data.Guest
DateTime
.
TryParse
(
dr
[
"护照过期日"
].
ToString
().
Trim
(),
out
DateTime
PassportExpiry
);
model
.
PassportExpiry
=
PassportExpiry
;
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"国籍"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"国籍"
].
ToString
().
Trim
()))
{
model
.
NationalityStr
=
dr
[
"国籍"
].
ToString
().
Trim
();
}
model
.
IsVisaFree
=
2
;
model
.
IsNeedAirticket
=
1
;
model
.
IsNeedSafe
=
2
;
if
(
dr
.
Table
.
Columns
.
Contains
(
"是否占床"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"是否占床"
].
ToString
().
Trim
()))
{
model
.
IsBed
=
dr
[
"是否占床"
].
ToString
().
Trim
()
==
"是"
?
1
:
0
;
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"房号"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"房号"
].
ToString
().
Trim
()))
{
Int32
.
TryParse
(
dr
[
"房号"
].
ToString
().
Trim
(),
out
int
HouseNum
);
model
.
HouseNo
=
HouseNum
;
}
if
(
dr
.
Table
.
Columns
.
Contains
(
"房间类型"
)
&&
!
string
.
IsNullOrEmpty
(
dr
[
"房间类型"
].
ToString
().
Trim
()))
{
model
.
HouseType
=
dr
[
"房间类型"
].
ToString
().
Trim
();
}
}
return
model
;
}
...
...
REBORN.Model/Extend/Dmc/RB_Travel_Order_Extend.cs
View file @
a7946a22
...
...
@@ -753,6 +753,12 @@ namespace REBORN.Model.Extend.Dmc
/// </summary>
public
List
<
RB_Appoint_OP_Extend
>
AppointOPInfoList
{
get
;
set
;
}
/// <summary>
/// 附件
/// </summary>
public
List
<
Model
.
File
.
FileData
>
WordPathFileData
{
get
;
set
;
}
/// <summary>
/// 供应商信息
/// </summary>
...
...
REBORN.Module.SellModule/SellOrderModule.cs
View file @
a7946a22
...
...
@@ -47,6 +47,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
using System.Text;
...
...
@@ -14690,6 +14691,7 @@ namespace REBORN.Module.SellModule
/// <summary>
/// 获取订单信息
/// </summary>
...
...
@@ -14709,6 +14711,7 @@ namespace REBORN.Module.SellModule
string actionMenu = CacheManager.User.RbUserCache.GetUserActionMenu(userInfo.RB_Post_Id);
if (!string.IsNullOrEmpty(actionMenu) && actionMenu.Contains("S_CheckAllOrder"))//查看全部的订单信息
{
isMyOrder = 1;
model.CreateBy = 0;
}
}
...
...
@@ -14879,19 +14882,59 @@ namespace REBORN.Module.SellModule
List<RB_Appoint_OP_Extend> appointOPList = new List<RB_Appoint_OP_Extend>();
if ((userInfo?.SimpleEasy ?? 0) == 1)
{
string supplierIds = string.Join(",", list.Select(x => x.SupplierId));
supplierList = supplierRepository.GetAllListByIds(supplierIds);
string supplierIds = string.Join(",", list?.Where(x => x.SupplierId > 0)?.Select(x => x.SupplierId));
if (!string.IsNullOrWhiteSpace(supplierIds))
{
supplierList = supplierRepository.GetAllListByIds(supplierIds);
}
appointOPList = appointOPRepository.GetList(new RB_Appoint_OP_Extend { QOrderIds = OrderStr, ResourceType = ResourceTypeEnum.TeamPrice });
}
#endregion
foreach (var item in list)
{
#region 查询订单对应的供应商以及指定op
#region 查询订单对应的供应商以及指定op
附件信息
if ((userInfo?.SimpleEasy ?? 0) == 1)
{
item.SupplierModel = item.SupplierId > 0 ? (supplierList?.FirstOrDefault(x => x.ID == item.SupplierId) ?? new RB_Supplier_Extend()) : new RB_Supplier_Extend();
item.SupplierModel = item.SupplierId > 0 ? (supplierList?.FirstOrDefault(x => x.ID == item.SupplierId) ?? new RB_Supplier_Extend()) : new RB_Supplier_Extend()
{ ID = -1 }
;
item.AppointOPInfoList = appointOPList.Where(x => x.OrderId == item.OrderId)?.ToList() ?? new List<RB_Appoint_OP_Extend>();
item.WordPathFileData = new List<FileData>();
if (!string.IsNullOrWhiteSpace(item.WordPath))
{
try
{
item.WordPathFileData = JsonConvert.DeserializeObject<List<FileData>>(item.WordPath);
}
catch (Exception ex)
{
// 获取完整文件名(包含扩展名)
string fileNameWithExtension = Path.GetFileName(item.WordPath);
// 结果: "20190918085106105.doc"
// 获取扩展名(不包含点)
string extensionWithoutDot = Path.GetExtension(item.WordPath)?.TrimStart('.');
// 结果: "doc"
string fileType = "0";
if (!string.IsNullOrWhiteSpace(extensionWithoutDot))
{
extensionWithoutDot = extensionWithoutDot.ToUpper();
if (extensionWithoutDot.Contains("GIF") || extensionWithoutDot.Contains("JPG") || extensionWithoutDot.Contains("JPEG") || extensionWithoutDot.Contains("PNG") || extensionWithoutDot.Contains("BMP"))
{
fileType = "3";
}
else if (extensionWithoutDot.Contains("DOCX") || extensionWithoutDot.Contains("PPTX") || extensionWithoutDot.Contains("PDF") || extensionWithoutDot.Contains("DOC") || extensionWithoutDot.Contains("XLSX") || extensionWithoutDot.Contains("XLS") || extensionWithoutDot.Contains("PPT"))
{
fileType = "1";
}
}
item.WordPathFileData.Add(new FileData
{
Url = item.WordPath,
Name = fileNameWithExtension,
VideoPath = "",
FileType = fileType,
});
}
}
}
#endregion
...
...
@@ -22514,6 +22557,142 @@ namespace REBORN.Module.SellModule
}
return list;
}
/// <summary>
/// 导入旅客信息
/// </summary>
/// <param name="FileName"></param>
/// <param name="orderId">订单id</param>
/// <param name="EmployeeId">员工编号</param>
/// <returns></returns>
public object ImpoertGuest_YL(string FileName, int orderId, string EmployeeId)
{
if (string.IsNullOrWhiteSpace(FileName))
{
return ApiResult.Success("请选择需要导入的EXCEL!");
}
var list = REBORN.Data.Guest.GuestDataHelper.ImpoertGuestData(FileName, 1);
if (orderId > 0)
{
var trans = GuestRepository.DbTransaction;
try
{
//获取订单信息
var orderModel = orderRepository.GetEntity(orderId);
UserInfo userInfo = CacheManager.User.RbUserCache.GetUserLoginInfo(string.IsNullOrWhiteSpace(EmployeeId) ? orderModel.EnterID.ToString() : EmployeeId);
#region 更新订单 同时查询旅客名单是否需要删除
RB_Travel_Guest_Extend dmodel1 = new RB_Travel_Guest_Extend
{
OrderId = orderId,
IsAllograph = 2
};
var guestList = GuestRepository.GetPeopleList(dmodel1).OrderByDescending(x => x.Id).ToList();
// 获取数据库中的旅客列表并按Id降序排列
var dbGuestList = guestList;
var newGuestList = list;
// 创建字典提高查找效率
var dbGuestDict = dbGuestList.ToDictionary(g => g.Name, g => g);
var newGuestDict = newGuestList.ToDictionary(g => g.Name, g => g);
// 找出需要删除的旅客
var guestsToRemove = dbGuestList.Where(g => !newGuestDict.ContainsKey(g.Name)).ToList();
foreach (var guest in guestsToRemove)
{
Dictionary<string, object> gfiles = new Dictionary<string, object>()
{
{ nameof(RB_Travel_Guest.Status),1}
};
List<WhereHelper> gwheres = new List<WhereHelper>()
{
new WhereHelper()
{
FiledName=nameof(RB_Travel_Guest.Id),
FiledValue=guest.Id,
OperatorEnum=OperatorEnum.Equal
}
};
GuestRepository.Update(gfiles, gwheres, trans);
}
// 处理新增和修改
foreach (var newGuest in newGuestList)
{
if (dbGuestDict.TryGetValue(newGuest.Name, out var existingGuest))
{
var nowGuest = guestList.FirstOrDefault(x => x.Name == newGuest.Name) ?? new RB_Travel_Guest_Extend();
Dictionary<string, object> gfiles = new Dictionary<string, object>()
{
{ nameof(RB_Travel_Guest.Name),newGuest.Name},
{ nameof(RB_Travel_Guest.IdCard),newGuest.IdCard},
{ nameof(RB_Travel_Guest.PassportExpiry),newGuest.PassportExpiry},
{ nameof(RB_Travel_Guest.PassportIssued),newGuest.PassportIssued},
{ nameof(RB_Travel_Guest.PassportNo),newGuest.PassportNo},
{ nameof(RB_Travel_Guest.Birthday),newGuest.Birthday},
{ nameof(RB_Travel_Guest.Tel),newGuest.MobilePhone},
};
List<WhereHelper> gwheres = new List<WhereHelper>()
{
new WhereHelper()
{
FiledName=nameof(RB_Travel_Guest.Id),
FiledValue=nowGuest.Id,
OperatorEnum=OperatorEnum.Equal
}
};
GuestRepository.Update(gfiles, gwheres, trans);
}
else
{
// 新增记录
GuestRepository.Insert(new RB_Travel_Guest()
{
Id = 0,
TCID = orderModel.TCID,
OrderId = orderModel.OrderId,
SurName = newGuest.SurName,
Name = newGuest.Name,
Sex = newGuest.Sex,
ESurName = newGuest.ESurName,
EName = newGuest.EName,
Birthday = newGuest.Birthday,
PassportNo = newGuest.PassportNo,
Nationality = 2,//默认中国
EconomicCapability = "[]",
Remarks = orderModel.Remarks,
MobilePhone = newGuest.MobilePhone,
Status = 0,
TravelType = 0,
UnitType = 0,
DutyType = 0,
CreateBy = userInfo.EmployeeId,
UpdateBy = userInfo.EmployeeId,
CreateDate = DateTime.Now,
UpdateDate = DateTime.Now,
IsAllograph = 2,
IsBed = 1
}, trans);
}
}
#endregion
GuestRepository.DBSession.Commit();
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "ImpoertGuest");
GuestRepository.DBSession.Rollback("ImpoertGuest");
return false;
}
}
var result = list?.Select(subItem => new { Tel = subItem?.MobilePhone ?? "", IdCard = subItem?.IdCard ?? "", PassportNo = subItem?.PassportNo ?? "", PassportExpiry = StringHelper.FormatDate(subItem.PassportExpiry), PassportIssued = StringHelper.FormatDate(subItem.PassportIssued), Birthday = StringHelper.FormatDate(subItem.Birthday), userName = subItem.SurName + subItem.Name, SexStr = subItem.Sex == 1 ? "男" : subItem.Sex == 2 ? "女" : "保密", Age = subItem.Birthday.HasValue ? System.DateTime.Now.Year - subItem.Birthday.Value.Year : 0, subItem.MobilePhone });
return result;
}
#endregion
REBORN.Services.DMCService/DMCFileUploadService.cs
View file @
a7946a22
...
...
@@ -132,7 +132,7 @@ namespace REBORN.Services.DMCService
string
cmd
=
parm
[
"cmd"
];
string
fileType
=
parm
[
"fileType"
];
string
RB_Group_id
=
parm
[
"RB_Group_id"
];
string
Type
=
parm
[
"Type"
];
//1.购物上传数据,2-机票导入,3-费用类型导入,4-行程一键上传 , 5-未认款导入,6导入旅客名单信息,7 房餐单据批量导入,8 汇差单据批量导入,9 客户信息 ,10 金蝶科目导入, 11 金蝶科目关联导入,16 jalan酒店导入,17 金蝶标记导入,18工资单导入,19 导入员工信息,20 购物店佣金导入(新),21 行政快递费批量导入制单, 22 车行ETC差额导入更新 , 23 车行ETC差额对比匹配, 24 出纳流水汇总
string
Type
=
parm
[
"Type"
];
//1.购物上传数据,2-机票导入,3-费用类型导入,4-行程一键上传 , 5-未认款导入,6导入旅客名单信息,7 房餐单据批量导入,8 汇差单据批量导入,9 客户信息 ,10 金蝶科目导入, 11 金蝶科目关联导入,16 jalan酒店导入,17 金蝶标记导入,18工资单导入,19 导入员工信息,20 购物店佣金导入(新),21 行政快递费批量导入制单, 22 车行ETC差额导入更新 , 23 车行ETC差额对比匹配, 24 出纳流水汇总
,28 邮轮导入旅客名单
double
.
TryParse
((!
string
.
IsNullOrEmpty
(
parm
[
"fileLimit"
])?
parm
[
"fileLimit"
].
ToString
():
""
),
out
double
fileLimit
);
//限制文件大小 单位M
string
EmployeeId
=
parm
[
"EmployeeId"
];
//ld 2019-07-31 财务未认款导入需要
...
...
@@ -758,6 +758,29 @@ namespace REBORN.Services.DMCService
return
ApiResult
.
Failed
(
message
:
msg
);
}
}
else
if
(
Type
==
"28"
)
{
object
obj
=
null
;
string
filePath
=
"/Upload/DMC/OrderGuest/"
+
ossFilename
;
try
{
obj
=
sellOrderModule
.
ImpoertGuest_YL
(
fileUrl
,
Convert
.
ToInt32
(
OrderId
),
EmployeeId
);
}
catch
(
Exception
ex
)
{
Common
.
Plugin
.
LogHelper
.
Write
(
ex
,
"LocalFileUpload"
);
}
DeleteFile
(
fileUrl
);
if
(
obj
!=
null
)
{
return
new
ApiResult
{
resultCode
=
(
int
)
ResultCode
.
Success
,
message
=
"上传成功!"
,
data
=
obj
};
}
else
{
return
ApiResult
.
Failed
(
message
:
"上传失败!"
);
}
}
return
ApiResult
.
Failed
(
message
:
"导入失败!"
);
}
...
...
REBORN.Services.DMCService/VisaService.cs
View file @
a7946a22
...
...
@@ -5069,7 +5069,7 @@ namespace REBORN.Services.DMCService
Contact
=
parm
.
GetStringValue
(
"Contact"
),
Name
=
parm
.
GetStringValue
(
"SupplierName"
),
Status
=
Common
.
Enum
.
DateStateEnum
.
Normal
,
Type
=
Common
.
Enum
.
ResourceTypeEnum
.
TicketCoupons
,
Type
=
Common
.
Enum
.
ResourceTypeEnum
.
Visa
,
CompanyName
=
parm
.
GetStringValue
(
"CompanyName"
),
//公司名称
DutyParagraph
=
parm
.
GetStringValue
(
"DutyParagraph"
),
//营业执照号
CompanyPhone
=
parm
.
GetStringValue
(
"CompanyPhone"
),
//电话
...
...
REBORN.Services.SellService/SellOrderService.cs
View file @
a7946a22
...
...
@@ -25,6 +25,7 @@ using REBORN.Model.Entity.Dmc;
using
REBORN.Model.Extend
;
using
REBORN.Model.Extend.Dmc
;
using
REBORN.Model.Extend.Sell
;
using
REBORN.Model.File
;
using
REBORN.Module.SellModule
;
using
REBORN.Module.UserModule
;
using
StackExchange.Redis
;
...
...
@@ -4999,6 +5000,7 @@ namespace REBORN.Services.SellService
}
else
{
https
:
//servicewechat.com/wx76f943d5111a0e76/70/image/yunfuyoukang/bg_top1.png
userInfo
=
CacheManager
.
User
.
RbUserCache
.
GetUserLoginInfo
(
request
.
uid
);
}
if
(
userInfo
.
SimpleEasy
==
0
)
...
...
@@ -6484,7 +6486,38 @@ namespace REBORN.Services.SellService
string
FilialeId
=
Common
.
Config
.
GetAppSetting
(
"FilialeId"
);
//分公司总经理岗位id
UserInfo
nowUserInfo
=
CacheManager
.
User
.
RbUserCache
.
GetUserLoginInfo
(
request
.
uid
);
//附件信息
List
<
FileData
>
fileData
=
new
List
<
FileData
>();
string
fileDataStr
=
parms
.
GetStringValue
(
"WordPathFileData"
);
if
(!
string
.
IsNullOrWhiteSpace
(
fileDataStr
))
{
try
{
JArray
guestInfoListArray
=
JArray
.
Parse
(
fileDataStr
);
if
(
guestInfoListArray
!=
null
&&
guestInfoListArray
.
Count
>
0
)
{
foreach
(
var
jItem
in
guestInfoListArray
)
{
JObject
jobj
=
JObject
.
Parse
(
JsonHelper
.
Serialize
(
jItem
));
fileData
.
Add
(
new
FileData
{
FileType
=
jobj
.
GetStringValue
(
"FileType"
),
Name
=
jobj
.
GetStringValue
(
"Name"
),
Url
=
jobj
.
GetStringValue
(
"Url"
),
VideoPath
=
jobj
.
GetStringValue
(
"VideoPath"
),
});
}
}
}
catch
(
Exception
ex
)
{
Common
.
Plugin
.
LogHelper
.
Write
(
ex
,
"WordPathFileData"
);
}
}
if
(
fileData
!=
null
&&
fileData
.
Any
())
{
dmodel
.
WordPath
=
JsonConvert
.
SerializeObject
(
fileData
);
}
var
newpriceModel
=
new
RB_Travel_Price_Extend
();
if
(
dmodel
.
OrderId
>
0
)
...
...
@@ -6506,7 +6539,7 @@ namespace REBORN.Services.SellService
newpriceModel
.
Title
=
parms
.
GetStringValue
(
"Title"
);
newpriceModel
.
StartDate
=
parms
.
GetDateTime
(
"StartDate"
);
newpriceModel
.
DayNum
=
parms
.
GetInt
(
"DayNum"
,
0
);
newpriceModel
.
WordPath
=
parms
.
GetStringValue
(
"WordPath"
);
//
newpriceModel.WordPath = parms.GetStringValue("WordPath");
newpriceModel
.
PriceTeamType
=
(
PriceTeamTypeEnum
)
parms
.
GetInt
(
"PriceTeamType"
,
1
);
//2019-06-06 Add By:w 判断修改的人数是否有变化,有变化前台提示重新分配房间信息
if
(
tomodel
.
GuestNum
!=
dmodel
.
GuestNum
||
tomodel
.
ManNum
!=
dmodel
.
ManNum
||
tomodel
.
ChirdNeedBedNum
!=
dmodel
.
ChirdNeedBedNum
||
tomodel
.
ChirdNum
!=
dmodel
.
ChirdNum
||
tomodel
.
BabyNum
!=
dmodel
.
ChirdNum
||
tomodel
.
OldPeopleNum
!=
dmodel
.
OldPeopleNum
||
tomodel
.
BigRoomNum
!=
dmodel
.
BigRoomNum
||
tomodel
.
SingleRoomNum
!=
dmodel
.
SingleRoomNum
||
tomodel
.
TripleRoomNum
!=
dmodel
.
TripleRoomNum
||
tomodel
.
DoubleRoomNum
!=
dmodel
.
DoubleRoomNum
||
tomodel
.
AirticketNum
!=
dmodel
.
AirticketNum
)
...
...
@@ -6580,6 +6613,7 @@ namespace REBORN.Services.SellService
var
addSupplier
=
supplierModule
.
Set
(
supplierModel
,
out
int
supplierId
);
newpriceModel
.
YSeat
=
(
dmodel
.
GuestNum
??
0
)
-
(
dmodel
.
BabyNum
??
0
);
newpriceModel
.
SupplierId
=
supplierId
;
newpriceModel
.
WordPath
=
dmodel
.
WordPath
;
var
priceFlag
=
sellOrderModule
.
UpdatePrice_YL
(
newpriceModel
);
if
(!
priceFlag
)
{
...
...
@@ -6628,24 +6662,29 @@ namespace REBORN.Services.SellService
decimal
Commission
=
Math
.
Round
((
dmodel
.
PreferPrice
??
0
)
*
Convert
.
ToDecimal
(
0.01
)
+
ExtraCommission
,
2
,
MidpointRounding
.
AwayFromZero
);
#
region
组装团信息
//供应商信息(供应商名称、联系人、联系电话是必须的,营业执照号、开户信息非必填))
RB_Supplier
supplierModel
=
new
RB_Supplier
//供应商id
{
ID
=
parms
.
GetInt
(
"SupplierId"
),
Tel
=
parms
.
GetStringValue
(
"Tel"
),
//联系人电话
Contact
=
parms
.
GetStringValue
(
"Contact"
),
Name
=
parms
.
GetStringValue
(
"SupplierName"
),
Status
=
Common
.
Enum
.
DateStateEnum
.
Normal
,
Type
=
Common
.
Enum
.
ResourceTypeEnum
.
TeamPrice
,
CompanyName
=
parms
.
GetStringValue
(
"CompanyName"
),
//公司名称
DutyParagraph
=
parms
.
GetStringValue
(
"DutyParagraph"
),
//营业执照号
CompanyPhone
=
parms
.
GetStringValue
(
"CompanyPhone"
),
//电话
OpeningBank
=
parms
.
GetStringValue
(
"OpeningBank"
),
//开户行
BankNo
=
parms
.
GetStringValue
(
"BankNo"
),
//开户账号
RB_Branch_id
=
userInfo
.
RB_Branch_id
,
RB_Group_id
=
userInfo
.
RB_Group_id
,
RB_Department_Id
=
userInfo
.
RB_Department_Id
,
};
var
addSupplier
=
supplierModule
.
Set
(
supplierModel
,
out
int
supplierId
);
int
supplierId
=
parms
.
GetInt
(
"supplierId"
);
if
(
supplierId
!=
-
1
)
{
RB_Supplier
supplierModel
=
new
RB_Supplier
//供应商id
{
ID
=
parms
.
GetInt
(
"SupplierId"
),
Tel
=
parms
.
GetStringValue
(
"Tel"
),
//联系人电话
Contact
=
parms
.
GetStringValue
(
"Contact"
),
Name
=
parms
.
GetStringValue
(
"SupplierName"
),
Status
=
Common
.
Enum
.
DateStateEnum
.
Normal
,
Type
=
Common
.
Enum
.
ResourceTypeEnum
.
TeamPrice
,
CompanyName
=
parms
.
GetStringValue
(
"CompanyName"
),
//公司名称
DutyParagraph
=
parms
.
GetStringValue
(
"DutyParagraph"
),
//营业执照号
CompanyPhone
=
parms
.
GetStringValue
(
"CompanyPhone"
),
//电话
OpeningBank
=
parms
.
GetStringValue
(
"OpeningBank"
),
//开户行
BankNo
=
parms
.
GetStringValue
(
"BankNo"
),
//开户账号
RB_Branch_id
=
userInfo
.
RB_Branch_id
,
RB_Group_id
=
userInfo
.
RB_Group_id
,
RB_Department_Id
=
userInfo
.
RB_Department_Id
,
};
var
addSupplier
=
supplierModule
.
Set
(
supplierModel
,
out
supplierId
);
}
RB_Travel_Config_Extend
modelConfig
=
new
RB_Travel_Config_Extend
{
ArriveCityId
=
0
,
...
...
@@ -6711,7 +6750,7 @@ namespace REBORN.Services.SellService
SalePlat
=
"3,4"
,
OutBranchId
=
userInfo
.
RB_Branch_id
,
StartDate
=
parms
.
GetDateTime
(
"StartDate"
),
WordPath
=
parms
.
GetStringValue
(
"WordPath"
)
,
WordPath
=
dmodel
.
WordPath
,
TeamType
=
TeamTypeEnum
.
Normal
,
PriceTeamType
=
(
PriceTeamTypeEnum
)
parms
.
GetInt
(
"PriceTeamType"
,
1
),
// offerItem?.PriceTeamType ?? PriceTeamTypeEnum.SanPing,//02024-08-16 add by:W
IsSupportChildren
=
1
,
...
...
@@ -6847,6 +6886,7 @@ namespace REBORN.Services.SellService
}
}
dmodel
.
TCID
=
newpriceModel
.
TCID
;
message
=
sellOrderModule
.
SetOrderInfo_YL
(
dmodel
,
newpriceModel
,
userInfo
,
out
int
orderId
,
IsInsertXQD
,
IsInsertXQDFC
,
IsAutoOrder
:
IsAutoSubmitOrder
,
userInfo
?.
EmployeeId
??
0
,
appointOPList
);
if
(
message
!=
""
)
...
...
@@ -11027,12 +11067,13 @@ namespace REBORN.Services.SellService
PredictRoomNum
=
x
.
PredictRoomNum
??
0
,
SafeNum
=
x
.
SafeNum
??
0
,
x
.
PriceTeamType
,
x
.
WordPath
,
WordPath
=
x
.
WordPath
??
""
,
x
.
Meet
,
x
.
FinalPriceTips
,
x
.
Title
,
SupplierModel
=
new
{
SupplierId
=
x
?.
SupplierModel
?.
ID
??
0
,
SupplierName
=
x
?.
SupplierModel
?.
Name
??
""
,
Tel
=
x
?.
SupplierModel
?.
Tel
??
""
,
Contact
=
x
?.
SupplierModel
?.
Contact
??
""
,
CompanyName
=
x
?.
SupplierModel
?.
CompanyName
??
""
,
DutyParagraph
=
x
?.
SupplierModel
?.
DutyParagraph
??
""
,
CompanyPhone
=
x
?.
SupplierModel
?.
CompanyPhone
??
""
,
OpeningBank
=
x
?.
SupplierModel
?.
OpeningBank
??
""
,
BankNo
=
x
?.
SupplierModel
?.
BankNo
??
""
},
SupplierModel
=
new
{
SupplierId
=
x
?.
SupplierModel
?.
ID
??
-
1
,
SupplierName
=
x
?.
SupplierModel
?.
Name
??
""
,
Tel
=
x
?.
SupplierModel
?.
Tel
??
""
,
Contact
=
x
?.
SupplierModel
?.
Contact
??
""
,
CompanyName
=
x
?.
SupplierModel
?.
CompanyName
??
""
,
DutyParagraph
=
x
?.
SupplierModel
?.
DutyParagraph
??
""
,
CompanyPhone
=
x
?.
SupplierModel
?.
CompanyPhone
??
""
,
OpeningBank
=
x
?.
SupplierModel
?.
OpeningBank
??
""
,
BankNo
=
x
?.
SupplierModel
?.
BankNo
??
""
},
AppointOPList
=
x
.
AppointOPInfoList
?.
Select
(
z
=>
new
{
z
.
OPId
,
OPName
=
CacheManager
.
User
.
RbUserCache
.
GetUserLoginInfo
(
z
.
OPId
.
ToString
())?.
emName
??
""
}),
x
.
WordPathFileData
,
});
pmodel
.
count
=
int
.
Parse
(
count
.
ToString
());
pmodel
.
pageData
=
data
;
...
...
REBORN.Services.SellService/SellOrderService_V2.cs
View file @
a7946a22
...
...
@@ -2228,7 +2228,16 @@ namespace REBORN.Services.SellService
/// <returns></returns>
public
virtual
ApiResult
OutToExcel
(
RequestParm
request
)
{
string
connString
=
ConfigurationManager
.
AppSettings
[
"OutToExcelGuest"
];
UserInfo
userInfo
=
CacheManager
.
User
.
RbUserCache
.
GetUserLoginInfo
(
request
.
uid
);
string
connString
=
""
;
if
((
userInfo
?.
SimpleEasy
??
0
)
==
0
)
{
connString
=
ConfigurationManager
.
AppSettings
[
"OutToExcelGuest"
];
}
else
if
((
userInfo
?.
SimpleEasy
??
0
)
==
1
)
{
connString
=
ConfigurationManager
.
AppSettings
[
"YLOutToExcelGuest"
];
}
return
ApiResult
.
Success
(
"请求成功!"
,
connString
);
}
...
...
REBORN.WebApi/AppSetting.config
View file @
a7946a22
...
...
@@ -216,6 +216,9 @@
<!--购物店导出模板地址-->
<
add
key
=
"OutToExcelGuest"
value
=
"/Upload/Template/导入旅客信息模板.xls"
/>
<!--购物店导出模板地址-->
<
add
key
=
"YLOutToExcelGuest"
value
=
"/Upload/Template/导入旅客基础信息模板.xls"
/>
<!--导入客户信息模板-->
<
add
key
=
"OutToExcelCustomer"
value
=
"/Upload/Template/导入客户信息模板.xls"
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment