Selaa lähdekoodia

Merge branch 'master' of http://192.168.1.222:3000/yuqian/ZYKJ_API

zhengbingbing 7 vuotta sitten
vanhempi
commit
f9db8ad6cd
52 muutettua tiedostoa jossa 561 lisäystä ja 1035 poistoa
  1. 16 0
      .gitignore
  2. 1 1
      CallCenterApi/CallCenterApi.BLL/T_Cus_CustomerField.cs
  3. 1 1
      CallCenterApi/CallCenterApi.DAL/T_Call_CallRecords.cs
  4. 8 5
      CallCenterApi/CallCenterApi.DAL/T_Cus_CustomerField.cs
  5. 1 41
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/CallCenterApi.Interface.csproj
  6. 0 39
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/CallCenterApi.Interface.csproj.user
  7. 15 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/CallOutOptController.cs
  8. 41 5
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/IndexController.cs
  9. 66 3
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/UserAccountController.cs
  10. 54 11
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/callout/CallPlanController.cs
  11. 1 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/callout/ExcelTmpController.cs
  12. 27 7
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/customer/CustomerController.cs
  13. 80 10
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/quality/QCManageController.cs
  14. 19 8
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiTongHuaController.cs
  15. 17 7
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiWorkTotalController.cs
  16. 39 5
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallInScreenController.cs
  17. 94 14
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallrecordsController.cs
  18. 0 3
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Input/CustomerInput.cs
  19. 10 10
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Properties/PublishProfiles/MY.pubxml.user
  20. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Upload/ZXTX/20170728170157397.jpg
  21. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Upload/ZXTX/20170728170157397_s.jpg
  22. 2 1
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Web.config
  23. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Helpers.resources.dll
  24. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Mvc.resources.dll
  25. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Razor.resources.dll
  26. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Webpages.Deployment.resources.dll
  27. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Webpages.Razor.resources.dll
  28. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Webpages.resources.dll
  29. BIN
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/zh-Hans.rar
  30. 2 0
      CallCenterApi/CallCenterApi.Model/T_Cus_CustomerField.cs
  31. 0 23
      CallCenterApi/CallCenterApi_.Interface/App_Start/RouteConfig.cs
  32. 0 30
      CallCenterApi/CallCenterApi_.Interface/App_Start/WebApiConfig.cs
  33. 0 79
      CallCenterApi/CallCenterApi_.Interface/ApplicationInsights.config
  34. 0 217
      CallCenterApi/CallCenterApi_.Interface/CallCenterApi_.Interface.csproj
  35. 0 37
      CallCenterApi/CallCenterApi_.Interface/CallCenterApi_.Interface.csproj.user
  36. 0 87
      CallCenterApi/CallCenterApi_.Interface/Controllers/BaseController/ValidateController.cs
  37. 0 37
      CallCenterApi/CallCenterApi_.Interface/Controllers/BaseController/baseController.cs
  38. 0 68
      CallCenterApi/CallCenterApi_.Interface/Controllers/UserInfoController.cs
  39. 0 1
      CallCenterApi/CallCenterApi_.Interface/Global.asax
  40. 0 23
      CallCenterApi/CallCenterApi_.Interface/Global.asax.cs
  41. 0 35
      CallCenterApi/CallCenterApi_.Interface/Properties/AssemblyInfo.cs
  42. 0 42
      CallCenterApi/CallCenterApi_.Interface/Views/web.config
  43. 0 31
      CallCenterApi/CallCenterApi_.Interface/Web.Debug.config
  44. 0 32
      CallCenterApi/CallCenterApi_.Interface/Web.Release.config
  45. 0 84
      CallCenterApi/CallCenterApi_.Interface/Web.config
  46. 0 27
      CallCenterApi/CallCenterApi_.Interface/packages.config
  47. 1 2
      CallCenterCommon/CallCenter.QuartzService/CallCenter.QuartzService.csproj
  48. 1 0
      CallCenterCommon/CallCenter.Utility/CallCenter.Utility.csproj
  49. 52 0
      CallCenterCommon/CallCenter.Utility/FileExistsHelper.cs
  50. 5 9
      ZYKJCallCenter.sln
  51. 8 0
      数据库/添加字段.sql
  52. BIN
      文档/修改意见/鄂尔多斯外呼平台功能需求20181121.docx

+ 16 - 0
.gitignore

@@ -633,3 +633,19 @@ CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/ExcelData/20171117
633 633
 CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/ExcelData/20171117141653_导入模板 (3).xlsx
634 634
 CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/ExcelData/20171117141752_导入模板 (3).xlsx
635 635
 CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/ExcelData/20171117141900_导入模板 (3).xlsx
636
+/.vs
637
+/CallCenterApi/CallCenterApi.BLL/obj
638
+/CallCenterApi/CallCenterApi.Cache/obj
639
+/CallCenterApi/CallCenterApi.Common/obj
640
+/CallCenterApi/CallCenterApi.DAL/obj
641
+/CallCenterApi/CallCenterApi.DB/obj
642
+/CallCenterCommon/CallCenter.Utility/obj/Release
643
+/CallCenterCommon/CallCenter.Utility/obj/Debug
644
+/CallCenterCommon/CallCenter.QuartzService/obj/Release
645
+/CallCenterCommon/CallCenter.QuartzService/obj/Debug
646
+/CallCenterApi/CallCenterAPI.WechatSDK/obj/Release
647
+/CallCenterApi/CallCenterAPI.WechatSDK/obj/Debug
648
+/CallCenterApi/CallCenterApi.Model/obj
649
+/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/ExcelData
650
+/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/obj
651
+/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin

+ 1 - 1
CallCenterApi/CallCenterApi.BLL/T_Cus_CustomerField.cs

@@ -33,7 +33,7 @@ namespace CallCenterApi.BLL
33 33
                         F_IsShowOnList = row["F_IsShowOnList"] == DBNull.Value ? 0 : Convert.ToInt32(row["F_IsShowOnList"]),
34 34
                         F_IsShowOnScrean = row["F_IsShowOnScrean"] == DBNull.Value ? 0 : Convert.ToInt32(row["F_IsShowOnScrean"]),
35 35
                         F_Search = row["F_Search"] == DBNull.Value ? 0 : Convert.ToInt32(row["F_Search"]),
36
-
36
+                        F_IsEdit = row["F_IsEdit"] == DBNull.Value ? 0 : Convert.ToInt32(row["F_IsEdit"])
37 37
 
38 38
                     });
39 39
 

+ 1 - 1
CallCenterApi/CallCenterApi.DAL/T_Call_CallRecords.cs

@@ -1047,7 +1047,7 @@ namespace CallCenterApi.DAL
1047 1047
             strSql.Append(" case calltype when 1 then '呼出' else '呼入' end calltypes, ");
1048 1048
             strSql.Append(" case callstate when 1 then '已接通' else '未接通' end callstates, ");
1049 1049
             //strSql.Append(" case isdeal when 0 then '未处理' when 1 then '已处理' else '注销' end isdeals, ");
1050
-            strSql.Append(" usercode, (select F_UserName from T_Sys_UserAccount where F_UserCode= c.UserCode) username, ");
1050
+            strSql.Append(" usercode, (select TOP 1 F_UserName from T_Sys_UserAccount where F_UserCode= c.UserCode) username, ");
1051 1051
             strSql.Append(" begintime, talkstarttime, talkendtime, endtime, talklongtime");
1052 1052
             strSql.Append(" FROM T_Call_CallRecords c   WITH(NOLOCK) ");
1053 1053
             if (strWhere.Trim() != "")

+ 8 - 5
CallCenterApi/CallCenterApi.DAL/T_Cus_CustomerField.cs

@@ -14,7 +14,7 @@ namespace CallCenterApi.DAL
14 14
     {
15 15
         public Model.T_Cus_CustomerField GetModel(int id)
16 16
         {
17
-            string sql = "select top 1 F_Id,F_FieldType,F_FieldId,F_Name,F_DBTypeName,F_DBFieldName,F_Sort,F_CharLength,F_IsNecessary,F_IsExportOrInput,F_IsShowOnList,F_IsShowOnScrean,F_Search from T_Cus_CustomerField where F_Id=@F_Id ";
17
+            string sql = "select top 1 F_Id,F_FieldType,F_FieldId,F_Name,F_DBTypeName,F_DBFieldName,F_Sort,F_CharLength,F_IsNecessary,F_IsExportOrInput,F_IsShowOnList,F_IsShowOnScrean,F_Search,F_IsEdit from T_Cus_CustomerField where F_Id=@F_Id ";
18 18
             var dt = DbHelperSQL.Query(sql, new SqlParameter("@F_Id", id)).Tables[0];
19 19
             Model.T_Cus_CustomerField model = null;
20 20
             if (dt.Rows.Count > 0)
@@ -35,6 +35,7 @@ namespace CallCenterApi.DAL
35 35
                     F_IsShowOnList = row["F_IsShowOnList"] == DBNull.Value ? 0 : Convert.ToInt32(row["F_IsShowOnList"]),
36 36
                     F_IsShowOnScrean = row["F_IsShowOnScrean"] == DBNull.Value ? 0 : Convert.ToInt32(row["F_IsShowOnScrean"]),
37 37
                     F_Search = row["F_Search"] == DBNull.Value ? 0 : Convert.ToInt32(row["F_Search"]),
38
+                    F_IsEdit = row["F_IsEdit"] == DBNull.Value ? 0 : Convert.ToInt32(row["F_IsEdit"])
38 39
                 };
39 40
             }
40 41
             return model;
@@ -42,7 +43,7 @@ namespace CallCenterApi.DAL
42 43
 
43 44
         public bool Update(Model.T_Cus_CustomerField model)
44 45
         {
45
-            string sql = "update T_Cus_CustomerField set F_FieldType=@F_FieldType,F_FieldId=@F_FieldId,F_Name=@F_Name,F_DBTypeName=@F_DBTypeName,F_DBFieldName=@F_DBFieldName,F_Sort=@F_Sort,F_CharLength=@F_CharLength,F_IsNecessary=@F_IsNecessary,F_IsExportOrInput=@F_IsExportOrInput,F_IsShowOnList=@F_IsShowOnList,F_IsShowOnScrean=@F_IsShowOnScrean,F_Search=@F_Search where F_Id=@F_Id";
46
+            string sql = "update T_Cus_CustomerField set F_FieldType=@F_FieldType,F_FieldId=@F_FieldId,F_Name=@F_Name,F_DBTypeName=@F_DBTypeName,F_DBFieldName=@F_DBFieldName,F_Sort=@F_Sort,F_CharLength=@F_CharLength,F_IsNecessary=@F_IsNecessary,F_IsExportOrInput=@F_IsExportOrInput,F_IsShowOnList=@F_IsShowOnList,F_IsShowOnScrean=@F_IsShowOnScrean,F_Search=@F_Search,F_IsEdit=@F_IsEdit where F_Id=@F_Id";
46 47
             return DbHelperSQL.ExecuteSql(sql, new SqlParameter[] {
47 48
                 new SqlParameter("@F_Id",model.F_Id),
48 49
                 new SqlParameter("@F_FieldType",model.F_FieldType),
@@ -56,13 +57,14 @@ namespace CallCenterApi.DAL
56 57
                 new SqlParameter("@F_IsExportOrInput",model.F_IsExportOrInput),
57 58
                 new SqlParameter("@F_IsShowOnList",model.F_IsShowOnList),
58 59
                 new SqlParameter("@F_IsShowOnScrean",model.F_IsShowOnScrean),
59
-                new SqlParameter("@F_Search",model.F_Search)
60
+                new SqlParameter("@F_Search",model.F_Search),
61
+                new SqlParameter("@F_IsEdit",model.F_IsEdit),
60 62
             }) > 0;
61 63
         }
62 64
 
63 65
         public DataTable GetList()
64 66
         {
65
-            string sql = "select F_Id,F_FieldType,F_FieldId,F_Name,F_DBTypeName,F_DBFieldName,F_Sort,F_CharLength,F_IsNecessary,F_IsExportOrInput,F_IsShowOnList,F_IsShowOnScrean,F_Search from T_Cus_CustomerField";
67
+            string sql = "select F_Id,F_FieldType,F_FieldId,F_Name,F_DBTypeName,F_DBFieldName,F_Sort,F_CharLength,F_IsNecessary,F_IsExportOrInput,F_IsShowOnList,F_IsShowOnScrean,F_Search,F_IsEdit from T_Cus_CustomerField";
66 68
             return DbHelperSQL.Query(sql).Tables[0];
67 69
         }
68 70
 
@@ -79,7 +81,7 @@ namespace CallCenterApi.DAL
79 81
         }
