Commit b978ad7e authored by 黄奎's avatar 黄奎

页面修改

parent b62cf733
using Edu.CacheManager.Base; using Edu.CacheManager.Base;
using Edu.Common.Enum;
using Edu.Model.CacheModel;
using Edu.Repository.User;
using System; using System;
using System.Linq;
namespace Edu.Cache.WeChat namespace Edu.Cache.WeChat
{ {
...@@ -82,7 +78,7 @@ namespace Edu.Cache.WeChat ...@@ -82,7 +78,7 @@ namespace Edu.Cache.WeChat
} }
/// <summary> /// <summary>
/// redis缓存 /// redis缓存【用户获取商城端缓存】
/// </summary> /// </summary>
public class WeChatReidsCache2 public class WeChatReidsCache2
{ {
...@@ -96,45 +92,20 @@ namespace Edu.Cache.WeChat ...@@ -96,45 +92,20 @@ namespace Edu.Cache.WeChat
/// <summary> /// <summary>
/// 设置缓存 /// 设置缓存
/// </summary> /// </summary>
/// <param name="cacheKey"></param> /// <param name="value"></param>
/// <param name="token"></param> public static void Set(string cacheKey, string value)
/// <param name="JwtExpirTime"></param>
public static void TokenSet(string cacheKey, string token, int JwtExpirTime)
{ {
try try
{ {
TimeSpan ts = GetExpirTime(JwtExpirTime); TimeSpan ts = DateTime.Now.AddSeconds(7000) - DateTime.Now;
redis.StringSet(cacheKey, token, ts); redis.StringSet(cacheKey, value, ts);
} }
catch (Exception ex) catch (Exception ex)
{ {
Common.Plugin.LogHelper.Write(ex, "TokenSet缓存设置失败"); Common.Plugin.LogHelper.Write(ex, "WeChatReidsCache2_Set");
} }
} }
/// <summary>
/// 获取缓存时长
/// </summary>
/// <param name="JwtExpirTime"></param>
/// <returns></returns>
private static TimeSpan GetExpirTime(int JwtExpirTime)
{
DateTime dt = DateTime.Now;
DateTime dt2 = DateTime.Now;
TimeSpan ts = dt.AddSeconds(JwtExpirTime) - dt2;
return ts;
}
/// <summary>
/// 判断key是否存在
/// </summary>
/// <param name="cacheKey"></param>
/// <returns></returns>
public static bool Exists(string cacheKey)
{
return redis.KeyExists(cacheKey);
}
/// <summary> /// <summary>
/// 获取缓存 /// 获取缓存
/// </summary> /// </summary>
...@@ -152,7 +123,6 @@ namespace Edu.Cache.WeChat ...@@ -152,7 +123,6 @@ namespace Edu.Cache.WeChat
return ""; return "";
} }
} }
} }
} }
\ No newline at end of file
...@@ -762,5 +762,17 @@ namespace Edu.Common ...@@ -762,5 +762,17 @@ namespace Edu.Common
{ {
get { return "https://api.weixin.qq.com/"; } get { return "https://api.weixin.qq.com/"; }
} }
/// <summary>
/// 是否是本地服务器
/// </summary>
public static int IsLocal
{
get
{
Int32.TryParse(ReadConfigKey("IsLocal"), out int _IsLocal);
return _IsLocal;
}
}
} }
} }
\ No newline at end of file
...@@ -60,10 +60,13 @@ namespace Edu.Common.Plugin ...@@ -60,10 +60,13 @@ namespace Edu.Common.Plugin
/// 执行HTTP POST请求。 /// 执行HTTP POST请求。
/// </summary> /// </summary>
/// <param name="url">请求地址</param> /// <param name="url">请求地址</param>
/// <param name="postDataStr">请求地址</param> /// <param name="postDataStr">请求地址</param>
/// <param name="path">生成文件路径</param>
/// <param name="resultType">返回类型(0-图片路径,1-base64图片)</param>
/// <returns>HTTP响应</returns> /// <returns>HTTP响应</returns>
public static string HttpPost_V2(string url, string postDataStr, string path) public static string HttpPostImageToBase64(string url, string postDataStr, string path="",int resultType=0)
{ {
string imgString = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST"; req.Method = "POST";
req.ContentType = "application/octet-stream"; req.ContentType = "application/octet-stream";
...@@ -80,18 +83,33 @@ namespace Edu.Common.Plugin ...@@ -80,18 +83,33 @@ namespace Edu.Common.Plugin
{ {
encoding = Encoding.GetEncoding(rsp.CharacterSet); encoding = Encoding.GetEncoding(rsp.CharacterSet);
} }
System.IO.Stream stream = null; System.IO.Stream stream = null;
try try
{ {
// 以字符流的方式读取HTTP响应 // 以字符流的方式读取HTTP响应
stream = rsp.GetResponseStream(); stream = rsp.GetResponseStream();
return ReadImageForStream_V2(stream, path); System.Drawing.Image result = System.Drawing.Image.FromStream(stream);
System.Drawing.Bitmap bit = new System.Drawing.Bitmap(result);
//图片地址
if (resultType == 0)
{
bit.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
imgString= path;
}
//base64
else if (resultType == 1)
{
MemoryStream memoryStream = new MemoryStream();
using MemoryStream ms1 = memoryStream;
bit.Save(ms1, System.Drawing.Imaging.ImageFormat.Png);
byte[] arr1 = ms1.ToArray();
imgString = Convert.ToBase64String(arr1);
}
} }
catch (Exception ex) catch (Exception ex)
{ {
LogHelper.Write(ex, "HttpPost_V2"); LogHelper.Write(ex, "HttpPostImageToBase64");
return ""; imgString = "";
} }
finally finally
{ {
...@@ -99,20 +117,7 @@ namespace Edu.Common.Plugin ...@@ -99,20 +117,7 @@ namespace Edu.Common.Plugin
if (stream != null) stream.Close(); if (stream != null) stream.Close();
if (rsp != null) rsp.Close(); if (rsp != null) rsp.Close();
} }
} return imgString;
/// <summary>
/// 获取
/// </summary>
/// <param name="imgstream"></param>
/// <returns></returns>
public static string ReadImageForStream_V2(Stream imgstream, string path)
{
System.Drawing.Image result = System.Drawing.Image.FromStream(imgstream);
System.Drawing.Bitmap bit = new System.Drawing.Bitmap(result);
bit.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
return path;
} }
...@@ -123,30 +128,17 @@ namespace Edu.Common.Plugin ...@@ -123,30 +128,17 @@ namespace Edu.Common.Plugin
/// <returns>HTTP响应</returns> /// <returns>HTTP响应</returns>
public static string HttpGet(string url) public static string HttpGet(string url)
{ {
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET"; req.Method = "GET";
req.ContentType = "application/json"; req.ContentType = "application/json";
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse(); HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
if (string.IsNullOrWhiteSpace(rsp.CharacterSet))
{ Encoding encoding = Encoding.UTF8;
return GetResponseAsString(rsp, Encoding.UTF8); if (!string.IsNullOrWhiteSpace(rsp.CharacterSet))
}
else
{ {
Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); encoding = Encoding.GetEncoding(rsp.CharacterSet);
return GetResponseAsString(rsp, encoding);
} }
}
/// <summary>
/// 把响应流转换为文本。
/// </summary>
/// <param name="rsp">响应流对象</param>
/// <param name="encoding">编码方式</param>
/// <returns>响应文本</returns>
private static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding)
{
System.IO.Stream stream = null; System.IO.Stream stream = null;
StreamReader reader = null; StreamReader reader = null;
try try
...@@ -154,7 +146,12 @@ namespace Edu.Common.Plugin ...@@ -154,7 +146,12 @@ namespace Edu.Common.Plugin
// 以字符流的方式读取HTTP响应 // 以字符流的方式读取HTTP响应
stream = rsp.GetResponseStream(); stream = rsp.GetResponseStream();
reader = new StreamReader(stream, encoding); reader = new StreamReader(stream, encoding);
return reader.ReadToEnd(); result = reader.ReadToEnd();
}
catch(Exception ex)
{
Common.Plugin.LogHelper.Write(ex, string.Format("HttpGet:url=={0}", url));
result = "";
} }
finally finally
{ {
...@@ -163,34 +160,7 @@ namespace Edu.Common.Plugin ...@@ -163,34 +160,7 @@ namespace Edu.Common.Plugin
if (stream != null) stream.Close(); if (stream != null) stream.Close();
if (rsp != null) rsp.Close(); if (rsp != null) rsp.Close();
} }
} return result;
/// <summary>
/// bitmap转 base64
/// </summary>
/// <param name="bmp1"></param>
/// <param name="imageFormat"></param>
/// <returns></returns>
public static string BitmapToBase64(System.Drawing.Bitmap bmp1, System.Drawing.Imaging.ImageFormat imageFormat)
{
string UserPhoto = "";
try
{
MemoryStream memoryStream = new MemoryStream();
using MemoryStream ms1 = memoryStream;
bmp1.Save(ms1, imageFormat);
byte[] arr1 = ms1.ToArray();
UserPhoto = Convert.ToBase64String(arr1);
}
catch (Exception ex)
{
UserPhoto = "";
LogHelper.Write(ex, string.Format("bitmapToBase64:"));
}
return UserPhoto;
} }
} }
} }
\ No newline at end of file
...@@ -16,15 +16,17 @@ namespace Edu.Common.Plugin ...@@ -16,15 +16,17 @@ namespace Edu.Common.Plugin
/// <summary> /// <summary>
/// 获取access_token /// 获取access_token
/// </summary> /// </summary>
/// <param name="AppID"></param>
/// <param name="AppSecret"></param>
/// <returns></returns> /// <returns></returns>
public static string GetAccessToken() public static string GetAccessToken(string AppID,string AppSecret)
{ {
string token = string.Empty; string token = string.Empty;
try try
{ {
string wechatapi = Config.WechatApi; string wechatapi = Config.WechatApi;
string appID = Config.AppID; string appID = AppID;
string appSecret = Config.AppSecret; string appSecret = AppSecret;
//获取微信token //获取微信token
string token_url = wechatapi+"cgi-bin/token?grant_type=client_credential&appid=" + appID + "&secret=" + appSecret; string token_url = wechatapi+"cgi-bin/token?grant_type=client_credential&appid=" + appID + "&secret=" + appSecret;
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(token_url); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(token_url);
...@@ -50,33 +52,33 @@ namespace Edu.Common.Plugin ...@@ -50,33 +52,33 @@ namespace Edu.Common.Plugin
/// <summary> /// <summary>
/// 生成小程序码 /// 生成小程序码
/// </summary> /// </summary>
/// <param name="path"></param> /// <param name="token"></param>
/// <param name="width"></param> /// <param name="url">跳转地址</param>
/// <param name="mallBaseId"></param> /// <param name="width">宽度</param>
/// <returns></returns> /// <returns></returns>
public static string GetWeiXinQRCode(string token, string path, int width) public static string GetWeChatQRCode(string token,string url, int width)
{ {
string result = "";
string tempPath = "\\upfile\\temporary\\" + DateTime.Now.ToString("yyyyMMdd") + "\\";
string basepath = AppContext.BaseDirectory+ tempPath;
string fileName = DateTime.Now.Ticks + ".jpg";
if (!Directory.Exists(basepath))
{
Directory.CreateDirectory(basepath);
}
if (!string.IsNullOrEmpty(token)) if (!string.IsNullOrEmpty(token))
{ {
string GetImageUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + token;//获取小程序码 //获取小程序码
string apiurl = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + token;
var postData = new var postData = new
{ {
path, path= url,
width width
}; };
string pathName = DateTime.Now.Ticks + ".jpg"; var Robj = HttpHelper.HttpPostImageToBase64(apiurl, JsonHelper.Serialize(postData),path: basepath + fileName, resultType:0);
string basepath = AppContext.BaseDirectory; result= tempPath + fileName;
string tempPath = basepath + "\\upfile\\temporary\\" ;
if (!Directory.Exists(tempPath))
{
Directory.CreateDirectory(tempPath);
}
var Robj = HttpHelper.HttpPost_V2(GetImageUrl, JsonHelper.Serialize(postData), tempPath + pathName);
return "/upfile/temporary/" + pathName;
} }
return ""; return result;
} }
} }
} }
...@@ -511,5 +511,36 @@ namespace Edu.WebApi.Controllers.Course ...@@ -511,5 +511,36 @@ namespace Edu.WebApi.Controllers.Course
var flag = educationContractModule.SetBackClassProtocolSureModule(Id, IsSure); var flag = educationContractModule.SetBackClassProtocolSureModule(Id, IsSure);
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
/// <summary>
/// 生成小程序二维码
/// </summary>
/// <returns></returns>
public ApiResult CreateWeChatCode()
{
string url = base.ParmJObj.GetStringValue("url");
if (string.IsNullOrEmpty(url))
{
url = "/pages/index/index";
}
int width = base.ParmJObj.GetInt("width");
if (width <= 0)
{
width = 430;
}
string tokenKey = "DATA_WeiXinToken_" + Common.Config.AppID;
string token = Cache.WeChat.WeChatReidsCache2.GetToken(tokenKey);
if (Config.IsLocal == 1)
{
token = "47___nany1N0KvmJYZNkOJmXN6iVEddis5VdBGSBnQst6SLKe_3liKbSDe4mqBQMB6ReW4QfjDLVv5lCALF15mC618pRIkcxbbNTmvNh_ExRgYoK4euIkZBqubz8YHQe9se3FQ8L8q3Kgk9dDmUNREhACAEIV";
}
if (string.IsNullOrEmpty(token))
{
token = Common.Plugin.WeChatHelper.GetAccessToken(Common.Config.AppID, Common.Config.AppSecret);
Cache.WeChat.WeChatReidsCache2.Set(tokenKey, token);
}
string filePath = Common.Plugin.WeChatHelper.GetWeChatQRCode(token,url, width);
return ApiResult.Success(data: filePath);
}
} }
} }
...@@ -68,31 +68,6 @@ namespace Edu.WebApi.Controllers.User ...@@ -68,31 +68,6 @@ namespace Edu.WebApi.Controllers.User
// SendType = 0, // SendType = 0,
// Title = "HKHK" // Title = "HKHK"
//}); //});
string tokenKey = "DATA_WeiXinToken_" + Common.Config.AppID;
string cacheToken = Cache.WeChat.WeChatReidsCache2.GetToken(tokenKey);
string token = "47_9obW5f9I6EO6kguMoFDQs8xl4R3GInLj1zjCVXejcGrRuOQAirkTi8almOQhbImZEdXiZM5EZmuQXXzDrvWgy8kvz5VJCqVG82TsdOXBWda6fkPerionkQwJj1aG6rsSKhrza-7KLuKudkbXMMJdAIASSP";
//token = Common.Plugin.WeChatHelper.GetAccessToken();
//if (!string.IsNullOrEmpty(cacheToken))
//{
// token = cacheToken;
//}
//else
//{
//}
Console.WriteLine(string.Format("Token::: {0}", token));
if (!string.IsNullOrEmpty(token))
{
// Cache.WeChat.WeChatReidsCache2.TokenSet(tokenKey, token, 100000);
string filePath = Common.Plugin.WeChatHelper.GetWeiXinQRCode(token, "/pages/index/index", 430);
Console.WriteLine(filePath);
Console.WriteLine(string.Format("filePath::: {0}", filePath));
}
Console.ReadKey();
return ApiResult.Success(); return ApiResult.Success();
} }
......
{ {
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ", "DefaultConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_edu;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DefaultConnectionPName": "MySql.Data.MySqlClient", "DefaultConnectionPName": "MySql.Data.MySqlClient",
"FinanceConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ", "FinanceConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_finance;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"FinanceConnectionPName": "MySql.Data.MySqlClient", "FinanceConnectionPName": "MySql.Data.MySqlClient",
"DataStatisticsConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; ", "DataStatisticsConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_datastatistics;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"DataStatisticsConnectionPName": "MySql.Data.MySqlClient", "DataStatisticsConnectionPName": "MySql.Data.MySqlClient",
"LogConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_sys;CharSet=utf8mb4; Convert Zero Datetime=true; ", "LogConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=reborn_sys;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"LogConnectionPName": "MySql.Data.MySqlClient", "LogConnectionPName": "MySql.Data.MySqlClient",
"MallConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=test_reborn_mall;CharSet=utf8mb4; Convert Zero Datetime=true; ", "MallConnection": "server=192.168.20.214;user id=reborn;password=Reborn@2018;database=test_reborn_mall;CharSet=utf8mb4; Convert Zero Datetime=true; ",
"MallConnectionPName": "MySql.Data.MySqlClient" "MallConnectionPName": "MySql.Data.MySqlClient"
}, },
"Logging": { "Logging": {
"LogLevel": { "LogLevel": {
"Default": "Information", "Default": "Information",
"Microsoft": "Warning", "Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information" "Microsoft.Hosting.Lifetime": "Information"
} }
}, },
"SettlementRate": "0.60", "SettlementRate": "0.60",
"SellCommissionFFBL": "0.15", "SellCommissionFFBL": "0.15",
"JwtSecretKey": "@VIITTOREBORN*2018", "JwtSecretKey": "@VIITTOREBORN*2018",
"MallJwtSecretKey": "@VIITTOREBORN*2018123", "MallJwtSecretKey": "@VIITTOREBORN*2018123",
"JwtExpirTime": 86400, "JwtExpirTime": 86400,
"IsSendMsg": 2, "IsSendMsg": 2,
"AllowedHosts": "*", "AllowedHosts": "*",
"OpenValidation": "False", "OpenValidation": "False",
"UploadSiteUrl": "http://192.168.1.36:8120", "UploadSiteUrl": "http://192.168.1.36:8120",
"ViewFileSiteUrl": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com", "ViewFileSiteUrl": "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com",
"ErpViewFileSiteUrl": "http://imgfile.oytour.com", "ErpViewFileSiteUrl": "http://imgfile.oytour.com",
"Mongo": "mongodb://47.96.25.130:27017", "Mongo": "mongodb://47.96.25.130:27017",
"MongoDBName": "Edu", "MongoDBName": "Edu",
"WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/", "WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/",
"FinanceKey": "FinanceMallInsertToERPViitto2020", "FinanceKey": "FinanceMallInsertToERPViitto2020",
"PaymentFinanceApi": "http://192.168.20.7:8083/api/Mall/InsertFinanceBatchForMallOut", "PaymentFinanceApi": "http://192.168.20.7:8083/api/Mall/InsertFinanceBatchForMallOut",
"IncomeFinanceApi": "http://192.168.20.7:8083/api/Mall/InsertFinanceBatchForMallIn", "IncomeFinanceApi": "http://192.168.20.7:8083/api/Mall/InsertFinanceBatchForMallIn",
"sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址 "sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址
"sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址 "sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址
"FinanceDateBase": "reborn_finance", "FinanceDateBase": "reborn_finance",
"EduDateBase": "uat_reborn_edu", "EduDateBase": "uat_reborn_edu",
"JHTenantId": "15", "JHTenantId": "15",
"JHMallBaseId": "5", "JHMallBaseId": "5",
"Notice_BaseKey": "Notice_BaseKey", "Notice_BaseKey": "Notice_BaseKey",
"EducationContractSchool": "EducationContractSchool", "EducationContractSchool": "EducationContractSchool",
"EducationContractAdmin": "EducationContractAdmin", "EducationContractAdmin": "EducationContractAdmin",
"RabbitMqConfig": { "RabbitMqConfig": {
"HostName": "47.96.25.130", "HostName": "47.96.25.130",
"VirtualHost": "/", "VirtualHost": "/",
"Port": 5672, "Port": 5672,
"UserName": "guest", "UserName": "guest",
"Password": "viitto2019", "Password": "viitto2019",
"QueenName": "vt_sys_message_test" "QueenName": "vt_sys_message_test"
}, },
"RedisSetting": { "RedisSetting": {
"RedisServer": "47.96.23.199", "RedisServer": "47.96.23.199",
"RedisPort": "6379", "RedisPort": "6379",
"RedisPwd": "Viitto2018" "RedisPwd": "Viitto2018"
}, },
"VirtualDirectory": "WebFile", "VirtualDirectory": "WebFile",
//未填写 未打分 下降比例 //未填写 未打分 下降比例
"OKRMatterValue": "30,100,100", "OKRMatterValue": "30,100,100",
//是否是线上环境 //是否是线上环境
"IsOnline": false, "IsOnline": false,
//退课流程编号 //退课流程编号
"BackClassFlowId": 1, "BackClassFlowId": 1,
//分区校长岗位编号 //分区校长岗位编号
"SchoolPostId": 3, "SchoolPostId": 3,
//教务长 //教务长
"JiaoWuZhang": 8, "JiaoWuZhang": 8,
//留学就业部门主管审核编号[王涛] //留学就业部门主管审核编号[王涛]
"StudyAbroadDirectorId": 64, "StudyAbroadDirectorId": 64,
//留学就业部门负责人审核编号[姚顺先] //留学就业部门负责人审核编号[姚顺先]
"StudyAbroadManagerId": 52, "StudyAbroadManagerId": 52,
//合同默认抬头 //合同默认抬头
"ContractDefaultTitle": "JH-DZ-CD-", "ContractDefaultTitle": "JH-DZ-CD-",
//消息推送AppId //消息推送AppId
"PushAppId": "JiaHeJiaoYu", "PushAppId": "JiaHeJiaoYu",
//是否推送消息 //是否推送消息
"IsPushMessage": "1", "IsPushMessage": "1",
//超过下班时间60分钟不能打卡 //超过下班时间60分钟不能打卡
"MoreThanMinutes": 60, "MoreThanMinutes": 60,
//连续缺课课时 //连续缺课课时
"AbsentHours": 12, "AbsentHours": 12,
//值班时间验证日期 //值班时间验证日期
"DutyDate": "2021-06-30", "DutyDate": "2021-06-30",
//调课流程编号 //调课流程编号
"ChangeClassFlowId": 2, "ChangeClassFlowId": 2,
//停课流程编号 //停课流程编号
"StopClassFlowId": 3, "StopClassFlowId": 3,
//临时上课邀请流程编号 //临时上课邀请流程编号
"TempInvitationClassFlowId": 4, "TempInvitationClassFlowId": 4,
//订单转班流程编号 //订单转班流程编号
"OrderTransClassFlowId": 5, "OrderTransClassFlowId": 5,
//订单分拆流程编号 //订单分拆流程编号
"OrderSplitClassFlowId": 6, "OrderSplitClassFlowId": 6,
"ErpUrl": "http://localhost:8181/#", "ErpUrl": "http://localhost:8181/#",
//是否开启调课数据验证 //是否开启调课数据验证
"IsOpenChangeClassVerify":1 "IsOpenChangeClassVerify": 1,
//是否是本地服务
"IsLocal": 1
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment