Commit 8ccd87a2 authored by 罗超's avatar 罗超

更新企业微信推送

parent 211d1d75
...@@ -151,6 +151,14 @@ namespace Edu.Common ...@@ -151,6 +151,14 @@ namespace Edu.Common
} }
} }
public static string ErpUrl
{
get
{
return ReadConfigKey("ErpUrl");
}
}
/// <summary> /// <summary>
/// 获取Oss文件全路径 /// 获取Oss文件全路径
/// </summary> /// </summary>
......
...@@ -91,5 +91,11 @@ namespace Edu.Model.Entity.User ...@@ -91,5 +91,11 @@ namespace Edu.Model.Entity.User
/// </summary> /// </summary>
public int ActivationStatus { get; set; } public int ActivationStatus { get; set; }
/// <summary>
/// 用户企业微信ID
/// TODO 新增用户时添加此字段,使用用户手机号
/// </summary>
public string WorkUserId { get; set; }
} }
} }
...@@ -28,13 +28,23 @@ namespace Edu.Module.User ...@@ -28,13 +28,23 @@ namespace Edu.Module.User
return accountRepository.GetAccountListRepository(query); return accountRepository.GetAccountListRepository(query);
} }
/// <summary> /// <summary>
/// 获取账号列表(批量修改密码专用) /// 获取指定人员的企业微信ID
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="id">教师编号</param>
/// <returns></returns> /// <returns></returns>
public List<RB_Account_ViewModel> GetUpdateAccountListRepository(List<RB_Account_ViewModel> query) public string GetWorkUserIdModule(int id)
{
return accountRepository.GetWorkUserIdRepository(id);
}
/// <summary>
/// 获取账号列表(批量修改密码专用)
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Account_ViewModel> GetUpdateAccountListRepository(List<RB_Account_ViewModel> query)
{ {
return accountRepository.GetUpdateAccountListRepository(query); return accountRepository.GetUpdateAccountListRepository(query);
} }
...@@ -188,5 +198,15 @@ namespace Edu.Module.User ...@@ -188,5 +198,15 @@ namespace Edu.Module.User
flag = accountRepository.Update(fileds, wheres); flag = accountRepository.Update(fileds, wheres);
return flag; return flag;
} }
/// <summary>
/// 获取指定教师的企业微信ID
/// </summary>
/// <param name="tid">教师编号</param>
/// <returns></returns>
public string GetWorkUserIdByTIdModule(int tid)
{
return accountRepository.GetWorkUserIdByTidRepository(tid);
}
} }
} }
\ No newline at end of file
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Common.Enum.User; using Edu.Common.Enum.User;
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User; using Edu.Model.ViewModel.User;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -613,5 +614,33 @@ FROM rb_employee e LEFT JOIN rb_okr_objective o on e.EmployeeId = o.CreateBy AND ...@@ -613,5 +614,33 @@ FROM rb_employee e LEFT JOIN rb_okr_objective o on e.EmployeeId = o.CreateBy AND
WHERE e.RB_Group_id ={GroupId} AND e.IsLeave =0 AND o.Score =0 GROUP BY e.EmployeeId"; WHERE e.RB_Group_id ={GroupId} AND e.IsLeave =0 AND o.Score =0 GROUP BY e.EmployeeId";
return Get<RB_Employee_Extend>(sql).ToList(); return Get<RB_Employee_Extend>(sql).ToList();
} }
/// <summary>
/// 获取指定教师的企业微信ID
/// </summary>
/// <param name="tid">教师编号</param>
/// <returns></returns>
public string GetWorkUserIdByTidRepository(int tid)
{
string sql = $"select {nameof(RB_Account_ViewModel.WorkUserId)} from {nameof(RB_Account)} where {nameof(RB_Account_ViewModel.AccountType)}=2 and {nameof(RB_Account_ViewModel.AccountId)}={tid}";
var result = ExecuteScalar(sql, null);
return Convert.IsDBNull(result) ? string.Empty : result.ToString();
}
/// <summary>
/// 获取指定人员的企业微信ID
/// </summary>
/// <param name="id">教师编号</param>
/// <returns></returns>
public string GetWorkUserIdRepository(int id)
{
string sql = $"select {nameof(RB_Account_ViewModel.WorkUserId)} from {nameof(RB_Account)} where {nameof(RB_Account_ViewModel.Id)}={id}";
var result = ExecuteScalar(sql, null);
return Convert.IsDBNull(result) && !result.Equals(null) ? string.Empty : result.ToString();
}
} }
} }
\ No newline at end of file
...@@ -2,13 +2,16 @@ ...@@ -2,13 +2,16 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web;
using Edu.Cache.User; using Edu.Cache.User;
using Edu.Common;
using Edu.Common.API; using Edu.Common.API;
using Edu.Common.Enum.Course; using Edu.Common.Enum.Course;
using Edu.Common.Enum.System; using Edu.Common.Enum.System;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.Course;
using Edu.Module.Course; using Edu.Module.Course;
using Edu.Module.User;
using Edu.WebApi.Filter; using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
...@@ -29,6 +32,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -29,6 +32,8 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
private readonly ClassModule classModule = AOP.AOPHelper.CreateAOPObject<ClassModule>(); private readonly ClassModule classModule = AOP.AOPHelper.CreateAOPObject<ClassModule>();
private readonly AccountModule accountModule = AOP.AOPHelper.CreateAOPObject<AccountModule>();
#region 班级管理 #region 班级管理
/// <summary> /// <summary>
/// 获取班级页列表 /// 获取班级页列表
...@@ -2161,7 +2166,29 @@ namespace Edu.WebApi.Controllers.Course ...@@ -2161,7 +2166,29 @@ namespace Edu.WebApi.Controllers.Course
Platform = 2, Platform = 2,
ReceiveId = query.TeacherId.ToString(), ReceiveId = query.TeacherId.ToString(),
}; };
var queryTargetWorkId = accountModule.GetWorkUserIdModule(query.TeacherId);
if (!string.IsNullOrEmpty(queryTargetWorkId))
{
var path = $"/course/prepareclassDetails?ClassId={query.ClassId}&ClassPlanId={query.ClassPlanId}";
path=HttpUtility.UrlEncode(path);
string markdownContent = $"`教师备课` 主管评论备课内容通知\n>**概要信息** \n>上课日期:<font color='info'>{query.ClassDate.Value.ToString("yyyy-MM-dd")}</font>\n>评价人:<font color='warning'>{model.CreateByName}</font>\n>评价日期:<font color='comment'>{DateTime.Now.ToString("MM-dd HH:mm")}</font>\n>\n>分数:<font color='comment'>{(query.Score == -1 ? "未评分" : query.Score + "分")}</font>\n>请点击:[查看详情]({Config.ErpUrl}/autologin?loginId={query.TeacherId}&target={path}#target=out)";
Common.Message.PushMessageModel modelWork = new Common.Message.PushMessageModel()
{
CategoryId = PushMessageCategoryEnum.LessonComment,
Content = markdownContent,
CoverImg = "",
CreateByName = base.UserInfo.AccountName,
JumpUrl = "markdown",
SendTime = DateTime.Now,
SendType = 0,
Title = "主管评论备课通知",
Platform = 5,
ReceiveId = queryTargetWorkId
};
Common.Message.MessageHelper.SendMessage(modelWork);
}
Common.Message.MessageHelper.SendMessage(model); Common.Message.MessageHelper.SendMessage(model);
} }
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
......
...@@ -69,11 +69,25 @@ namespace Edu.WebApi.Controllers.User ...@@ -69,11 +69,25 @@ namespace Edu.WebApi.Controllers.User
string account = jobj.GetStringValue("Account"); string account = jobj.GetStringValue("Account");
string password = jobj.GetStringValue("Password"); string password = jobj.GetStringValue("Password");
int accountType = jobj.GetInt("AccountType", 1); int accountType = jobj.GetInt("AccountType", 1);
var model = accountModule.GetAccountListExtModule(new RB_Account_ViewModel() int autoLoginId = jobj.GetInt("AutoLoginId",0);
//新增自动登录功能,用于通过推送消息自动登录
RB_Account_ViewModel model = null;
if (autoLoginId == 0)
{ {
Account = account.Trim(), model = accountModule.GetAccountListExtModule(new RB_Account_ViewModel()
//AccountType = (AccountTypeEnum)accountType {
})?.FirstOrDefault(); Account = account.Trim(),
//AccountType = (AccountTypeEnum)accountType
})?.FirstOrDefault();
}
else
{
model = accountModule.GetAccountListExtModule(new RB_Account_ViewModel()
{
Id = autoLoginId,
//AccountType = (AccountTypeEnum)accountType
})?.FirstOrDefault();
}
if (model == null) if (model == null)
{ {
return ApiResult.Failed(message: $"登录失败,账号或密码错误!"); return ApiResult.Failed(message: $"登录失败,账号或密码错误!");
...@@ -83,7 +97,7 @@ namespace Edu.WebApi.Controllers.User ...@@ -83,7 +97,7 @@ namespace Edu.WebApi.Controllers.User
if (password != "Viitto!@#123") if (password != "Viitto!@#123")
{ {
password = Common.DES.Encrypt(password); password = Common.DES.Encrypt(password);
if (model.Password != password) if (model.Password != password && autoLoginId==0)
{ {
return ApiResult.Failed("密码错误"); return ApiResult.Failed("密码错误");
} }
......
{ {
"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"
}, },
"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", "ErpUrl": "http://localhost:8181/#",
"MongoDBName": "Edu", "Mongo": "mongodb://47.96.25.130:27017",
"WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/", "MongoDBName": "Edu",
"FinanceKey": "FinanceMallInsertToERPViitto2020", "WkHtmlToPdfPath": "D:/wkhtmltopdf/bin/",
"PaymentFinanceApi": "http://192.168.20.7:8083/api/Mall/InsertFinanceBatchForMallOut", "FinanceKey": "FinanceMallInsertToERPViitto2020",
"IncomeFinanceApi": "http://192.168.20.7:8083/api/Mall/InsertFinanceBatchForMallIn", "PaymentFinanceApi": "http://192.168.20.7:8083/api/Mall/InsertFinanceBatchForMallOut",
"sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址 "IncomeFinanceApi": "http://192.168.20.7:8083/api/Mall/InsertFinanceBatchForMallIn",
"sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址 "sTenpayNotifyUrl": "http://eduapi.oytour.com/api/WeChatPay/WxPayCallback", //下单回调地址
"FinanceDateBase": "reborn_finance", "sTenpayNotifyRefundUrl": "http://eduapi.oytour.com/api/WeChatPay/Refunds", //退款回调地址
"EduDateBase": "uat_reborn_edu", "FinanceDateBase": "reborn_finance",
"JHTenantId": "15", "EduDateBase": "uat_reborn_edu",
"JHMallBaseId": "5", "JHTenantId": "15",
"Notice_BaseKey": "Notice_BaseKey", "JHMallBaseId": "5",
"EducationContractSchool": "EducationContractSchool", "Notice_BaseKey": "Notice_BaseKey",
"EducationContractAdmin": "EducationContractAdmin", "EducationContractSchool": "EducationContractSchool",
"RabbitMqConfig": { "EducationContractAdmin": "EducationContractAdmin",
"HostName": "47.96.25.130", "RabbitMqConfig": {
"VirtualHost": "/", "HostName": "47.96.25.130",
"Port": 5672, "VirtualHost": "/",
"UserName": "guest", "Port": 5672,
"Password": "viitto2019", "UserName": "guest",
"QueenName": "vt_sys_message_test" "Password": "viitto2019",
}, "QueenName": "vt_sys_message_test"
"RedisSetting": { },
"RedisServer": "47.96.23.199", "RedisSetting": {
"RedisPort": "6379", "RedisServer": "47.96.23.199",
"RedisPwd": "Viitto2018" "RedisPort": "6379",
}, "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-", //合同默认抬头
//消息推送AppId "ContractDefaultTitle": "JH-DZ-CD-",
"PushAppId": "JiaHeJiaoYu", //消息推送AppId
//是否推送消息 "PushAppId": "JiaHeJiaoYu",
"IsPushMessage": "1", //是否推送消息
//超过下班时间60分钟不能打卡 "IsPushMessage": "1",
"MoreThanMinutes": 60, //超过下班时间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
} }
\ 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