80 82
         public int Add(Model.T_Cus_CustomerField model)
81 83
         {
82
-            string sql = "insert into T_Cus_CustomerField (F_FieldType,F_FieldId,F_Name,F_DBTypeName,F_DBFieldName,F_Sort) values (@F_FieldType,@F_FieldId,@F_Name,@F_DBTypeName,@F_DBFieldName,@F_Sort)";
84
+            string sql = "insert into T_Cus_CustomerField (F_FieldType,F_FieldId,F_Name,F_DBTypeName,F_DBFieldName,F_Sort,F_IsEdit) values (@F_FieldType,@F_FieldId,@F_Name,@F_DBTypeName,@F_DBFieldName,@F_Sort,@F_IsEdit)";
83 85
             return DbHelperSQL.ExecuteSql(sql, new SqlParameter[] {
84 86
                 new SqlParameter("@F_FieldType",model.F_FieldType),
85 87
                 new SqlParameter("@F_FieldId",model.F_FieldId),
@@ -87,6 +89,7 @@ namespace CallCenterApi.DAL
87 89
                 new SqlParameter("@F_DBTypeName",model.F_DBTypeName),
88 90
                 new SqlParameter("@F_DBFieldName",model.F_DBFieldName),
89 91
                 new SqlParameter("@F_Sort",model.F_Sort),
92
+                new SqlParameter("@F_IsEdit",model.F_IsEdit),
90 93
            });
91 94
 
92 95
         }

+ 1 - 41
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/CallCenterApi.Interface.csproj

@@ -25,6 +25,7 @@
25 25
     <NuGetPackageImportStamp>
26 26
     </NuGetPackageImportStamp>
27 27
     <TargetFrameworkProfile />
28
+    <Use64BitIISExpress />
28 29
   </PropertyGroup>
29 30
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
30 31
     <DebugSymbols>true</DebugSymbols>
@@ -150,43 +151,6 @@
150 151
     </Reference>
151 152
   </ItemGroup>
152 153
   <ItemGroup>
153
-    <Content Include="bin\CallCenterApi.Interface.dll" />
154
-    <Content Include="bin\CallCenterApi.Interface.pdb" />
155
-    <Content Include="bin\log4net.dll" />
156
-    <Content Include="bin\log4net.xml" />
157
-    <Content Include="bin\Microsoft.AI.Agent.Intercept.dll" />
158
-    <Content Include="bin\Microsoft.AI.DependencyCollector.dll" />
159
-    <Content Include="bin\Microsoft.AI.PerfCounterCollector.dll" />
160
-    <Content Include="bin\Microsoft.AI.ServerTelemetryChannel.dll" />
161
-    <Content Include="bin\Microsoft.AI.Web.dll" />
162
-    <Content Include="bin\Microsoft.AI.WindowsServer.dll" />
163
-    <Content Include="bin\Microsoft.ApplicationInsights.dll" />
164
-    <Content Include="bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll" />
165
-    <Content Include="bin\Microsoft.Web.Infrastructure.dll" />
166
-    <Content Include="bin\Newtonsoft.Json.dll" />
167
-    <Content Include="bin\Newtonsoft.Json.xml" />
168
-    <Content Include="bin\NPOI.dll" />
169
-    <Content Include="bin\NPOI.OOXML.dll" />
170
-    <Content Include="bin\NPOI.OpenXml4Net.dll" />
171
-    <Content Include="bin\NPOI.OpenXmlFormats.dll" />
172
-    <Content Include="bin\roslyn\csc.exe" />
173
-    <Content Include="bin\roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll" />
174
-    <Content Include="bin\roslyn\Microsoft.CodeAnalysis.CSharp.dll" />
175
-    <Content Include="bin\roslyn\Microsoft.CodeAnalysis.dll" />
176
-    <Content Include="bin\roslyn\Microsoft.CodeAnalysis.VisualBasic.dll" />
177
-    <Content Include="bin\roslyn\System.Collections.Immutable.dll" />
178
-    <Content Include="bin\roslyn\System.Reflection.Metadata.dll" />
179
-    <Content Include="bin\roslyn\vbc.exe" />
180
-    <Content Include="bin\roslyn\VBCSCompiler.exe" />
181
-    <Content Include="bin\Senparc.Weixin.dll" />
182
-    <Content Include="bin\Senparc.Weixin.MP.dll" />
183
-    <Content Include="bin\System.Web.Helpers.dll" />
184
-    <Content Include="bin\System.Web.Mvc.dll" />
185
-    <Content Include="bin\System.Web.Razor.dll" />
186
-    <Content Include="bin\System.Web.Webpages.Deployment.dll" />
187
-    <Content Include="bin\System.Web.Webpages.dll" />
188
-    <Content Include="bin\System.Web.Webpages.Razor.dll" />
189
-    <Content Include="bin\TopSdk.dll" />
190 154
     <!-- <Content Include="bin\zh-Hans\System.Web.Helpers.resources.dll" /> -->
191 155
     <!-- <Content Include="bin\zh-Hans\System.Web.Mvc.resources.dll" /> -->
192 156
     <!-- <Content Include="bin\zh-Hans\System.Web.Razor.resources.dll" /> -->
@@ -348,10 +312,6 @@
348 312
     </Content>
349 313
     <Content Include="Configs\log4net.config" />
350 314
     <Content Include="Configs\system.config" />
351
-    <Content Include="bin\ApplicationInsights.config" />
352
-    <Content Include="bin\roslyn\Microsoft.CSharp.Core.targets" />
353
-    <Content Include="bin\roslyn\Microsoft.VisualBasic.Core.targets" />
354
-    <Content Include="bin\roslyn\VBCSCompiler.exe.config" />
355 315
     <None Include="Properties\PublishProfiles\1q.pubxml" />
356 316
     <None Include="Properties\PublishProfiles\ddr.pubxml" />
357 317
     <None Include="Properties\PublishProfiles\my.pubxml" />

+ 0 - 39
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/CallCenterApi.Interface.csproj.user

@@ -1,39 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
-  <PropertyGroup>
4
-    <UseIISExpress>true</UseIISExpress>
5
-    <WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
6
-    <WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
7
-    <WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
8
-    <WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
9
-    <WebStackScaffolding_LayoutPageFile />
10
-    <WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
11
-    <NameOfLastUsedPublishProfile>MY</NameOfLastUsedPublishProfile>
12
-    <ProjectView>ShowAllFiles</ProjectView>
13
-  </PropertyGroup>
14
-  <ProjectExtensions>
15
-    <VisualStudio>
16
-      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
17
-        <WebProjectProperties>
18
-          <StartPageUrl>
19
-          </StartPageUrl>
20
-          <StartAction>CurrentPage</StartAction>
21
-          <AspNetDebugging>True</AspNetDebugging>
22
-          <SilverlightDebugging>False</SilverlightDebugging>
23
-          <NativeDebugging>False</NativeDebugging>
24
-          <SQLDebugging>False</SQLDebugging>
25
-          <ExternalProgram>
26
-          </ExternalProgram>
27
-          <StartExternalURL>
28
-          </StartExternalURL>
29
-          <StartCmdLineArguments>
30
-          </StartCmdLineArguments>
31
-          <StartWorkingDirectory>
32
-          </StartWorkingDirectory>
33
-          <EnableENC>True</EnableENC>
34
-          <AlwaysStartWebServerOnDebug>True</AlwaysStartWebServerOnDebug>
35
-        </WebProjectProperties>
36
-      </FlavorProperties>
37
-    </VisualStudio>
38
-  </ProjectExtensions>
39
-</Project>

+ 15 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/CallOutOptController.cs

@@ -1,4 +1,5 @@
1 1
 using CallCenter.Utility;
2
+using CallCenterApi.DB;
2 3
 using CallCenterApi.Interface.Controllers.Base;
3 4
 using System;
4 5
 using System.Collections.Generic;
@@ -11,6 +12,7 @@ namespace CallCenterApi.Interface.Controllers
11 12
     public class CallOutOptController : BaseController
