Commit 42162482 authored by 吴春's avatar 吴春

意见调查统计

parent 5dbe38a6
......@@ -620,6 +620,14 @@ namespace REBORN.Model.Extend.Sell
public decimal GuestNum { get; set; }
}
public class RB_CRMGuestOrder_Query_GuestSurvey : RB_CRMGuestOrder_Query
{
/// <summary>
/// 只看有评分
/// </summary>
public int IsScore { get; set; }
}
/// <summary>
/// 查询返回的数据(7种订单的集合体)
......
......@@ -4454,7 +4454,7 @@ namespace REBORN.Module.SellModule
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_CRMGuestSurveyOrder_Return> GetGuestSurveyOrderStatisticsPageList(int pageIndex, int pageSize, out long count, RB_CRMGuestOrder_Query demodel)
public List<RB_CRMGuestSurveyOrder_Return> GetGuestSurveyOrderStatisticsPageList(int pageIndex, int pageSize, out long count, RB_CRMGuestOrder_Query_GuestSurvey demodel)
{
//判断当前登陆人是否是组长,如果是大组长的话,可以查询组长以及组员的信息
var list = crmRepository.GetGuestSurveyOrderStatisticsPageList(pageIndex, pageSize, out count, demodel);
......@@ -4500,8 +4500,20 @@ namespace REBORN.Module.SellModule
item.FinishNum = tempFinish?.Count() ?? 0;
if ((tempFinish?.Count() ?? 0) > 0)//有人填写
{
List<int> scores = guestSurveyDetailsList?.Where(x => x.ScoreNum > 0)?.Select(x => x.ScoreNum)?.ToList() ?? new List<int>(); //tempFinish?.Where(x => x.ScoreNum > 0)?.Select(x => x.ScoreNum)?;
double average = scores.Average();
List<int> scores = new List<int>();
foreach (var itemF in tempFinish)
{
var nowGuestSurveyDetailsList = guestSurveyDetailsList?.Where(x => x.GuestSurveyId == itemF.ID && x.ScoreNum > 0)?.ToList() ?? new List<Rb_Travel_GuestSurveyDetails>();
if (nowGuestSurveyDetailsList != null && nowGuestSurveyDetailsList.Any())
{
scores.AddRange(nowGuestSurveyDetailsList.Select(x => x.ScoreNum));
}
}
double average = 0;
if (scores != null && scores.Any())
{
average = scores.Average();
}
item.ScoreNum = Math.Round(Convert.ToDecimal(average), 2);
}
}
......@@ -4581,8 +4593,20 @@ namespace REBORN.Module.SellModule
item.FinishNum = tempFinish?.Count() ?? 0;
if ((tempFinish?.Count() ?? 0) > 0)//有人填写
{
List<int> scores = guestSurveyDetailsList?.Where(x => x.ScoreNum > 0)?.Select(x => x.ScoreNum)?.ToList() ?? new List<int>(); //tempFinish?.Where(x => x.ScoreNum > 0)?.Select(x => x.ScoreNum)?;
double average = scores.Average();
List<int> scores = new List<int>();
foreach (var itemF in tempFinish)
{
var nowGuestSurveyDetailsList = guestSurveyDetailsList?.Where(x => x.GuestSurveyId == itemF.ID && x.ScoreNum > 0)?.ToList() ?? new List<Rb_Travel_GuestSurveyDetails>();
if (nowGuestSurveyDetailsList != null && nowGuestSurveyDetailsList.Any())
{
scores.AddRange(nowGuestSurveyDetailsList.Select(x => x.ScoreNum));
}
}
double average = 0;
if (scores != null && scores.Any())
{
average = scores.Average();
}
item.ScoreNum = Math.Round(Convert.ToDecimal(average), 2);
}
}
......@@ -4632,8 +4656,20 @@ namespace REBORN.Module.SellModule
item.FinishNum = tempFinish?.Count() ?? 0;
if ((tempFinish?.Count() ?? 0) > 0)//有人填写
{
List<int> scores = guestSurveyDetailsList?.Where(x => x.ScoreNum > 0)?.Select(x => x.ScoreNum)?.ToList() ?? new List<int>(); //tempFinish?.Where(x => x.ScoreNum > 0)?.Select(x => x.ScoreNum)?;
double average = scores.Average();
List<int> scores = new List<int>();
foreach (var itemF in tempFinish)
{
var nowGuestSurveyDetailsList = guestSurveyDetailsList?.Where(x => x.GuestSurveyId == itemF.ID && x.ScoreNum > 0)?.ToList() ?? new List<Rb_Travel_GuestSurveyDetails>();
if (nowGuestSurveyDetailsList != null && nowGuestSurveyDetailsList.Any())
{
scores.AddRange(nowGuestSurveyDetailsList.Select(x => x.ScoreNum));
}
}
double average = 0;
if (scores != null && scores.Any())
{
average = scores.Average();
}
item.ScoreNum = Math.Round(Convert.ToDecimal(average), 2);
}
}
......@@ -4680,8 +4716,20 @@ namespace REBORN.Module.SellModule
item.FinishNum = tempFinish?.Count() ?? 0;
if ((tempFinish?.Count() ?? 0) > 0)//有人填写
{
List<int> scores = guestSurveyDetailsList?.Where(x => x.ScoreNum > 0)?.Select(x => x.ScoreNum)?.ToList() ?? new List<int>(); //tempFinish?.Where(x => x.ScoreNum > 0)?.Select(x => x.ScoreNum)?;
double average = scores.Average();
List<int> scores = new List<int>();
foreach (var itemF in tempFinish)
{
var nowGuestSurveyDetailsList = guestSurveyDetailsList?.Where(x => x.GuestSurveyId == itemF.ID && x.ScoreNum > 0)?.ToList() ?? new List<Rb_Travel_GuestSurveyDetails>();
if (nowGuestSurveyDetailsList != null && nowGuestSurveyDetailsList.Any())
{
scores.AddRange(nowGuestSurveyDetailsList.Select(x => x.ScoreNum));
}
}
double average = 0;
if (scores != null && scores.Any())
{
average = scores.Average();
}
item.ScoreNum = Math.Round(Convert.ToDecimal(average), 2);
}
}
......
......@@ -2905,7 +2905,7 @@ or (o.OrderStatus =6 and o.LossFinishTime <='{demodel.FinishETime} 23:59:59'))";
/// <param name="demodel"></param>
/// <param name="parameters"></param>
/// <param name="wheres"></param>
private static void GetGuestSurveySelectCondition(RB_CRMGuestOrder_Query demodel, DynamicParameters parameters, List<string> wheres)
private static void GetGuestSurveySelectCondition(RB_CRMGuestOrder_Query_GuestSurvey demodel, DynamicParameters parameters, List<string> wheres)
{
if ((demodel.LineId > 0 || demodel.TravelType > 0) && demodel.OrderType <= 0)
{
......@@ -2926,6 +2926,7 @@ or (o.OrderStatus =6 and o.LossFinishTime <='{demodel.FinishETime} 23:59:59'))";
}
}
}
if (demodel.IsMyOrder == 1)
{
demodel.EnterId = 0; demodel.LureEmpId = 0;
......@@ -3020,6 +3021,23 @@ or (o.OrderStatus =6 and o.LossFinishTime <='{demodel.FinishETime} 23:59:59'))";
}
}
}
if (demodel.IsScore == 1)
{
for (var i = 0; i < allCount; i++)
{
wheres[i] += $" AND ifnull(gs.Count,0)> 0";
}
}
//无评分
if (demodel.IsScore == -1)
{
for (var i = 0; i < allCount; i++)
{
wheres[i] += $" AND ifnull(gs.Count,0)= 0";
}
}
if (!string.IsNullOrEmpty(demodel.CustomerName))
{
for (var i = 0; i < allCount; i++)
......@@ -3343,17 +3361,18 @@ or (o.OrderStatus =6 and o.LossFinishTime <='{demodel.FinishETime} 23:59:59'))";
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_CRMGuestSurveyOrder_Return> GetGuestSurveyOrderStatisticsPageList(int pageIndex, int pageSize, out long count, RB_CRMGuestOrder_Query demodel)
public List<RB_CRMGuestSurveyOrder_Return> GetGuestSurveyOrderStatisticsPageList(int pageIndex, int pageSize, out long count, RB_CRMGuestOrder_Query_GuestSurvey demodel)
{
DynamicParameters parameters = new DynamicParameters();
List<string> wheres = new List<string>() { "", "", "", "", "", "", "" };// 这个一定要跟 CRMMergeOrderTypeEnum 一致
GetGuestSurveySelectCondition(demodel, parameters, wheres);
string leftSql = " LEFT JOIN (SELECT OrderId,Count(ID) as Count FROM rb_travel_guestsurvey GROUP BY OrderId) as gs on gs.OrderId=o.OrderId ";
string sql = $@"SELECT * FROM(
SELECT o.OrderId,o.CreateTime,1 as OrderType FROM {(Config.IsOnline ? "uat_reborn_sell" : "reborn_sell")}.rb_ticket_order o
{(!string.IsNullOrEmpty(demodel.CustomerName) ? "LEFT JOIN rb_travel_guest g on o.GuestId = g.Id" : "")}
{(demodel.BranchId > 0 ? $"LEFT JOIN {(Config.IsOnline ? "uat_reborn_user" : "reborn_user")}.rb_employee e on o.EnterID = e.EmployeeId" : "")}
{(demodel.BranchId > 0 ? $"LEFT JOIN {(Config.IsOnline ? "uat_reborn_user" : "reborn_user")}.rb_employee e1 on o.CreateBy = e1.EmployeeId" : "")}
{((demodel.IsScore == 1 || demodel.IsScore == -1) ? leftSql : "")}
WHERE o.GroupId ={demodel.GroupId} {(demodel.BranchId > 0 ? " and (e.RB_Branch_id =" + demodel.BranchId + " or e1.RB_Branch_id =" + demodel.BranchId + ")" : "")} {wheres[0]}
UNION ALL
......@@ -3364,6 +3383,7 @@ SELECT o.OrderId,o.CreateDate AS CreateTime,2 AS OrderType FROM rb_travel_order
{(!string.IsNullOrEmpty(demodel.CustomerName) ? "LEFT JOIN rb_travel_guest g on o.CRMGuestId = g.Id" : "")}
{(demodel.BranchId > 0 ? $"LEFT JOIN {(Config.IsOnline ? "uat_reborn_user" : "reborn_user")}.rb_employee e on o.EnterID = e.EmployeeId" : "")}
{(demodel.BranchId > 0 ? $"LEFT JOIN {(Config.IsOnline ? "uat_reborn_user" : "reborn_user")}.rb_employee e1 on o.LureEmpId = e1.EmployeeId" : "")}
{((demodel.IsScore == 1 || demodel.IsScore == -1) ? leftSql : "")}
WHERE o.RB_Group_Id ={demodel.GroupId} {(demodel.BranchId > 0 ? " and (e.RB_Branch_id =" + demodel.BranchId + " or e1.RB_Branch_id =" + demodel.BranchId + ")" : "")} and IFNULL(o.IsLeaderOrder,0)=0 {wheres[1]}
UNION ALL
......@@ -3373,6 +3393,7 @@ SELECT o.OrderId,o.CreateTime,3 AS OrderType FROM rb_customer_hotelorder o
{(!string.IsNullOrEmpty(demodel.CustomerName) ? "LEFT JOIN rb_travel_guest g on o.CRMGuestId = g.Id" : "")}
{(demodel.BranchId > 0 ? $"LEFT JOIN {(Config.IsOnline ? "uat_reborn_user" : "reborn_user")}.rb_employee e on o.EnterID = e.EmployeeId" : "")}
{(demodel.BranchId > 0 ? $"LEFT JOIN {(Config.IsOnline ? "uat_reborn_user" : "reborn_user")}.rb_employee e1 on o.LureEmpId = e1.EmployeeId" : "")}
{((demodel.IsScore == 1 || demodel.IsScore == -1) ? leftSql : "")}
WHERE o.GroupId ={demodel.GroupId} {(demodel.BranchId > 0 ? " and (e.RB_Branch_id =" + demodel.BranchId + " or e1.RB_Branch_id =" + demodel.BranchId + ")" : "")} {wheres[2]}
group by o.OrderId
......@@ -3383,6 +3404,7 @@ SELECT o.OrderId,o.CreateTime,4 AS OrderType FROM rb_customer_ticketorder o
{(!string.IsNullOrEmpty(demodel.CustomerName) ? "LEFT JOIN rb_travel_guest g on o.CRMGuestId = g.Id" : "")}
{(demodel.BranchId > 0 ? $"LEFT JOIN {(Config.IsOnline ? "uat_reborn_user" : "reborn_user")}.rb_employee e on o.EnterID = e.EmployeeId" : "")}
{(demodel.BranchId > 0 ? $"LEFT JOIN {(Config.IsOnline ? "uat_reborn_user" : "reborn_user")}.rb_employee e1 on o.LureEmpId = e1.EmployeeId" : "")}
{((demodel.IsScore == 1 || demodel.IsScore == -1) ? leftSql : "")}
WHERE o.GroupId ={demodel.GroupId} {(demodel.BranchId > 0 ? " and (e.RB_Branch_id =" + demodel.BranchId + " or e1.RB_Branch_id =" + demodel.BranchId + ")" : "")} {wheres[3]}
group by o.OrderId
......
......@@ -223,7 +223,7 @@ WHERE 1=1 AND A.TCState IN(3) AND A.Status IN(1,2,5)
//无评分
if (where.IsScore == -1)
{
sb.AppendFormat(" AND ifnull(c.Count,0)== 0 ");
sb.AppendFormat(" AND ifnull(c.Count,0)= 0 ");
// sb.AppendFormat(" AND NOT EXISTS(SELECT 1 FROM rb_travel_guestsurvey WHERE TCID=A.TCID) ");
}
}
......
......@@ -1035,7 +1035,7 @@ namespace REBORN.Services.SellService
UserInfo userInfo = CacheManager.User.RbUserCache.GetUserLoginInfo(request.uid);
ResultPageModel pmodel = JsonHelper.DeserializeObject<ResultPageModel>(request.msg.ToString());
JObject parms = JObject.Parse(request.msg.ToString());
RB_CRMGuestOrder_Query demodel = new RB_CRMGuestOrder_Query
RB_CRMGuestOrder_Query_GuestSurvey demodel = new RB_CRMGuestOrder_Query_GuestSurvey
{
OrderId = parms.GetInt("OrderId"),
GuestId = parms.GetInt("GuestId"),
......@@ -1058,36 +1058,10 @@ namespace REBORN.Services.SellService
IsSelectCRM = parms.GetInt("IsSelectCRM"),
IsMyOrder = parms.GetInt("IsMyOrder"),
CommissionType = parms.GetInt("CommissionType"),
IsScore = parms.GetInt("isScore"),
GroupId = userInfo.RB_Group_id,
EmployeeId = userInfo.EmployeeId
};
//非crm查询看权限
if (demodel.IsSelectCRM == 0 && demodel.IsMyOrder == 0)
{
//再查询一次 防止缓存丢失
if (string.IsNullOrWhiteSpace(userInfo.ActionMenuCode))
{
var ActionMenuList = sellOrderModule.GetActionCodeForUrlAndUser(userInfo.RB_Post_Id, "");
if (ActionMenuList != null && ActionMenuList.Count() > 0)
{
userInfo.ActionMenuCode = string.Join(",", ActionMenuList?.Select(x => x.ActionCode).ToList());
}
}
if (!string.IsNullOrEmpty(userInfo.ActionMenuCode) && ("," + userInfo.ActionMenuCode + ",").Contains(",S_CheckAllOrder,"))
{
//不处理
}
else if (!string.IsNullOrEmpty(userInfo.ActionMenuCode) && ("," + userInfo.ActionMenuCode + ",").Contains(",S_CheckBranchOrder,"))
{
demodel.BranchId = userInfo.RB_Branch_id;
}
else
{
demodel.IsMyOrder = 1;
}
}
var list = crmModule.GetGuestSurveyOrderStatisticsPageList(pmodel.pageIndex, pmodel.pageSize, out long count, demodel);
pmodel.count = Convert.ToInt32(count);
pmodel.pageData = list;
......
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