12 13
     {
13 14
         private readonly BLL.T_Call_BanCallOut banCallOutBLL = new BLL.T_Call_BanCallOut();
15
+        private readonly BLL.T_Sys_Department deptBLL = new BLL.T_Sys_Department();
14 16
         //外呼判断本地外地以及加前缀返回
15 17
         public ActionResult GetCallOutprefix(string phone)
16 18
         {
@@ -19,6 +21,19 @@ namespace CallCenterApi.Interface.Controllers
19 21
             {
20 22
                 string phone1 = RequestString.ToDBC(RequestString.RemoveNotNumber(WebHelper.NoHtml(phone)));
21 23
 
24
+                #region //判断社会渠道人员是否可以进行外呼
25
+                var dt = new BLL.T_Sys_SystemConfig().GetList(" F_ParamCode='CanSheHuiCallOut' AND F_State=0 ").Tables[0];
26
+                if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["F_ParamValue"] != DBNull.Value && dt.Rows[0]["F_ParamValue"].ToString() == "0")
27
+                {
28
+                    var deptList = deptBLL.DataTableToListForLevel(DbHelperSQL.Query("select F_DeptId,F_DeptName,F_ParentId,F_DeptCode,F_Layer,0 lvl from T_Sys_Department").Tables[0]);
29
+                    var deptIdList = deptList.Where(x => x.DeptName.Contains("社会")).Select(x => x.DeptId).ToList();
30
+                    if (deptIdList.Contains(CurrentUser.UserData.F_DeptId))
31
+                        return Error("社会渠道人员禁止进行外呼");
32
+                }
33
+
34
+                #endregion
35
+
36
+
22 37
                 #region  //判断外呼号码是否存在于【禁止外呼表】,如果存在,不可进行外呼
23 38
                 if (banCallOutBLL.GetModel(phone1) != null)
24 39
                     return Error("该号码已被列为禁止外呼号码");

+ 41 - 5
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/IndexController.cs

@@ -467,18 +467,54 @@ namespace CallCenterApi.Interface.Controllers
467 467
 
468 468
                         dt = new BLL.T_Call_CallRecords().GetList(n, " UserCode='" + userModel.F_UserCode + "' ", "CallRecordsId desc").Tables[0];
469 469
                         var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
470
+                        var configbak = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPathBak' ").FirstOrDefault(); //备份录音服务器地址
470 471
                         foreach (DataRow dr in dt.Rows)
471 472
                         {
473
+                            //string path = dr["FilePath"] != null ? dr["FilePath"].ToString() : "";
474
+                            //if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
475
+                            //{
476
+                            //    var ym = config.F_ParamValue;
477
+                            //    if (ym.Substring(ym.Length - 1) == "/")
478
+                            //    {
479
+                            //        ym = ym.Substring(0, ym.Length - 1);
480
+                            //    }
481
+                            //    dr["FilePath"] = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
482
+                            //}
483
+
484
+                            //2018-05-16 lihai 判断录音是否存在
485
+                            //特别备注说明:所有备份录音都放到luyin文件夹下,所以FilePath录音目前需要处理
472 486
                             string path = dr["FilePath"] != null ? dr["FilePath"].ToString() : "";
473
-                            if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
487
+                            if (path != "")
474 488
                             {
475
-                                var ym = config.F_ParamValue;
476
-                                if (ym.Substring(ym.Length - 1) == "/")
489
+                                //文件路径
490
+                                var pathfile = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
491
+                                if (config != null && !string.IsNullOrEmpty(config.F_ParamValue))
477 492
                                 {
478
-                                    ym = ym.Substring(0, ym.Length - 1);
493
+                                    var ym = config.F_ParamValue;
494
+                                    if (ym.Substring(ym.Length - 1) == "/")
495
+                                    {
496
+                                        ym = ym.Substring(0, ym.Length - 1);
497
+                                    }
498
+                                    dr["FilePath"] = ym + pathfile;
499
+                                }
500
+                                //判断是否录音存在,不存在用备份录音路径
501
+                                bool isfile = FileExistsHelper.RemoteFileExists(dr["FilePath"].ToString());
502
+                                if (!isfile)
503
+                                {
504
+                                    //处理备份录音路径,record,和luyin文件都要过滤掉,配置文件加上ip+luyin
505
+                                    pathfile = pathfile.Replace("Record", "luyin");
506
+                                    if (configbak != null && !string.IsNullOrEmpty(configbak.F_ParamValue))
507
+                                    {
508
+                                        var ymbak = configbak.F_ParamValue;
509
+                                        if (ymbak.Substring(ymbak.Length - 1) == "/")
510
+                                        {
511
+                                            ymbak = ymbak.Substring(0, ymbak.Length - 1);
512
+                                        }
513
+                                        dr["FilePath"] = ymbak + pathfile;
514
+                                    }
479 515
                                 }
480
-                                dr["FilePath"] = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
481 516
                             }
517
+
482 518
                         }
483 519
                         res = Success("成功", dt);
484 520
                     }

File diff suppressed because it is too large
+ 66 - 3
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/UserAccountController.cs


+ 54 - 11
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/callout/CallPlanController.cs

@@ -80,7 +80,7 @@ namespace CallCenterApi.Interface.Controllers.callout
80 80
 
81 81
             var recordCount = 0;
82 82
             var dt = BLL.PagerBLL.GetListPager(
83
-                             "T_CTI_Task",
83
+                             "T_CTI_Task (NOLOCK) ",
84 84
                              "TaskID",
85 85
                              "*",
86 86
                              sql,
@@ -714,7 +714,7 @@ namespace CallCenterApi.Interface.Controllers.callout
714 714
 
715 715
             var recordCount = 0;
716 716
             var dt = BLL.PagerBLL.GetListPager(
717
-                             " T_Call_TaskTelNum tn left join T_CTI_Task t on t.TaskID=tn.F_TaskId",
717
+                             " T_Call_TaskTelNum (NOLOCK) tn left join T_CTI_Task (NOLOCK) t on t.TaskID=tn.F_TaskId ",
718 718
                              " F_Id ",
719 719
                              field,
720 720
                               sql,
@@ -980,7 +980,7 @@ namespace CallCenterApi.Interface.Controllers.callout
980 980
             var model = taskBLL.GetModel(id);
981 981
             if (model == null)
982 982
                 return Error("外呼任务不存在");
983
-            var obj = DbHelperSQL.GetSingle($"SELECT Count(F_ID) FROM T_Call_TaskTelNum WHERE F_UserId={CurrentUser.UserData.F_UserId} and F_TaskId={model.TaskID} and  F_FPState=1 and F_HCState=0 and F_AllotStatus>0 ");
983
+            var obj = DbHelperSQL.GetSingle($"SELECT Count(F_ID) FROM T_Call_TaskTelNum (NOLOCK) WHERE F_UserId={CurrentUser.UserData.F_UserId} and F_TaskId={model.TaskID} and  F_FPState=1 and F_HCState=0 and F_AllotStatus>0 ");
984 984
             var sum = obj == null ? 0 : Convert.ToInt32(obj);
985 985
             if (sum > 0)
986 986
                 return Error($"请先完成任务【{model.TaskName}】已获取号码的呼叫任务");
@@ -988,9 +988,17 @@ namespace CallCenterApi.Interface.Controllers.callout
988 988
             if (num <= 0)
989 989
                 return Error("已超出最多可获取数据条数,最多可获取数据为50条");
990 990
             num = Math.Abs(num);
991
-            var res = DbHelperSQL.ExecuteSql($"UPDATE T_Call_TaskTelNum SET F_FPState=1,F_AllotStatus=1,F_UserId={CurrentUser.UserData.F_UserId},F_Username='{CurrentUser.UserData.F_UserName}' WHERE F_Id in(SELECT TOP({(count > num ? num : count)}) F_Id FROM T_Call_TaskTelNum WHERE F_TaskId={id} and F_FPState=0 and F_AllotStatus=0)");
992
-            if (res > 0)
993
-                return Success($"获取到{res}条可用号码");
991
+
992
+            var telnum = DbHelperSQL.GetSingle($"SELECT Count(F_ID) FROM T_Call_TaskTelNum (NOLOCK) WHERE F_TaskId={model.TaskID} and F_FPState=0 and F_AllotStatus=0");
993
+            int telsum = telnum == null ? 0 : Convert.ToInt32(telnum);
994
+            if (telsum > 0)
995
+            {
996
+                //var res = DbHelperSQL.ExecuteSql($"UPDATE T_Call_TaskTelNum SET F_FPState=1,F_AllotStatus=1,F_UserId={CurrentUser.UserData.F_UserId},F_Username='{CurrentUser.UserData.F_UserName}' WHERE F_Id in(SELECT TOP({(count > num ? num : count)}) F_Id FROM T_Call_TaskTelNum WHERE F_TaskId={id} and F_FPState=0 and F_AllotStatus=0)");
997
+                var res = DbHelperSQL.ExecuteSql($"UPDATE T_Call_TaskTelNum SET F_FPState=1,F_AllotStatus=1,F_UserId={CurrentUser.UserData.F_UserId},F_Username='{CurrentUser.UserData.F_UserName}' WHERE F_Id in(SELECT TOP({(count > num ? num : count)}) F_Id FROM T_Call_TaskTelNum (NOLOCK) WHERE F_TaskId={model.TaskID} and F_FPState=0 and F_AllotStatus=0)");
998
+                if (res > 0)
999
+                    return Success($"获取到{res}条可用号码");
1000
+                return Error("未获取到可用号码");
1001
+            }
994 1002
             return Error("未获取到可用号码");
995 1003
         }
996 1004
         /// <summary>
@@ -1728,19 +1736,54 @@ namespace CallCenterApi.Interface.Controllers.callout
1728 1736
                        true,
1729 1737
                        out recordCount);
1730 1738
             var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
1739
+            var configbak = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPathBak' ").FirstOrDefault(); //备份录音服务器地址
1731 1740
             var callResultList = callResultBLL.DataTableToList(dt);
1732 1741
             var list = new List<AutoCallRecordDto>();
1733 1742
             callResultList.ForEach(x =>
1734 1743
             {
1735 1744
                 var recordPath = "";
1736
-                if (!string.IsNullOrWhiteSpace(x.RecordPath) && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
1745
+                //if (!string.IsNullOrWhiteSpace(x.RecordPath) && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
1746
+                //{
1747
+                //    var ym = config.F_ParamValue;
1748
+                //    if (ym.Substring(ym.Length - 1) == "/")
1749
+                //    {
1750
+                //        ym = ym.Substring(0, ym.Length - 1);
1751
+                //    }
1752
+                //    recordPath = ym + x.RecordPath.Substring(x.RecordPath.IndexOf(':') + 1).Replace('\\', '/');
1753
+                //}
1754
+
1755
+                //2018-05-16 lihai 判断录音是否存在
1756
+                //特别备注说明:所有备份录音都放到luyin文件夹下,所以FilePath录音目前需要处理
1757
+                string path = x.RecordPath ?? "";
1758
+                if (path != "")
1737 1759
                 {
1738
-                    var ym = config.F_ParamValue;
1739
-                    if (ym.Substring(ym.Length - 1) == "/")
1760
+                    //文件路径
1761
+                    var pathfile = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
1762
+                    if (config != null && !string.IsNullOrEmpty(config.F_ParamValue))
1763
+                    {
1764
+                        var ym = config.F_ParamValue;
1765
+                        if (ym.Substring(ym.Length - 1) == "/")
1766
+                        {
1767
+                            ym = ym.Substring(0, ym.Length - 1);
1768
+                        }
1769
+                        recordPath = ym + pathfile;
1770
+                    }
1771
+                    //判断是否录音存在,不存在用备份录音路径
1772
+                    bool isfile = FileExistsHelper.RemoteFileExists(recordPath);
1773
+                    if (!isfile)
1740 1774
                     {
1741
-                        ym = ym.Substring(0, ym.Length - 1);
1775
+                        //处理备份录音路径,record,和luyin文件都要过滤掉,配置文件加上ip+luyin
1776
+                        pathfile = pathfile.Replace("Record", "luyin");
1777
+                        if (configbak != null && !string.IsNullOrEmpty(configbak.F_ParamValue))
1778
+                        {
1779
+                            var ymbak = configbak.F_ParamValue;
1780
+                            if (ymbak.Substring(ymbak.Length - 1) == "/")
1781
+                            {
1782
+                                ymbak = ymbak.Substring(0, ymbak.Length - 1);
1783
+                            }
1784
+                            recordPath = ymbak + pathfile;
1785
+                        }
1742 1786
                     }
1743
-                    recordPath = ym + x.RecordPath.Substring(x.RecordPath.IndexOf(':') + 1).Replace('\\', '/');
1744 1787
                 }
1745 1788
 
1746 1789
                 list.Add(new AutoCallRecordDto

+ 1 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/callout/ExcelTmpController.cs

@@ -23,6 +23,7 @@ namespace CallCenterApi.Interface.Controllers.callout
23 23
         /// <returns></returns>
24 24
         public ActionResult GetList(FilterExcelTmp filter)
25 25
         {
26
+
26 27
             string sql = " and F_DBTableName='T_Call_PageField' ";
27 28
             if (filter.TempId > 0)
28 29
             {

+ 27 - 7
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/customer/CustomerController.cs

@@ -66,6 +66,16 @@ namespace CallCenterApi.Interface.Controllers.customer
66 66
             //需要搜索的自定义列
67 67
             var searchFieldList = columnList.Where(x => x.F_Search > 0).ToList();
68 68
 
69
+            #region 搜索条件
70
+            if (!string.IsNullOrWhiteSpace(filter.F_PhoneNum1))
71
+            {
72
+
73
+            }
74
+
75
+            #endregion
76
+
77
+
78
+
69 79
             //List<string> sqlList = new List<string>();
70 80
             //if (!string.IsNullOrWhiteSpace(filter.Fields) && !string.IsNullOrWhiteSpace(filter.FieldValues))
71 81
             //{
@@ -210,13 +220,21 @@ namespace CallCenterApi.Interface.Controllers.customer
210 220
             Model.T_Cus_CustomerBase model = new Model.T_Cus_CustomerBase();
211 221
             Model.T_Cus_CustomerExpand expand = new Model.T_Cus_CustomerExpand();
212 222
             BLL.T_Cus_CustomerBase bll = new BLL.T_Cus_CustomerBase();
223
+
224
+            var columnList = customerFieldBLL.GetList()
225
+              .Where(x => x.F_IsEdit > 0 && x.F_IsNecessary > 0).ToList();
226
+
227
+
228
+
229
+
230
+
213 231
             if (string.IsNullOrWhiteSpace(input.Id))
214 232
             {
215 233
                 model.F_Name = input.F_Name;
216 234
                 model.F_Address = input.F_Address;
217
-                model.F_CusType = input.F_CusType;
218
-                model.F_YHFKId = input.F_YHFKId;
219
-                model.F_YHFKName = input.F_YHFKName;
235
+                //model.F_CusType = input.F_CusType;
236
+                //model.F_YHFKId = input.F_YHFKId;
237
+                //model.F_YHFKName = input.F_YHFKName;
220 238
                 model.F_Remark = input.F_Remark;
221 239
                 model.F_PhoneNum1 = input.F_PhoneNum1;
222 240
                 model.F_PhoneNum2 = input.F_PhoneNum2;
@@ -282,9 +300,9 @@ namespace CallCenterApi.Interface.Controllers.customer
282 300
                 return Error("修改失败,该客户信息不存在");
283 301
             model.F_Name = input.F_Name;
284 302
             model.F_Address = input.F_Address;
285
-            model.F_CusType = input.F_CusType;
286
-            model.F_YHFKId = input.F_YHFKId;
287
-            model.F_YHFKName = input.F_YHFKName;
303
+            //model.F_CusType = input.F_CusType;
304
+            //model.F_YHFKId = input.F_YHFKId;
305
+            //model.F_YHFKName = input.F_YHFKName;
288 306
             model.F_Remark = input.F_Remark;
289 307
             model.F_PhoneNum1 = input.F_PhoneNum1;
290 308
             model.F_PhoneNum2 = input.F_PhoneNum2;
@@ -369,7 +387,7 @@ namespace CallCenterApi.Interface.Controllers.customer
369 387
         {
370 388
             //系统列+自定义列 实体
371 389
             var columnList = customerFieldBLL.GetList()
372
-                .Where(x => (x.F_FieldType == 0 && x.F_IsNecessary > 0) || (x.F_FieldType == 1 && x.F_IsShowOnScrean > 0))
390
+                .Where(x => x.F_IsEdit > 0)
373 391
                 .OrderBy(x => x.F_FieldType).ThenBy(x => x.F_Sort).ToList();
374 392
             //系统列+自定义列 字符串
375 393
             var headList = columnList.Select(x => x.F_Name).ToList();
@@ -381,5 +399,7 @@ namespace CallCenterApi.Interface.Controllers.customer
381 399
                 headlist = headList,
382 400
             });
383 401
         }
402
+
403
+
384 404
     }
385 405
 }

+ 80 - 10
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/quality/QCManageController.cs

@@ -133,15 +133,50 @@ namespace CallCenterApi.Interface.Controllers.quality
133 133
 
134 134
                 string path = string.IsNullOrWhiteSpace(d.FilePath) ? "" : d.FilePath;
135 135
                 var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
136
-                if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
136
+                var configbak = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPathBak' ").FirstOrDefault(); //备份录音服务器地址
137
+                //if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
138
+                //{
139
+                //    var ym = config.F_ParamValue;
140
+                //    if (ym.Substring(ym.Length - 1) == "/")
141
+                //    {
142
+                //        ym = ym.Substring(0, ym.Length - 1);
143
+                //    }
144
+                //    d.FilePath = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
145
+                //}
146
+
147
+                //2018-05-16 lihai 判断录音是否存在
148
+                //特别备注说明:所有备份录音都放到luyin文件夹下,所以FilePath录音目前需要处理
149
+                if (path != "")
137 150
                 {
138
-                    var ym = config.F_ParamValue;
139
-                    if (ym.Substring(ym.Length - 1) == "/")
151
+                    //文件路径
152
+                    var pathfile = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
153
+                    if (config != null && !string.IsNullOrEmpty(config.F_ParamValue))
140 154
                     {
141
-                        ym = ym.Substring(0, ym.Length - 1);
155
+                        var ym = config.F_ParamValue;
156
+                        if (ym.Substring(ym.Length - 1) == "/")
157
+                        {
158
+                            ym = ym.Substring(0, ym.Length - 1);
159
+                        }
160
+                        d.FilePath = ym + pathfile;
161
+                    }
162
+                    //判断是否录音存在,不存在用备份录音路径
163
+                    bool isfile = FileExistsHelper.RemoteFileExists(d.FilePath);
164
+                    if (!isfile)
165
+                    {
166
+                        //处理备份录音路径,record,和luyin文件都要过滤掉,配置文件加上ip+luyin
167
+                        pathfile = pathfile.Replace("Record", "luyin");
168
+                        if (configbak != null && !string.IsNullOrEmpty(configbak.F_ParamValue))
169
+                        {
170
+                            var ymbak = configbak.F_ParamValue;
171
+                            if (ymbak.Substring(ymbak.Length - 1) == "/")
172
+                            {
173
+                                ymbak = ymbak.Substring(0, ymbak.Length - 1);
174
+                            }
175
+                            d.FilePath = ymbak + pathfile;
176
+                        }
142 177
                     }
143
-                    d.FilePath = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
144 178
                 }
179
+
145 180
                 var user = userList.SingleOrDefault(x => x.F_UserCode == d.UserCode);
146 181
                 var dept = deptList.SingleOrDefault(x => x.F_DeptId == (user?.F_DeptId ?? 0));
147 182
                 var deptParent = deptList.SingleOrDefault(x => x.F_DeptId == (dept?.F_ParentId ?? 0));
@@ -298,15 +333,50 @@ namespace CallCenterApi.Interface.Controllers.quality
298 333
                 int dc = ldList.Where(l => l.F_CallRecordsID == d.CallRecordsId && l.F_OptID == int.Parse(optid) && l.F_IsDownload == true).Count();
299 334
                 string path = string.IsNullOrWhiteSpace(d.FilePath) ? "" : d.FilePath;
300 335
                 var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
301
-                if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
336
+                var configbak = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPathBak' ").FirstOrDefault(); //备份录音服务器地址
337
+                //if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
338
+                //{
339
+                //    var ym = config.F_ParamValue;
340
+                //    if (ym.Substring(ym.Length - 1) == "/")
341
+                //    {
342
+                //        ym = ym.Substring(0, ym.Length - 1);
343
+                //    }
344
+                //    d.FilePath = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
345
+                //}
346
+
347
+                //2018-05-16 lihai 判断录音是否存在
348
+                //特别备注说明:所有备份录音都放到luyin文件夹下,所以FilePath录音目前需要处理
349
+                if (path != "")
302 350
                 {
303
-                    var ym = config.F_ParamValue;
304
-                    if (ym.Substring(ym.Length - 1) == "/")
351
+                    //文件路径
352
+                    var pathfile = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
353
+                    if (config != null && !string.IsNullOrEmpty(config.F_ParamValue))
305 354
                     {
306
-                        ym = ym.Substring(0, ym.Length - 1);
355
+                        var ym = config.F_ParamValue;
356
+                        if (ym.Substring(ym.Length - 1) == "/")
357
+                        {
358
+                            ym = ym.Substring(0, ym.Length - 1);
359
+                        }
360
+                        d.FilePath = ym + pathfile;
361
+                    }
362
+                    //判断是否录音存在,不存在用备份录音路径
363
+                    bool isfile = FileExistsHelper.RemoteFileExists(d.FilePath);
364
+                    if (!isfile)
365
+                    {
366
+                        //处理备份录音路径,record,和luyin文件都要过滤掉,配置文件加上ip+luyin
367
+                        pathfile = pathfile.Replace("Record", "luyin");
368
+                        if (configbak != null && !string.IsNullOrEmpty(configbak.F_ParamValue))
369
+                        {
370
+                            var ymbak = configbak.F_ParamValue;
371
+                            if (ymbak.Substring(ymbak.Length - 1) == "/")
372
+                            {
373
+                                ymbak = ymbak.Substring(0, ymbak.Length - 1);
374
+                            }
375
+                            d.FilePath = ymbak + pathfile;
376
+                        }
307 377
                     }
308
-                    d.FilePath = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
309 378
                 }
379
+
310 380
                 var user = userList.SingleOrDefault(x => x.F_UserCode == d.UserCode);
311 381
                 var dept = deptList.SingleOrDefault(x => x.F_DeptId == user.F_DeptId);
312 382
                 var deptParent = deptList.SingleOrDefault(x => x.F_DeptId == dept.F_ParentId);

File diff suppressed because it is too large
+ 19 - 8
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiTongHuaController.cs


File diff suppressed because it is too large
+ 17 - 7
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/ZuoXiWorkTotalController.cs


+ 39 - 5
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallInScreenController.cs

@@ -332,17 +332,51 @@ namespace CallCenterApi.Interface.Controllers.tel
332 332
                     true,
333 333
                     out recordCount);
334 334
                 var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
335
+                var configbak = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPathBak' ").FirstOrDefault(); //2018-05-16 lihai 备份录音服务器地址
335 336
                 foreach (DataRow dr in dt.Rows)
336 337
                 {
337 338
                     string path = dr["FilePath"] != null ? dr["FilePath"].ToString() : "";
338
-                    if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
339
+                    //if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
340
+                    //{
341
+                    //    var ym = config.F_ParamValue;
342
+                    //    if (ym.Substring(ym.Length - 1) == "/")
343
+                    //    {
344
+                    //        ym = ym.Substring(0, ym.Length - 1);
345
+                    //    }
346
+                    //    dr["FilePath"] = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
347
+                    //}
348
+
349
+                    //2018-05-16 lihai 判断录音是否存在
350
+                    //特别备注说明:所有备份录音都放到luyin文件夹下,所以FilePath录音目前需要处理
351
+                    if (path != "")
339 352
                     {
340
-                        var ym = config.F_ParamValue;
341
-                        if (ym.Substring(ym.Length - 1) == "/")
353
+                        //文件路径
354
+                        var pathfile = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
355
+                        if (config != null && !string.IsNullOrEmpty(config.F_ParamValue))
342 356
                         {
343
-                            ym = ym.Substring(0, ym.Length - 1);
357
+                            var ym = config.F_ParamValue;
358
+                            if (ym.Substring(ym.Length - 1) == "/")
359
+                            {
360
+                                ym = ym.Substring(0, ym.Length - 1);
361
+                            }
362
+                            dr["FilePath"] = ym + pathfile;
363
+                        }
364
+                        //判断是否录音存在,不存在用备份录音路径
365
+                        bool isfile = FileExistsHelper.RemoteFileExists(dr["FilePath"].ToString());
366
+                        if (!isfile)
367
+                        {
368
+                            //处理备份录音路径,record,和luyin文件都要过滤掉,配置文件加上ip+luyin
369
+                            pathfile = pathfile.Replace("Record", "luyin");
370
+                            if (configbak != null && !string.IsNullOrEmpty(configbak.F_ParamValue))
371
+                            {
372
+                                var ymbak = configbak.F_ParamValue;
373
+                                if (ymbak.Substring(ymbak.Length - 1) == "/")
374
+                                {
375
+                                    ymbak = ymbak.Substring(0, ymbak.Length - 1);
376
+                                }
377
+                                dr["FilePath"] = ymbak + pathfile;
378
+                            }
344 379
                         }
345
-                        dr["FilePath"] = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
346 380
                     }
347 381
                 }
348 382
 

+ 94 - 14
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallrecordsController.cs

@@ -110,9 +110,11 @@ namespace CallCenterApi.Interface.Controllers.tel
110 110
                 {
111 111
                     sql += " and datediff(day,BeginTime,'" + endtime + "')>=0 ";
112 112
                 }
113
+                //2018-05-25 lihai UserName数据跟UserCode数据不同步,所以UserName模糊搜索不准确,可以不要,前端已经删除掉姓名搜索
113 114
                 if (username.Trim() != "")
114 115
                 {
115
-                    sql += " and T_Sys_UserAccount.F_UserName like '%" + username.Trim() + "%'";
116
+                    //sql += " and T_Sys_UserAccount.F_UserName like '%" + username.Trim() + "%'";  //语句错误
117
+                    sql += " and UserName like '%" + username.Trim() + "%'";
116 118
                 }
117 119
 
118 120
                 if (strpageindex.Trim() != "")
@@ -126,7 +128,7 @@ namespace CallCenterApi.Interface.Controllers.tel
126 128
                 }
127 129
                 int recordCount = 0;
128 130
                 dt = BLL.PagerBLL.GetListPager(
129
-                    "T_Call_CallRecords",
131
+                    "T_Call_CallRecords (NOLOCK) ",
130 132
                     "CallRecordsId",
131 133
                     "*",
132 134
                     sql,
@@ -137,21 +139,56 @@ namespace CallCenterApi.Interface.Controllers.tel
137 139
                     out recordCount);
138 140
                 var callRecordList = callRecordBLL.DataTableToList(dt);
139 141
                 var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
142
+                var configbak = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPathBak' ").FirstOrDefault(); //备份录音服务器地址
140 143
                 var users = new BLL.T_Sys_UserAccount().GetModelList("");
141 144
                 var deptList = deptBLL.DataTableToListForLevel(DbHelperSQL.Query("select F_DeptId,F_ParentId,F_DeptName,F_DeptCode,F_Layer,0 lvl FROM T_Sys_Department ").Tables[0]);
142 145
                 var resList = new List<CallRecordDto>();
143 146
                 foreach (var item in callRecordList)
144 147
                 {
145 148
                     string path = item.FilePath ?? "";
146
-                    if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
149
+                    //if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
150
+                    //{
151
+                    //    var ym = config.F_ParamValue;
152
+                    //    if (ym.Substring(ym.Length - 1) == "/")
153
+                    //    {
154
+                    //        ym = ym.Substring(0, ym.Length - 1);
155
+                    //    }
156
+                    //    item.FilePath = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
157
+                    //}
158
+
159
+                    //2018-05-10 lihai 判断录音是否存在
160
+                    //特别备注说明:所有备份录音都放到luyin文件夹下,所以FilePath录音目前需要处理
161
+                    if (path != "")
147 162
                     {
148
-                        var ym = config.F_ParamValue;
149
-                        if (ym.Substring(ym.Length - 1) == "/")
163
+                        //文件路径
164
+                        var pathfile = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
165
+                        if (config != null && !string.IsNullOrEmpty(config.F_ParamValue))
150 166
                         {
151
-                            ym = ym.Substring(0, ym.Length - 1);
167
+                            var ym = config.F_ParamValue;
168
+                            if (ym.Substring(ym.Length - 1) == "/")
169
+                            {
170
+                                ym = ym.Substring(0, ym.Length - 1);
171
+                            }
172
+                            item.FilePath = ym + pathfile;
173
+                        }
174
+                        //判断是否录音存在,不存在用备份录音路径
175
+                        bool isfile = FileExistsHelper.RemoteFileExists(item.FilePath);
176
+                        if (!isfile)
177
+                        {
178
+                            //处理备份录音路径,record,和luyin文件都要过滤掉,配置文件加上ip+luyin
179
+                            pathfile = pathfile.Replace("Record", "luyin");
180
+                            if (configbak != null && !string.IsNullOrEmpty(configbak.F_ParamValue))
181
+                            {
182
+                                var ymbak = configbak.F_ParamValue;
183
+                                if (ymbak.Substring(ymbak.Length - 1) == "/")
184
+                                {
185
+                                    ymbak = ymbak.Substring(0, ymbak.Length - 1);
186
+                                }
187
+                                item.FilePath = ymbak + pathfile;
188
+                            }
152 189
                         }
153
-                        item.FilePath = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
154 190
                     }
191
+
155 192
                     string ucode = item.UserCode ?? "";
156 193
                     string uname = item.UserName ?? "";
157 194
                     Model.T_Sys_UserAccount uu = null;
@@ -282,13 +319,21 @@ namespace CallCenterApi.Interface.Controllers.tel
282 319
                 {
283 320
                     sql += " and CallType='" + calltype + "'";
284 321
                 }
322
+                //if (starttime.Trim() != "")
323
+                //{
324
+                //    sql += $" and  BeginTime>='{starttime} 00:00:00' ";
325
+                //}
326
+                //if (endtime.Trim() != "")
327
+                //{
328
+                //    sql += $" and  BeginTime<='{endtime} 23:59:59' ";
329
+                //}
285 330
                 if (starttime.Trim() != "")
286 331
                 {
287
-                    sql += $" and  BeginTime>='{starttime}' ";
332
+                    sql += " and datediff(day,BeginTime,'" + starttime + "')<=0 ";
288 333
                 }
289 334
                 if (endtime.Trim() != "")
290 335
                 {
291
-                    sql += $" and  BeginTime<='{endtime}' ";
336
+                    sql += " and datediff(day,BeginTime,'" + endtime + "')>=0 ";
292 337
                 }
293 338
 
294 339
                 List<Model.T_Call_CallRecordsExpt> callRecordList = callRecordBLL.DataTableToListExpt(callRecordBLL.GetListExpt(sql).Tables[0]);
@@ -404,15 +449,49 @@ namespace CallCenterApi.Interface.Controllers.tel
404 449
                 return Error("通话记录不存在");
405 450
             var filePath = "";
406 451
             var config = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
452
+            var configbak = new BLL.T_Sys_SystemConfig().GetModelList(" F_ParamCode='PlayPathBak' ").FirstOrDefault(); //备份录音服务器地址
407 453
             string path = callRecord.FilePath ?? "";
408
-            if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
454
+            //if (path != "" && config != null && !string.IsNullOrEmpty(config.F_ParamValue))
455
+            //{
456
+            //    var ym = config.F_ParamValue;
457
+            //    if (ym.Substring(ym.Length - 1) == "/")
458
+            //    {
459
+            //        ym = ym.Substring(0, ym.Length - 1);
460
+            //    }
461
+            //    filePath = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
462
+            //}
463
+
464
+            //2018-05-10 lihai 判断录音是否存在
465
+            //特别备注说明:所有备份录音都放到luyin文件夹下,所以FilePath录音目前需要处理
466
+            if (path != "")
409 467
             {
410
-                var ym = config.F_ParamValue;
411
-                if (ym.Substring(ym.Length - 1) == "/")
468
+                //文件路径
469
+                var pathfile = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
470
+                if (config != null && !string.IsNullOrEmpty(config.F_ParamValue))
471
+                {
472
+                    var ym = config.F_ParamValue;
473
+                    if (ym.Substring(ym.Length - 1) == "/")
474
+                    {
475
+                        ym = ym.Substring(0, ym.Length - 1);
476
+                    }
477
+                    filePath = ym + pathfile;
478
+                }
479
+                //判断是否录音存在,不存在用备份录音路径
480
+                bool isfile = FileExistsHelper.RemoteFileExists(filePath);
481
+                if (!isfile)
412 482
                 {
413
-                    ym = ym.Substring(0, ym.Length - 1);
483
+                    //处理备份录音路径,record,和luyin文件都要过滤掉,配置文件加上ip+luyin
484
+                    pathfile = pathfile.Replace("Record", "luyin");
485
+                    if (configbak != null && !string.IsNullOrEmpty(configbak.F_ParamValue))
486
+                    {
487
+                        var ymbak = configbak.F_ParamValue;
488
+                        if (ymbak.Substring(ymbak.Length - 1) == "/")
489
+                        {
490
+                            ymbak = ymbak.Substring(0, ymbak.Length - 1);
491
+                        }
492
+                        filePath = ymbak + pathfile;
493
+                    }
414 494
                 }
415
-                filePath = ym + path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
416 495
             }
417 496
 
418 497
 
@@ -426,5 +505,6 @@ namespace CallCenterApi.Interface.Controllers.tel
426 505
             return File(myResponseStream, "audio/wav", $"{callRecord.CallNumber}-{callRecord.BeginTime?.ToString("yyyyMMdd") ?? DateTime.Now.ToString("yyyyMMdd")}-{callRecord.UserCode}.wav");
427 506
 
428 507
         }
508
+        
429 509
     }
430 510
 }

+ 0 - 3
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Input/CustomerInput.cs

@@ -12,10 +12,7 @@ namespace CallCenterApi.Interface.Models.Input
12 12
         public string F_PhoneNum1 { get; set; } = "";
13 13
         public string F_PhoneNum2 { get; set; } = "";
14 14
         public string F_Address { get; set; } = "";
15
-        public int? F_CusType { get; set; } = 0;
16 15
         public string F_Remark { get; set; } = "";
17
-        public int? F_YHFKId { get; set; } = 0;
18
-        public string F_YHFKName { get; set; } = "";
19 16
 
20 17
         public string F_StrExpand1 { get; set; } = "";
21 18
         public string F_StrExpand2 { get; set; } = "";

+ 10 - 10
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Properties/PublishProfiles/MY.pubxml.user

@@ -34,31 +34,31 @@
34 34
       <publishTime>10/20/2017 11:39:24</publishTime>
35 35
     </File>
36 36
     <File Include="bin/CallCenter.Utility.dll">
37
-      <publishTime>11/03/2017 14:38:54</publishTime>
37
+      <publishTime>02/27/2018 08:44:53</publishTime>
38 38
     </File>
39 39
     <File Include="bin/CallCenterApi.BLL.dll">
40
-      <publishTime>11/03/2017 14:38:55</publishTime>
40
+      <publishTime>02/27/2018 08:44:58</publishTime>
41 41
     </File>
42 42
     <File Include="bin/CallCenterApi.Cache.dll">
43
-      <publishTime>11/03/2017 14:38:54</publishTime>
43
+      <publishTime>02/27/2018 08:44:53</publishTime>
44 44
     </File>
45 45
     <File Include="bin/CallCenterApi.Common.dll">
46
-      <publishTime>11/03/2017 14:38:55</publishTime>
46
+      <publishTime>02/27/2018 08:44:55</publishTime>
47 47
     </File>
48 48
     <File Include="bin/CallCenterApi.DAL.dll">
49
-      <publishTime>11/03/2017 14:38:55</publishTime>
49
+      <publishTime>02/27/2018 08:44:55</publishTime>
50 50
     </File>
51 51
     <File Include="bin/CallCenterApi.DB.dll">
52
-      <publishTime>11/03/2017 14:38:54</publishTime>
52
+      <publishTime>02/27/2018 08:44:53</publishTime>
53 53
     </File>
54 54
     <File Include="bin/CallCenterApi.Interface.dll">
55
-      <publishTime>11/03/2017 17:57:47</publishTime>
55
+      <publishTime>02/27/2018 08:45:09</publishTime>
56 56
     </File>
57 57
     <File Include="bin/CallCenterApi.Model.dll">
58
-      <publishTime>11/03/2017 14:38:54</publishTime>
58
+      <publishTime>02/27/2018 08:44:53</publishTime>
59 59
     </File>
60 60
     <File Include="bin/CallCenterAPI.WechatSDK.dll">
61
-      <publishTime>11/03/2017 14:38:55</publishTime>
61
+      <publishTime>02/27/2018 08:44:55</publishTime>
62 62
     </File>
63 63
     <File Include="bin/ICSharpCode.SharpZipLib.dll">
64 64
       <publishTime>01/03/2011 14:16:38</publishTime>
@@ -217,7 +217,7 @@
217 217
       <publishTime>10/12/2017 11:04:06</publishTime>
218 218
     </File>
219 219
     <File Include="Web.config">
220
-      <publishTime>11/03/2017 17:57:50</publishTime>
220
+      <publishTime>02/27/2018 08:45:17</publishTime>
221 221
     </File>
222 222
   </ItemGroup>
223 223
 </Project>

BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Upload/ZXTX/20170728170157397.jpg


BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Upload/ZXTX/20170728170157397_s.jpg


+ 2 - 1
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Web.config

@@ -17,7 +17,8 @@
17 17
     <add key="smssign" value="中鑫之宝"/>
18 18
   </appSettings>
19 19
   <connectionStrings>
20
-    <add name="ConnectionString" connectionString="Data Source=192.168.4.18;User ID=sa;pwd=800100;Initial Catalog=CallCenter_ZYKJ_Backup20180125;"/>
20
+    <!--<add name="ConnectionString" connectionString="Data Source=192.168.4.18;User ID=sa;pwd=800100;Initial Catalog=CallCenter_ZYKJ_Backup20180125;"/>-->
21
+    <add name="ConnectionString" connectionString="Data Source=39.153.161.180;User ID=sa;pwd=hykj800100;Initial Catalog=CallCenter-ZYKJ;" />
21 22
   </connectionStrings>
22 23
   <system.web>
23 24
     <compilation debug="true" targetFramework="4.5"/>

BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Helpers.resources.dll


BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Mvc.resources.dll


BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Razor.resources.dll


BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Webpages.Deployment.resources.dll


BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Webpages.Razor.resources.dll


BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/System.Web.Webpages.resources.dll


BIN
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/bin/zh-Hans/zh-Hans.rar


+ 2 - 0
CallCenterApi/CallCenterApi.Model/T_Cus_CustomerField.cs

@@ -21,6 +21,8 @@ namespace CallCenterApi.Model
21 21
         public int? F_IsShowOnList { get; set; } = 0;
22 22
         public int? F_IsShowOnScrean { get; set; } = 0;
23 23
         public int? F_Search { get; set; } = 0;
24
+        public int? F_IsEdit { get; set; }
25
+
24 26
 
25 27
     }
26 28
 }

+ 0 - 23
CallCenterApi/CallCenterApi_.Interface/App_Start/RouteConfig.cs

@@ -1,23 +0,0 @@
1
-using System;
2
-using System.Collections.Generic;
3
-using System.Linq;
4
-using System.Web;
5
-using System.Web.Mvc;
6
-using System.Web.Routing;
7
-
8
-namespace CallCenterApi_.Interface
9
-{
10
-    public class RouteConfig
11
-    {
12
-        public static void RegisterRoutes(RouteCollection routes)
13
-        {
14
-            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
15
-
16
-            routes.MapRoute(
17
-                name: "Default",
18
-                url: "{controller}/{action}/{id}",
19
-                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
20
-            );
21
-        }
22
-    }
23
-}

+ 0 - 30
CallCenterApi/CallCenterApi_.Interface/App_Start/WebApiConfig.cs

@@ -1,30 +0,0 @@
1
-using System;
2
-using System.Collections.Generic;
3
-using System.Linq;
4
-using System.Web.Http;
5
-
6
-namespace CallCenterApi_.Interface
7
-{
8
-    public static class WebApiConfig
9
-    {
10
-        public static void Register(HttpConfiguration config)
11
-        {
12
-            // Web API 配置和服务
13
-
14
-            // Web API 路由
15
-            config.MapHttpAttributeRoutes();
16
-
17
-            config.Routes.MapHttpRoute(
18
-                name: "DefaultApi",
19
-                routeTemplate: "api/{controller}/{action}/{id}",
20
-                defaults: new { id = RouteParameter.Optional }
21
-            );
22
-
23
-         //   config.Routes.MapHttpRoute(
24
-         //    name: "Api",
25
-         //    routeTemplate: "api/{controller}/{action}/{id}",
26
-         //    defaults: new { id = RouteParameter.Optional }
27
-         //);
28
-        }
29
-    }
30
-}

File diff suppressed because it is too large
+ 0 - 79
CallCenterApi/CallCenterApi_.Interface/ApplicationInsights.config


+ 0 - 217
CallCenterApi/CallCenterApi_.Interface/CallCenterApi_.Interface.csproj

@@ -1,217 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
-  <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
4
-  <Import Project="..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
5
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
6
-  <PropertyGroup>
7
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
8
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
9
-    <ProductVersion>
10
-    </ProductVersion>
11
-    <SchemaVersion>2.0</SchemaVersion>
12
-    <ProjectGuid>{2CFC5C63-0992-46AE-BD03-BDE1177CFE9A}</ProjectGuid>
13
-    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
14
-    <OutputType>Library</OutputType>
15
-    <AppDesignerFolder>Properties</AppDesignerFolder>
16
-    <RootNamespace>CallCenterApi_.Interface</RootNamespace>
17
-    <AssemblyName>CallCenterApi_.Interface</AssemblyName>
18
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
19
-    <UseIISExpress>true</UseIISExpress>
20
-    <IISExpressSSLPort />
21
-    <IISExpressAnonymousAuthentication />
22
-    <IISExpressWindowsAuthentication />
23
-    <IISExpressUseClassicPipelineMode />
24
-    <UseGlobalApplicationHostFile />
25
-    <NuGetPackageImportStamp>
26
-    </NuGetPackageImportStamp>
27
-  </PropertyGroup>
28
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
29
-    <DebugSymbols>true</DebugSymbols>
30
-    <DebugType>full</DebugType>
31
-    <Optimize>false</Optimize>
32
-    <OutputPath>bin\</OutputPath>
33
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
34
-    <ErrorReport>prompt</ErrorReport>
35
-    <WarningLevel>4</WarningLevel>
36
-  </PropertyGroup>
37
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
38
-    <DebugType>pdbonly</DebugType>
39
-    <Optimize>true</Optimize>
40
-    <OutputPath>bin\</OutputPath>
41
-    <DefineConstants>TRACE</DefineConstants>
42
-    <ErrorReport>prompt</ErrorReport>
43
-    <WarningLevel>4</WarningLevel>
44
-  </PropertyGroup>
45
-  <ItemGroup>
46
-    <Reference Include="Microsoft.AI.Agent.Intercept, Version=2.0.6.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
47
-      <HintPath>..\..\packages\Microsoft.ApplicationInsights.Agent.Intercept.2.0.6\lib\net45\Microsoft.AI.Agent.Intercept.dll</HintPath>
48
-      <Private>True</Private>
49
-    </Reference>
50
-    <Reference Include="Microsoft.AI.DependencyCollector, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
51
-      <HintPath>..\..\packages\Microsoft.ApplicationInsights.DependencyCollector.2.2.0\lib\net45\Microsoft.AI.DependencyCollector.dll</HintPath>
52
-      <Private>True</Private>
53
-    </Reference>
54
-    <Reference Include="Microsoft.AI.PerfCounterCollector, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
55
-      <HintPath>..\..\packages\Microsoft.ApplicationInsights.PerfCounterCollector.2.2.0\lib\net45\Microsoft.AI.PerfCounterCollector.dll</HintPath>
56
-      <Private>True</Private>
57
-    </Reference>
58
-    <Reference Include="Microsoft.AI.ServerTelemetryChannel, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
59
-      <HintPath>..\..\packages\Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.2.0\lib\net45\Microsoft.AI.ServerTelemetryChannel.dll</HintPath>
60
-      <Private>True</Private>
61
-    </Reference>
62
-    <Reference Include="Microsoft.AI.Web, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
63
-      <HintPath>..\..\packages\Microsoft.ApplicationInsights.Web.2.2.0\lib\net45\Microsoft.AI.Web.dll</HintPath>
64
-      <Private>True</Private>
65
-    </Reference>
66
-    <Reference Include="Microsoft.AI.WindowsServer, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
67
-      <HintPath>..\..\packages\Microsoft.ApplicationInsights.WindowsServer.2.2.0\lib\net45\Microsoft.AI.WindowsServer.dll</HintPath>
68
-      <Private>True</Private>
69
-    </Reference>
70
-    <Reference Include="Microsoft.ApplicationInsights, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
71
-      <HintPath>..\..\packages\Microsoft.ApplicationInsights.2.2.0\lib\net45\Microsoft.ApplicationInsights.dll</HintPath>
72
-      <Private>True</Private>
73
-    </Reference>
74
-    <Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
75
-      <HintPath>..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
76
-      <Private>True</Private>
77
-    </Reference>
78
-    <Reference Include="Microsoft.CSharp" />
79
-    <Reference Include="System.Net.Http" />
80
-    <Reference Include="System.Web.DynamicData" />
81
-    <Reference Include="System.Web.Entity" />
82
-    <Reference Include="System.Web.ApplicationServices" />
83
-    <Reference Include="System.ComponentModel.DataAnnotations" />
84
-    <Reference Include="System" />
85
-    <Reference Include="System.Data" />
86
-    <Reference Include="System.Core" />
87
-    <Reference Include="System.Data.DataSetExtensions" />
88
-    <Reference Include="System.Web.Extensions" />
89
-    <Reference Include="System.Xml.Linq" />
90
-    <Reference Include="System.Drawing" />
91
-    <Reference Include="System.Web" />
92
-    <Reference Include="System.Xml" />
93
-    <Reference Include="System.Configuration" />
94
-    <Reference Include="System.Web.Services" />
95
-    <Reference Include="System.EnterpriseServices" />
96
-  </ItemGroup>
97
-  <ItemGroup>
98
-    <Reference Include="System.Web.Razor">
99
-      <HintPath>..\..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
100
-    </Reference>
101
-    <Reference Include="System.Web.Webpages">
102
-      <HintPath>..\..\packages\Microsoft.AspNet.Webpages.3.2.3\lib\net45\System.Web.Webpages.dll</HintPath>
103
-    </Reference>
104
-    <Reference Include="System.Web.Webpages.Deployment">
105
-      <HintPath>..\..\packages\Microsoft.AspNet.Webpages.3.2.3\lib\net45\System.Web.Webpages.Deployment.dll</HintPath>
106
-    </Reference>
107
-    <Reference Include="System.Web.Webpages.Razor">
108
-      <HintPath>..\..\packages\Microsoft.AspNet.Webpages.3.2.3\lib\net45\System.Web.Webpages.Razor.dll</HintPath>
109
-    </Reference>
110
-    <Reference Include="System.Web.Helpers">
111
-      <HintPath>..\..\packages\Microsoft.AspNet.Webpages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
112
-    </Reference>
113
-    <Reference Include="Microsoft.Web.Infrastructure">
114
-      <HintPath>..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
115
-    </Reference>
116
-    <Reference Include="System.Web.Mvc">
117
-      <HintPath>..\..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
118
-    </Reference>
119
-    <Reference Include="Newtonsoft.Json">
120
-      <HintPath>..\..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
121
-    </Reference>
122
-    <Reference Include="System.Net.Http.Formatting">
123
-      <HintPath>..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
124
-    </Reference>
125
-    <Reference Include="System.Web.Http">
126
-      <HintPath>..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
127
-    </Reference>
128
-    <Reference Include="System.Web.Http.WebHost">
129
-      <HintPath>..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll</HintPath>
130
-    </Reference>
131
-  </ItemGroup>
132
-  <ItemGroup>
133
-    <Content Include="Global.asax" />
134
-    <Content Include="Web.config" />
135
-  </ItemGroup>
136
-  <ItemGroup>
137
-    <Compile Include="App_Start\RouteConfig.cs" />
138
-    <Compile Include="App_Start\WebApiConfig.cs" />
139
-    <Compile Include="Controllers\BaseController\BaseController.cs" />
140
-    <Compile Include="Controllers\BaseController\ValidateController.cs" />
141
-    <Compile Include="Controllers\UserInfoController.cs" />
142
-    <Compile Include="Global.asax.cs">
143
-      <DependentUpon>Global.asax</DependentUpon>
144
-    </Compile>
145
-    <Compile Include="Properties\AssemblyInfo.cs" />
146
-  </ItemGroup>
147
-  <ItemGroup>
148
-    <Content Include="Views\web.config" />
149
-    <Content Include="packages.config" />
150
-    <Content Include="ApplicationInsights.config">
151
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
152
-    </Content>
153
-    <None Include="Web.Debug.config">
154
-      <DependentUpon>Web.config</DependentUpon>
155
-    </None>
156
-    <None Include="Web.Release.config">
157
-      <DependentUpon>Web.config</DependentUpon>
158
-    </None>
159
-  </ItemGroup>
160
-  <ItemGroup>
161
-    <Folder Include="App_Data\" />
162
-    <Folder Include="Models\" />
163
-  </ItemGroup>
164
-  <ItemGroup>
165
-    <ProjectReference Include="..\..\CallCenterCommon\CallCenter.Utility\CallCenter.Utility.csproj">
166
-      <Project>{4DA219CC-911E-4C81-BB0B-DF5183FD50FF}</Project>
167
-      <Name>CallCenter.Utility</Name>
168
-    </ProjectReference>
169
-    <ProjectReference Include="..\..\CallCenterWeb\CallCenterWeb.Common\CallCenterWeb.Common\CallCenterWeb.Common.csproj">
170
-      <Project>{de11789f-788f-4175-b64d-391b0a566bdc}</Project>
171
-      <Name>CallCenterWeb.Common</Name>
172
-    </ProjectReference>
173
-    <ProjectReference Include="..\CallCenterApi.Common\CallCenterApi.Common.csproj">
174
-      <Project>{61507db3-6539-4161-9812-2103c794d209}</Project>
175
-      <Name>CallCenterApi.Common</Name>
176
-    </ProjectReference>
177
-  </ItemGroup>
178
-  <PropertyGroup>
179
-    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
180
-    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
181
-  </PropertyGroup>
182
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
183
-  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
184
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
185
-  <ProjectExtensions>
186
-    <VisualStudio>
187
-      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
188
-        <WebProjectProperties>
189
-          <UseIIS>True</UseIIS>
190
-          <AutoAssignPort>True</AutoAssignPort>
191
-          <DevelopmentServerPort>54568</DevelopmentServerPort>
192
-          <DevelopmentServerVPath>/</DevelopmentServerVPath>
193
-          <IISUrl>http://localhost:54568/</IISUrl>
194
-          <NTLMAuthentication>False</NTLMAuthentication>
195
-          <UseCustomServer>False</UseCustomServer>
196
-          <CustomServerUrl>
197
-          </CustomServerUrl>
198
-          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
199
-        </WebProjectProperties>
200
-      </FlavorProperties>
201
-    </VisualStudio>
202
-  </ProjectExtensions>
203
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
204
-    <PropertyGroup>
205
-      <ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
206
-    </PropertyGroup>
207
-    <Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
208
-    <Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
209
-  </Target>
210
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
211
-       Other similar extension points exist, see Microsoft.Common.targets.
212
-  <Target Name="BeforeBuild">
213
-  </Target>
214
-  <Target Name="AfterBuild">
215
-  </Target>
216
-  -->
217
-</Project>

+ 0 - 37
CallCenterApi/CallCenterApi_.Interface/CallCenterApi_.Interface.csproj.user

@@ -1,37 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
-  <PropertyGroup>
4
-    <UseIISExpress>true</UseIISExpress>
5
-    <WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
6
-    <WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
7
-    <WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
8
-    <WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
9
-    <WebStackScaffolding_LayoutPageFile />
10
-    <WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
11
-  </PropertyGroup>
12
-  <ProjectExtensions>
13
-    <VisualStudio>
14
-      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
15
-        <WebProjectProperties>
16
-          <StartPageUrl>
17
-          </StartPageUrl>
18
-          <StartAction>CurrentPage</StartAction>
19
-          <AspNetDebugging>True</AspNetDebugging>
20
-          <SilverlightDebugging>False</SilverlightDebugging>
21
-          <NativeDebugging>False</NativeDebugging>
22
-          <SQLDebugging>False</SQLDebugging>
23
-          <ExternalProgram>
24
-          </ExternalProgram>
25
-          <StartExternalURL>
26
-          </StartExternalURL>
27
-          <StartCmdLineArguments>
28
-          </StartCmdLineArguments>
29
-          <StartWorkingDirectory>
30
-          </StartWorkingDirectory>
31
-          <EnableENC>True</EnableENC>
32
-          <AlwaysStartWebServerOnDebug>True</AlwaysStartWebServerOnDebug>
33
-        </WebProjectProperties>
34
-      </FlavorProperties>
35
-    </VisualStudio>
36
-  </ProjectExtensions>
37
-</Project>

+ 0 - 87
CallCenterApi/CallCenterApi_.Interface/Controllers/BaseController/ValidateController.cs

@@ -1,87 +0,0 @@
1
-using CallCenterApi.Common;
2
-using System;
3
-using System.Collections.Generic;
4
-using System.Linq;
5
-using System.Text.RegularExpressions;
6
-using System.Web;
7
-using System.Web.Http;
8
-using System.Web.Mvc;
9
-
10
-namespace CallCenterApi.Interface.Controllers.BaseController
11
-{
12
-    public class ValidateController : ActionFilterAttribute
13
-    {
14
-        private string _DataType = "";
15
-
16
-        protected override void OnActionExecuting(ActionExecutingContext filterContext)
17
-        {
18
-
19
-            CommonHelper.InsertLog(System.DateTime.Now + " : " + Request.QueryString.ToString());
20
-
21
-            if (string.IsNullOrEmpty(Request["Keys"]))
22
-            {
23
-                filterContext.Result = new EmptyResult();
24
-                filterContext.HttpContext.Response.Write("Error:Request Invalid");
25
-                filterContext.HttpContext.Response.End();
26
-            }
27
-
28
-            #region 解码
29
-            var keyDomain = "api";
30
-            var Keys = "";
31
-            //keyDomain = Regex.Match(Request.UrlReferrer.Host + "", @"(http://)?((\w+\.)+\w+)").Value.ToLower().Replace("http://", "");
32
-            //keyDomain = "23423423";
33
-            //keyDomain = "232";
34
-            //Keys = new SysConfigHelper.DemoKeys(keyDomain).Keys;
35
-            Keys = "LYYU80DV3465QSF1";
36
-            if (keyDomain == "" || Keys == "")
37
-            {
38
-                filterContext.Result = new EmptyResult();
39
-                filterContext.HttpContext.Response.Write("Error:Key Invalid");
40
-                filterContext.HttpContext.Response.End();
41
-            }
42
-            var keyStr = Regex.Split(CommonHelper.DecryptAES(Request["Keys"], Keys), @"\|URL\|", RegexOptions.IgnoreCase);
43
-            if (keyStr.Length < 2)
44
-            {
45
-                filterContext.Result = new EmptyResult();
46
-                filterContext.HttpContext.Response.Write("Error:Decoding Fail");
47
-                filterContext.HttpContext.Response.End();
48
-            }
49
-
50
-            if (keyStr[0] != CommonHelper.EncryptAES(Request["view"], Keys))
51
-            {
52
-                filterContext.Result = new EmptyResult();
53
-                filterContext.HttpContext.Response.Write("Error:Signature Failed");
54
-                filterContext.HttpContext.Response.End();
55
-            }
56
-            //var date = keyStr[1];
57
-            //if (!ValidateString.IsDateTime(date))
58
-            //{
59
-            //    filterContext.Result = new EmptyResult();
60
-            //filterContext.HttpContext.Response.Write("Error:Encryption Failed");
61
-            //    filterContext.HttpContext.Response.End();
62
-            //}
63
-            //if (DateString.DateDiff("S", Convert.ToDateTime(date), DateTime.Now) > new SysConfigHelper.SysConfigPara().ApiTimeOut)
64
-            //{
65
-            //    filterContext.Result = new EmptyResult();
66
-            //    filterContext.HttpContext.Response.Write("Error:Request Timedout");
67
-            //    filterContext.HttpContext.Response.End();
68
-            //}
69
-            #endregion
70
-            var datatype = Request["datatype"] + "";
71
-            _DataType = datatype.ToLower() == "" ? "json" : datatype;
72
-            if (datatype.ToLower() == "xml")
73
-            {
74
-                Response.ContentType = "text/xml";
75
-            }
76
-            base.OnActionExecuting(filterContext);
77
-        }
78
-
79
-        /// <summary>
80
-        /// 1:json;0:xml
81
-        /// </summary>
82
-        public int DataType
83
-        {
84
-            get { return _DataType + "" == "json" ? 1 : 0; }
85
-        }
86
-    }
87
-}

+ 0 - 37
CallCenterApi/CallCenterApi_.Interface/Controllers/BaseController/baseController.cs

@@ -1,37 +0,0 @@
1
-using CallCenter.Utility;
2
-using System;
3
-using System.Collections.Generic;
4
-using System.Linq;
5
-using System.Net;
6
-using System.Net.Http;
7
-using System.Web.Http;
8
-using System.Web.Mvc;
9
-
10
-
11
-namespace CallCenterApi_.Interface.Controllers.BaseController
12
-{
13
-    public class BaseController : ApiController
14
-    {
15
-        //protected virtual JsonResult Success(string message)
16
-        //{
17
-        //    //var person = new
18
-        //    //{
19
-        //    //    Name = "张三",
20
-        //    //    Age = 22,
21
-        //    //    Sex = "男"
22
-        //    //};
23
-        //    //return Json(person);
24
-         
25
-        //    //ss = new AjaxResult { state = ResultTypes.success.ToString(), message = message };
26
-        //    //return (JsonResult)ss;
27
-        //}
28
-        //protected virtual ActionResult Success(string message, object data)
29
-        //{
30
-        //    return Content(new AjaxResult { state = ResultTypes.success.ToString(), message = message, data = data }.ToJson());
31
-        //}
32
-        //protected virtual ActionResult Error(string message)
33
-        //{
34
-        //    return Content(new AjaxResult { state = ResultTypes.error.ToString(), message = message }.ToJson());
35
-        //}
36
-    }
37
-}

+ 0 - 68
CallCenterApi/CallCenterApi_.Interface/Controllers/UserInfoController.cs

@@ -1,68 +0,0 @@
1
-using CallCenterApi_.Interface.Controllers.BaseController;
2
-using System;
3
-using System.Collections.Generic;
4
-using System.Linq;
5
-using System.Net;
6
-using System.Net.Http;
7
-using System.Web.Http;
8
-using CallCenter.Utility;
9
-
10
-namespace CallCenterApi_.Interface.Controllers
11
-{
12
-    public class UserInfoController : BaseController.BaseController
13
-    {
14
-        //[HttpGet]
15
-        // public string PersonInfo()
16
-        // {
17
-        //     var person = new
18
-        //     {
19
-        //         Name = "张三",
20
-        //         Age = 22,
21
-        //         Sex = "男"
22
-        //     };
23
-
24
-        //     return person.ToJson();
25
-        // }
26
-        [HttpGet]
27
-        public string dddfd()
28
-        {
29
-            return "tt";
30
-        }
31
-
32
-        //[HttpGet]
33
-        //public string ss()
34
-        //{
35
-        //    return "ss";
36
-        //}
37
-
38
-
39
-        // GET api/<controller>
40
-        public IEnumerable<string> Get()
41
-        {
42
-            return new string[] { "value1", "value2" };
43
-        }
44
-
45
-    
46
-
47
-        // GET api/<controller>/5
48
-        public string Get(int id)
49
-        {
50
-            return "value";
51
-        }
52
-
53
-        // POST api/<controller>
54
-        public void Post([FromBody]string value)
55
-        {
56
-        }
57
-
58
-        // PUT api/<controller>/5
59
-        public void Put(int id, [FromBody]string value)
60
-        {
61
-        }
62
-
63
-        // DELETE api/<controller>/5
64
-        public void Delete(int id)
65
-        {
66
-        }
67
-    }
68
-}

+ 0 - 1
CallCenterApi/CallCenterApi_.Interface/Global.asax

@@ -1 +0,0 @@
1
-<%@ Application Codebehind="Global.asax.cs" Inherits="CallCenterApi_.Interface.Global" Language="C#" %>

+ 0 - 23
CallCenterApi/CallCenterApi_.Interface/Global.asax.cs

@@ -1,23 +0,0 @@
1
-using System;
2
-using System.Collections.Generic;
3
-using System.Linq;
4
-using System.Web;
5
-using System.Web.Mvc;
6
-using System.Web.Routing;
7
-using System.Web.Security;
8
-using System.Web.SessionState;
9
-using System.Web.Http;
10
-
11
-namespace CallCenterApi_.Interface
12
-{
13
-    public class Global : HttpApplication
14
-    {
15
-        void Application_Start(object sender, EventArgs e)
16
-        {
17
-            // 在应用程序启动时运行的代码
18
-            AreaRegistration.RegisterAllAreas();
19
-            GlobalConfiguration.Configure(WebApiConfig.Register);
20
-            RouteConfig.RegisterRoutes(RouteTable.Routes);            
21
-        }
22
-    }
23
-}

+ 0 - 35
CallCenterApi/CallCenterApi_.Interface/Properties/AssemblyInfo.cs

@@ -1,35 +0,0 @@
1
-using System.Reflection;
2
-using System.Runtime.CompilerServices;
3
-using System.Runtime.InteropServices;
4
-
5
-// 有关程序集的常规信息通过下列特性集
6
-// 控制。更改这些特性值可修改
7
-// 与程序集关联的信息。
8
-[assembly: AssemblyTitle("CallCenterApi_.Interface")]
9
-[assembly: AssemblyDescription("")]
10
-[assembly: AssemblyConfiguration("")]
11
-[assembly: AssemblyCompany("")]
12
-[assembly: AssemblyProduct("CallCenterApi_.Interface")]
13
-[assembly: AssemblyCopyright("Copyright ©  2017")]
14
-[assembly: AssemblyTrademark("")]
15
-[assembly: AssemblyCulture("")]
16
-
17
-// 将 ComVisible 设置为 false 会使此程序集中的类型
18
-// 对 COM 组件不可见。如果需要
19
-// 从 COM 访问此程序集中的某个类型,请针对该类型将 ComVisible 特性设置为 true。
20
-[assembly: ComVisible(false)]
21
-
22
-// 如果此项目向 COM 公开,则下列 GUID 用于 typelib 的 ID
23
-[assembly: Guid("2cfc5c63-0992-46ae-bd03-bde1177cfe9a")]
24
-
25
-// 程序集的版本信息由下列四个值组成:
26
-//
27
-//      主版本
28
-//      次版本
29
-//      内部版本号
30
-//      修订版本
31
-//
32
-// 可以指定所有值,也可以使用“修订号”和“内部版本号”的默认值,
33
-// 方法是按如下所示使用 "*":
34
-[assembly: AssemblyVersion("1.0.0.0")]
35
-[assembly: AssemblyFileVersion("1.0.0.0")]

+ 0 - 42
CallCenterApi/CallCenterApi_.Interface/Views/web.config

@@ -1,42 +0,0 @@
1
-<?xml version="1.0"?>
2
-
3
-<configuration>
4
-  <configSections>
5
-    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
6
-      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
7
-      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
8
-    </sectionGroup>
9
-  </configSections>
10
-
11
-  <system.web.webPages.razor>
12
-    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
13
-    <pages pageBaseType="System.Web.Mvc.WebViewPage">
14
-      <namespaces>
15
-        <add namespace="System.Web.Mvc" />
16
-        <add namespace="System.Web.Mvc.Ajax" />
17
-        <add namespace="System.Web.Mvc.Html" />
18
-        <add namespace="System.Web.Routing" />
19
-        <add namespace="CallCenterApi_.Interface" />
20
-      </namespaces>
21
-    </pages>
22
-  </system.web.webPages.razor>
23
-
24
-  <appSettings>
25
-    <add key="webpages:Enabled" value="false" />
26
-  </appSettings>
27
-
28
-  <system.webServer>
29
-    <handlers>
30
-      <remove name="BlockViewHandler"/>
31
-      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
32
-    </handlers>
33
-  </system.webServer>
34
-
35
-  <system.web>
36
-    <compilation>
37
-      <assemblies>
38
-        <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
39
-      </assemblies>
40
-    </compilation>
41
-  </system.web>
42
-</configuration>

+ 0 - 31
CallCenterApi/CallCenterApi_.Interface/Web.Debug.config

@@ -1,31 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-
3
-<!-- 有关使用 web.config 转换的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=125889 -->
4
-
5
-<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
6
-  <!--
7
-    在下例中,“SetAttributes”转换将更改 
8
-    “connectionString”的值,以仅在“Match”定位器 
9
-    找到值为“MyDB”的特性“name”时使用“ReleaseSQLServer”。
10
-    
11
-    <connectionStrings>
12
-      <add name="MyDB" 
13
-        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
14
-        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
15
-    </connectionStrings>
16
-  -->
17
-  <system.web>
18
-    <!--
19
-      
20
-      在下例中,“Replace”转换将替换 
21
-      web.config 文件的整个 <customErrors> 节。
22
-      请注意,由于 
23
-      在 <system.web> 节点下仅有一个 customErrors 节,因此不需要使用“xdt:Locator”特性。
24
-      
25
-      <customErrors defaultRedirect="GenericError.htm"
26
-        mode="RemoteOnly" xdt:Transform="Replace">
27
-        <error statusCode="500" redirect="InternalError.htm"/>
28
-      </customErrors>
29
-    -->
30
-  </system.web>
31
-</configuration>

+ 0 - 32
CallCenterApi/CallCenterApi_.Interface/Web.Release.config

@@ -1,32 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-
3
-<!-- 有关使用 web.config 转换的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=125889 -->
4
-
5
-<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
6
-  <!--
7
-    在下例中,“SetAttributes”转换将更改 
8
-    “connectionString”的值,以仅在“Match”定位器 
9
-    找到值为“MyDB”的特性“name”时使用“ReleaseSQLServer”。
10
-    
11
-    <connectionStrings>
12
-      <add name="MyDB" 
13
-        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
14
-        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
15
-    </connectionStrings>
16
-  -->
17
-  <system.web>
18
-    <compilation xdt:Transform="RemoveAttributes(debug)" />
19
-    <!--
20
-      
21
-      在下例中,“Replace”转换将替换 
22
-      web.config 文件的整个 <customErrors> 节。
23
-      请注意,由于 
24
-      在 <system.web> 节点下仅有一个 customErrors 节,因此不需要使用“xdt:Locator”特性。
25
-      
26
-      <customErrors defaultRedirect="GenericError.htm"
27
-        mode="RemoteOnly" xdt:Transform="Replace">
28
-        <error statusCode="500" redirect="InternalError.htm"/>
29
-      </customErrors>
30
-    -->
31
-  </system.web>
32
-</configuration>

+ 0 - 84
CallCenterApi/CallCenterApi_.Interface/Web.config

@@ -1,84 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<!--
3
-  有关如何配置 ASP.NET 应用程序的详细信息,请访问
4
-  http://go.microsoft.com/fwlink/?LinkId=169433
5
-  -->
6
-<configuration>
7
-  <appSettings>
8
-    <add key="webpages:Version" value="3.0.0.0"/>
9
-    <add key="webpages:Enabled" value="false"/>
10
-    <add key="PreserveLoginUrl" value="true"/>
11
-    <add key="ClientValidationEnabled" value="true"/>
12
-    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
13
-  </appSettings>
14
-  <system.web>
15
-    <compilation debug="true" targetFramework="4.5"/>
16
-    <httpRuntime targetFramework="4.5"/>
17
-    <pages>
18
-      <namespaces>
19
-        <add namespace="System.Web.Helpers"/>
20
-        <add namespace="System.Web.Mvc"/>
21
-        <add namespace="System.Web.Mvc.Ajax"/>
22
-        <add namespace="System.Web.Mvc.Html"/>
23
-        <add namespace="System.Web.Routing"/>
24
-        <add namespace="System.Web.WebPages"/>
25
-      </namespaces>     
26
-    </pages>
27
-    <httpModules>
28
-      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"/>
29
-    </httpModules>
30
-  </system.web>
31
-  <system.webServer>
32
-    <validation validateIntegratedModeConfiguration="false"/>
33
-    <handlers>
34
-      <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
35
-      <remove name="OPTIONSVerbHandler"/>
36
-      <remove name="TRACEVerbHandler"/>
37
-      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
38
-        preCondition="integratedMode,runtimeVersionv4.0"/>
39
-    </handlers>
40
-    <modules>
41
-      <remove name="ApplicationInsightsWebTracking"/>
42
-      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"
43
-        preCondition="managedHandler"/>
44
-    </modules>
45
-  </system.webServer>
46
-  <runtime>
47
-    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
48
-      <dependentAssembly>
49
-        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>
50
-        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
51
-      </dependentAssembly>
52
-      <dependentAssembly>
53
-        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
54
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
55
-      </dependentAssembly>
56
-      <dependentAssembly>
57
-        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
58
-        <bindingRedirect oldVersion="1.0.0.0-5.2.0.0" newVersion="5.2.0.0"/>
59
-      </dependentAssembly>
60
-      <dependentAssembly>
61
-        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
62
-        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
63
-      </dependentAssembly>
64
-      <dependentAssembly>
65
-        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
66
-        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
67
-      </dependentAssembly>
68
-      <dependentAssembly>
69
-        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
70
-        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234"/>
71
-      </dependentAssembly>
72
-    </assemblyBinding>
73
-  </runtime>
74
-  <system.codedom>
75
-    <compilers>
76
-      <compiler language="c#;cs;csharp" extension=".cs"
77
-        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
78
-        warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
79
-      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
80
-        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
81
-        warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
82
-    </compilers>
83
-  </system.codedom>
84
-</configuration>

+ 0 - 27
CallCenterApi/CallCenterApi_.Interface/packages.config

@@ -1,27 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<packages>
3
-  <package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net45" />
4
-  <package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.6" targetFramework="net45" />
5
-  <package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.2.0" targetFramework="net45" />
6
-  <package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.2.0" targetFramework="net45" />
7
-  <package id="Microsoft.ApplicationInsights.Web" version="2.2.0" targetFramework="net45" />
8
-  <package id="Microsoft.ApplicationInsights.WindowsServer" version="2.2.0" targetFramework="net45" />
9
-  <package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.2.0" targetFramework="net45" />
10
-  <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" />
11
-  <package id="Microsoft.AspNet.Mvc.zh-Hans" version="5.2.3" targetFramework="net45" />
12
-  <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" />
13
-  <package id="Microsoft.AspNet.Razor.zh-Hans" version="3.2.3" targetFramework="net45" />
14
-  <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" />
15
-  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
16
-  <package id="Microsoft.AspNet.WebApi.Client.zh-Hans" version="5.2.3" targetFramework="net45" />
17
-  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
18
-  <package id="Microsoft.AspNet.WebApi.Core.zh-Hans" version="5.2.3" targetFramework="net45" />
19
-  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" />
20
-  <package id="Microsoft.AspNet.WebApi.WebHost.zh-Hans" version="5.2.3" targetFramework="net45" />
21
-  <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" />
22
-  <package id="Microsoft.AspNet.WebPages.zh-Hans" version="3.2.3" targetFramework="net45" />
23
-  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net45" />
24
-  <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net45" developmentDependency="true" />
25
-  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
26
-  <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />
27
-</packages>

+ 1 - 2
CallCenterCommon/CallCenter.QuartzService/CallCenter.QuartzService.csproj

@@ -50,9 +50,8 @@
50 50
       <HintPath>..\..\packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
51 51
       <Private>True</Private>
52 52
     </Reference>
53
-    <Reference Include="Quartz, Version=2.5.0.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
53
+    <Reference Include="Quartz">
54 54
       <HintPath>..\..\packages\Quartz.2.5.0\lib\net40\Quartz.dll</HintPath>
55
-      <Private>True</Private>
56 55
     </Reference>
57 56
     <Reference Include="System" />
58 57
     <Reference Include="System.Configuration" />

+ 1 - 0
CallCenterCommon/CallCenter.Utility/CallCenter.Utility.csproj

@@ -74,6 +74,7 @@
74 74
     <Compile Include="DirFileHelper.cs" />
75 75
     <Compile Include="EncryptHelper.cs" />
76 76
     <Compile Include="Extend\ExtLinq.cs" />
77
+    <Compile Include="FileExistsHelper.cs" />
77 78
     <Compile Include="FileUp.cs" />
78 79
     <Compile Include="Linq\PredicateExtensionses.cs" />
79 80
     <Compile Include="SaltAndHashHelper.cs" />

+ 52 - 0
CallCenterCommon/CallCenter.Utility/FileExistsHelper.cs

@@ -0,0 +1,52 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Net;
5
+using System.Text;
6
+using System.Threading.Tasks;
7
+
8
+namespace CallCenter.Utility
9
+{
10
+    public class FileExistsHelper
11
+    {
12
+        #region 判断远程文件是否存在
13
+        /// <summary>
14
+        /// 判断远程文件是否存在
15
+        /// </summary>
16
+        /// <param name="fileUrl"></param>
17
+        /// <returns></returns>
18
+        public static bool RemoteFileExists(string fileUrl)
19
+        {
20
+            HttpWebRequest re = null;
21
+            HttpWebResponse res = null;
22
+            try
23
+            {
24
+                re = (HttpWebRequest)WebRequest.Create(fileUrl);
25
+                res = (HttpWebResponse)re.GetResponse();
26
+                if (res.ContentLength != 0)
27
+                {
28
+                    //MessageBox.Show("文件存在");
29
+                    return true;
30
+                }
31
+            }
32
+            catch (Exception)
33
+            {
34
+                //MessageBox.Show("无此文件");
35
+                return false;
36
+            }
37
+            finally
38
+            {
39
+                if (re != null)
40
+                {
41
+                    re.Abort();//销毁关闭连接
42
+                }
43
+                if (res != null)
44
+                {
45
+                    res.Close();//销毁关闭响应
46
+                }
47
+            }
48
+            return false;
49
+        }
50
+        #endregion
51
+    }
52
+}

+ 5 - 9
ZYKJCallCenter.sln

@@ -1,7 +1,7 @@
1 1
 
2 2
 Microsoft Visual Studio Solution File, Format Version 12.00
3
-# Visual Studio 14
4
-VisualStudioVersion = 14.0.25420.1
3
+# Visual Studio 15
4
+VisualStudioVersion = 15.0.27428.2005
5 5
 MinimumVisualStudioVersion = 10.0.40219.1
6 6
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CallCenterApi", "CallCenterApi", "{2E2CE78D-00E7-45A0-AED8-2FB60B3E8F06}"
7 7
 EndProject
@@ -25,8 +25,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CallCenterApi.Model", "Call
25 25
 EndProject
26 26
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CallCenterAPI.WechatSDK", "CallCenterApi\CallCenterAPI.WechatSDK\CallCenterAPI.WechatSDK.csproj", "{C8841B5E-5072-4B5E-B656-6E06C95A6B47}"
27 27
 EndProject
28
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CallCenter.QuartzService", "CallCenterCommon\CallCenter.QuartzService\CallCenter.QuartzService.csproj", "{8DE4B8BC-1E88-4530-B129-E79C5119D6FD}"
29
-EndProject
30 28
 Global
31 29
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
32 30
 		Debug|Any CPU = Debug|Any CPU
@@ -69,10 +67,6 @@ Global
69 67
 		{C8841B5E-5072-4B5E-B656-6E06C95A6B47}.Debug|Any CPU.Build.0 = Debug|Any CPU
70 68
 		{C8841B5E-5072-4B5E-B656-6E06C95A6B47}.Release|Any CPU.ActiveCfg = Release|Any CPU
71 69
 		{C8841B5E-5072-4B5E-B656-6E06C95A6B47}.Release|Any CPU.Build.0 = Release|Any CPU
72
-		{8DE4B8BC-1E88-4530-B129-E79C5119D6FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
73
-		{8DE4B8BC-1E88-4530-B129-E79C5119D6FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
74
-		{8DE4B8BC-1E88-4530-B129-E79C5119D6FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
75
-		{8DE4B8BC-1E88-4530-B129-E79C5119D6FD}.Release|Any CPU.Build.0 = Release|Any CPU
76 70
 	EndGlobalSection
77 71
 	GlobalSection(SolutionProperties) = preSolution
78 72
 		HideSolutionNode = FALSE
@@ -87,6 +81,8 @@ Global
87 81
 		{DA95EF28-21F5-4627-A448-9BA88AC3E570} = {2E2CE78D-00E7-45A0-AED8-2FB60B3E8F06}
88 82
 		{03AC6599-FFC1-43DB-8794-F42B9BF74EF5} = {2E2CE78D-00E7-45A0-AED8-2FB60B3E8F06}
89 83
 		{C8841B5E-5072-4B5E-B656-6E06C95A6B47} = {2E2CE78D-00E7-45A0-AED8-2FB60B3E8F06}
90
-		{8DE4B8BC-1E88-4530-B129-E79C5119D6FD} = {0AA6CF16-D74D-4FD4-A921-F9A4D8E74E59}
84
+	EndGlobalSection
85
+	GlobalSection(ExtensibilityGlobals) = postSolution
86
+		SolutionGuid = {8494A730-498F-42E2-BB9F-E5C88130D4D1}
91 87
 	EndGlobalSection
92 88
 EndGlobal

+ 8 - 0
数据库/添加字段.sql

@@ -0,0 +1,8 @@
1
+
2
+--2018-05-16 lihai 于千之前添加的,但是数据库字段没有加,代码也没有更新,不知道有什么用,在周帆的确认下暂时添加了这个字段让项目能正常运行。
3
+
4
+SELECT * FROM dbo.T_Cus_CustomerField
5
+
6
+--ALTER TABLE dbo.T_Cus_CustomerField ADD [F_IsEdit] [int] NULL
7
+--EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'新添加字段' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'T_Cus_CustomerField', @level2type=N'COLUMN',@level2name=N'F_IsEdit'
8
+--GO

BIN
文档/修改意见/鄂尔多斯外呼平台功能需求20181121.docx