Commit 8f54aacd authored by 吴春's avatar 吴春

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents be4f6d82 e927e1e1
......@@ -43,5 +43,15 @@ namespace Edu.Cache
/// </summary>
public static string WeChatPay_Callback_Key = "WeChatPay_Callback_Key_";
/// <summary>
/// 通讯录token
/// </summary>
public static string QYWeChat_TelToken_Key = "TWeChat_Token_Key_";
/// <summary>
/// 外部人员token
/// </summary>
public static string QYWeChat_EmpToken_Key = "EWeChat_Token_Key_";
}
}
using Edu.CacheManager.Base;
using Edu.Common.Enum;
using Edu.Model.CacheModel;
using Edu.Repository.User;
using System;
using System.Linq;
namespace Edu.Cache.WeChat
{
/// <summary>
/// redis缓存
/// </summary>
public class WeChatReidsCache
{
/// <summary>
/// 使用redis第几号库
/// </summary>
public static readonly int REDIS_DB3 = 3;
static readonly RedisHelper redis = new RedisHelper(REDIS_DB3);
/// <summary>
/// 设置缓存
/// </summary>
/// <param name="cacheKey"></param>
/// <param name="token"></param>
/// <param name="JwtExpirTime"></param>
public static void TokenSet(string cacheKey, string token, int JwtExpirTime)
{
try
{
TimeSpan ts = GetExpirTime(JwtExpirTime);
redis.StringSet(cacheKey, token, ts);
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "TokenSet缓存设置失败");
}
}
/// <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>
/// <param name="cacheKey"></param>
/// <param name="Data"></param>
/// <param name="JwtExpirTime"></param>
public static string GetToken(string cacheKey)
{
try
{
return redis.StringGet(cacheKey);
}
catch (Exception)
{
return "";
}
}
}
}
\ No newline at end of file
......@@ -51,5 +51,17 @@ namespace Edu.Common.Enum.System
/// </summary>
[EnumField("试听课")]
ReserveClass = 7,
/// <summary>
/// 耗材入库审核
/// </summary>
[EnumField("耗材入库审核")]
SuppliesStokcInAudit = 8,
/// <summary>
/// 资产入库审核
/// </summary>
[EnumField("资产入库审核")]
PropertyStokcInAudit = 9,
}
}
......@@ -188,6 +188,24 @@ namespace Edu.Common
return list;
}
/// <summary>
/// 时间集合转字符串用户SQL查询使用
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static string DateTimeListToString(List<DateTime> list)
{
string str = "";
if (list != null && list.Count > 0)
{
foreach (var item in list)
{
str += ",'" + FormatDate(item) + "'";
}
}
return str.TrimStart(',').TrimEnd(',');
}
/// <summary>
/// 根据日期获取星期几
/// </summary>
......@@ -230,7 +248,7 @@ namespace Edu.Common
public static int CalcMinutes(DateTime start, DateTime end)
{
int minutes=Convert.ToInt32((end - start).TotalSeconds);
minutes = minutes / 60;
minutes /= 60;
return minutes;
}
......
......@@ -47,6 +47,7 @@
<ProjectReference Include="..\Edu.Module.Course\Edu.Module.Course.csproj" />
<ProjectReference Include="..\Edu.Module.Finance\Edu.Module.Finance.csproj" />
<ProjectReference Include="..\Edu.Module.OKR\Edu.Module.OKR.csproj" />
<ProjectReference Include="..\Edu.ThirdCore\Edu.ThirdCore.csproj" />
</ItemGroup>
<ItemGroup>
......
......@@ -66,5 +66,10 @@ namespace Edu.Model.Entity.Course
/// 0-未反馈,1-已反馈
/// </summary>
public int ParentFanKuiStatus { get; set; }
/// <summary>
/// 上课计划重复的计划编号
/// </summary>
public string RepeatPlanIds { get; set; }
}
}
\ No newline at end of file
......@@ -66,10 +66,19 @@ namespace Edu.Model.Entity.User
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 校区编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 校区默认值
/// </summary>
private int defaultSId = -1;
/// <summary>
/// 学校编号
/// </summary>
public int School_Id
{
get { return defaultSId; }
set { defaultSId = value; }
}
/// <summary>
/// 部门层级
......
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.WeChat
{
/// <summary>
/// 企业微信配置实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_WeChat_Config
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 企业名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 企业微信ID
/// </summary>
public string WX_CorpId { get; set; }
/// <summary>
/// 企业代码(企业统一社会信用代码)
/// </summary>
public string Social_Code { get; set; }
/// <summary>
/// 企业通讯录secret
/// </summary>
public string Employee_Secret { get; set; }
/// <summary>
/// 企业外部联系人secret
/// </summary>
public string Contact_Secret { get; set; }
/// <summary>
/// 事件回调地址(通讯录)
/// </summary>
public string TelEvent_CallBack { get; set; }
/// <summary>
/// 回调token
/// </summary>
public string Token { get; set; }
/// <summary>
/// 回调消息加密串
/// </summary>
public string Encoding_Aes_Key { get; set; }
/// <summary>
/// 事件回调地址(外部人员)
/// </summary>
public string EmpEvent_CallBack { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建日期
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
}
}
......@@ -103,6 +103,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public string QClassDateStr { get; set; }
/// <summary>
/// 是否查询上课计划有重复的数据【1-是】
/// </summary>
public int IsQRepeat { get; set; }
/// <summary>
/// 老师备课次数>0已备课
/// </summary>
......
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Common.Enum.Sale;
using Edu.Model.Entity.WeChat;
namespace Edu.Model.ViewModel.WeChat
{
/// <summary>
/// 企业微信配置扩展类
/// </summary>
public class RB_WeChat_Config_ViewModel : RB_WeChat_Config
{
}
}
This diff is collapsed.
......@@ -2659,7 +2659,7 @@ namespace Edu.Module.Course
};
//HK2021-07-19新增【有效课时大于完成课时修改学员状态为正常】
string LogContent = "";
if (gmodel.CompleteHours < validClassHours)
if (gmodel.CompleteHours <= validClassHours)
{
keyValues.Add(nameof(RB_Order_Guest.GuestState), 1);
keyValues.Add(nameof(RB_Order_Guest.DropOutRemark), "有效课时大于完成课时,恢复学员状态!");
......
......@@ -560,7 +560,7 @@ namespace Edu.Module.Course
}
#region 计算课时
var g3list = glist.Where(x => x.OrderId == item.OrderId && x.GuestState != 2).ToList();
var g3list = glist.Where(x => x.OrderId == item.OrderId).ToList();
//查询这几个学生累计课时
decimal TotalLearn = CheckList.Where(x => x.OrderId == item.OrderId && x.MonthDate <= Convert.ToDateTime(EDate)).Sum(x => x.CurrentDeductionHours);//累计消费课时 (要查询当前发放提成日期) ld 07-02调整
decimal TotalHours = g3list.Sum(x => x.TotalHours);// 直接根据学生表 总课时计算 (必须签到课时 = 总课时 才发完最后一个月的)
......@@ -745,7 +745,7 @@ namespace Edu.Module.Course
#region 班级提成
//查询是否订单下所有学员都已退学
var g2list = glist.Where(x => x.OrderId == item.OrderId).ToList();
if (g2list.Where(x => x.GuestState == 2).Count() == item.GuestNum)
if (g2list.Where(x => x.GuestState == -1).Count() == item.GuestNum)
{
//所有学生都退学了 直接计算提成 全部一次性发放
if (item.HelpEnterId > 0)
......@@ -1881,7 +1881,7 @@ namespace Edu.Module.Course
}
#region 计算课时
var g3list = glist.Where(x => x.OrderId == item.OrderId && x.GuestState != 2).ToList();
var g3list = glist.Where(x => x.OrderId == item.OrderId).ToList();
//查询这几个学生累计课时
decimal TotalLearn = CheckList.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentDeductionHours);//累计消费课时
decimal TotalHours = g3list.Sum(x => x.TotalHours);// 直接根据学生表 总课时计算 (必须签到课时 = 总课时 才发完最后一个月的)
......@@ -2066,7 +2066,7 @@ namespace Edu.Module.Course
#region 班级提成
//查询是否订单下所有学员都已退学
var g2list = glist.Where(x => x.OrderId == item.OrderId).ToList();
if (g2list.Where(x => x.GuestState == 2).Count() == item.GuestNum)
if (g2list.Where(x => x.GuestState == -1).Count() == item.GuestNum)
{
//所有学生都退学了 直接计算提成 全部一次性发放
if (item.HelpEnterId > 0)
......
......@@ -149,7 +149,7 @@ namespace Edu.Module.Course
}
};
var classModel = classRepository.GetEntity(backModel.ClassId);
string Remark = "【" + (classModel?.ClassName ?? "") + "】下,订单" + backModel.OrderId + " 客人退课";
string Remark = backModel.ApplyReason+ "【" + (classModel?.ClassName ?? "") + "】下,订单" + backModel.OrderId + " 客人退课";
var financeObj = new
{
IsPublic,
......
......@@ -22,26 +22,6 @@ namespace Edu.Module.EduTask
/// </summary>
private readonly RB_Change_ClassPlanRepository change_ClassPlanRepository = new RB_Change_ClassPlanRepository();
/// <summary>
/// 获取调课计划列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Change_ClassPlan_ViewModel> GetChangeClassPlanListModule(RB_Change_ClassPlan_ViewModel query)
{
return change_ClassPlanRepository.GetChangeClassPlanListRepository(query);
}
public bool UpdateChangeClassPlan(int id)
{
return change_ClassPlanRepository.UpdateChangeClassPlan(id);
}
/// <summary>
/// 新增修改调课计划
/// </summary>
......
......@@ -300,7 +300,7 @@ namespace Edu.Module.Finance
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public decimal GetSellCommissionStatistics(RB_Activity_PeriodsDetail_ViewModel dmodel)
public decimal GetActivityCommissionStatistics(RB_Activity_PeriodsDetail_ViewModel dmodel)
{
return activity_PeriodsDetailRepository.GetSellCommissionStatistics(dmodel);
}
......
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Edu.Cache\Edu.Cache.csproj" />
<ProjectReference Include="..\Edu.Common\Edu.Common.csproj" />
<ProjectReference Include="..\Edu.Model\Edu.Model.csproj" />
<ProjectReference Include="..\Edu.Repository\Edu.Repository.csproj" />
<ProjectReference Include="..\Edu.ThirdCore\Edu.ThirdCore.csproj" />
</ItemGroup>
</Project>
using System;
using System.Collections.Generic;
using System.Linq;
using Edu.Cache.WeChat;
using Edu.Common;
using Edu.Common.API;
using Edu.Common.Enum.Finance;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.ViewModel.WeChat;
using Edu.Repository.WeChat;
using Edu.ThirdCore.QYWinXin;
using VT.FW.DB;
namespace Edu.Module.QYWeChat
{
/// <summary>
/// 企业微信处理类
/// </summary>
public class QYWeChatModule
{
/// <summary>
/// 微信配置
/// </summary>
private readonly RB_WeChat_ConfigRepository weChat_ConfigRepository = new RB_WeChat_ConfigRepository();
#region 微信配置
/// <summary>
/// 获取企业微信配置
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public RB_WeChat_Config_ViewModel GetWeChatConfigModel(RB_WeChat_Config_ViewModel model)
{
var dmodel = weChat_ConfigRepository.GetList(model).FirstOrDefault();
if (dmodel == null) { dmodel = new RB_WeChat_Config_ViewModel(); }
return dmodel;
}
/// <summary>
/// 新增/修改企业微信配置
/// </summary>
/// <param name="demdoel"></param>
/// <returns></returns>
public string SetWeChatConfig(RB_WeChat_Config_ViewModel demdoel)
{
#region 验证一下
//获取两种的token
#region 通讯录
var TelToken = QYWeiXinHelper.GetToken(demdoel.WX_CorpId, demdoel.Employee_Secret);
//更新token缓存
WeChatReidsCache.TokenSet(Cache.CacheKey.QYWeChat_TelToken_Key + demdoel.Group_Id, TelToken.access_token, TelToken.expires_in - 10);
#endregion
#region 外部人员
#endregion
#endregion
if (demdoel.Id > 0)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_WeChat_Config_ViewModel.Name),demdoel.Name},
{ nameof(RB_WeChat_Config_ViewModel.WX_CorpId),demdoel.WX_CorpId},
{ nameof(RB_WeChat_Config_ViewModel.Employee_Secret),demdoel.Employee_Secret},
{ nameof(RB_WeChat_Config_ViewModel.Contact_Secret),demdoel.Contact_Secret},
{ nameof(RB_WeChat_Config_ViewModel.TelEvent_CallBack),demdoel.TelEvent_CallBack},
{ nameof(RB_WeChat_Config_ViewModel.EmpEvent_CallBack),demdoel.EmpEvent_CallBack},
{ nameof(RB_WeChat_Config_ViewModel.Token),demdoel.Token},
{ nameof(RB_WeChat_Config_ViewModel.Encoding_Aes_Key),demdoel.Encoding_Aes_Key},
{ nameof(RB_WeChat_Config_ViewModel.UpdateBy),demdoel.UpdateBy},
{ nameof(RB_WeChat_Config_ViewModel.UpdateTime),demdoel.UpdateTime},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_WeChat_Config_ViewModel.Id),
FiledValue=demdoel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = weChat_ConfigRepository.Update(keyValues, wheres);
return flag ? "" : "出错了,请联系管理员";
}
else {
bool flag = weChat_ConfigRepository.Insert(demdoel) > 0;
return flag ? "" : "出错了,请联系管理员";
}
}
#endregion
}
}
......@@ -209,7 +209,7 @@ from RB_Activity_PeriodsDetail r where {where} group by r.UserId,r.Depart_Id,r.S
where += $@" and r.{nameof(RB_Activity_PeriodsDetail_ViewModel.DSUserName)} like '%{demodel.DSUserName}%'";
}
string sql = $@" select sum(r.CommissionMoney) from RB_Sell_Commission_Details r where {where}";
string sql = $@" select sum(r.CommissionMoney) from RB_Activity_PeriodsDetail r where {where}";
var obj = ExecuteScalar(sql);
return obj == null ? 0 : Convert.ToDecimal(obj);
}
......
......@@ -509,9 +509,6 @@ WHERE c.`Status`=0 and sog.`Status`=0 ");
}
/// <summary>
/// 获取app约课
/// </summary>
......@@ -536,12 +533,9 @@ where a.`Status`=0 and a.IsSubscribe=1 and ClassStatus in(1,2)");
/// <returns></returns>
public int GetMaxClassNoPrefix(string OpenTime)
{
string sql = $@"select Max(ClassLetterNum) as ClassLetterNum from RB_Class where Status =0 and OpenTime ='{OpenTime}'";
string sql = $@"SELECT Max(ClassLetterNum) AS ClassLetterNum FROM RB_Class WHERE Status =0 AND OpenTime ='{OpenTime}'";
var obj = ExecuteScalar(sql);
return obj == null ? 0 : Convert.ToInt32(obj);
}
}
}
\ No newline at end of file
......@@ -313,7 +313,7 @@ group by g.Id;";
{
string sql = $@"SELECT g.OrderId,DATE_FORMAT(c.ClassDate,'%Y-%m') as MonthDateStr,SUM(c.CurrentDeductionHours) CurrentDeductionHours FROM rb_order_guest g
left join rb_class_check c on g.Id = c.OrderGuestId
WHERE g.Group_Id ={groupId} and g.`Status`=0 and g.GuestState <>2 and c.`Status` =0 and g.OrderId in({orderIds})
WHERE g.Group_Id ={groupId} and g.`Status`=0 and c.`Status` =0 and g.OrderId in({orderIds})
group by g.OrderId,DATE_FORMAT(c.ClassDate,'%Y-%m');";
return Get<RB_Class_Check_ViewModel>(sql).ToList();
}
......
......@@ -203,7 +203,6 @@ where b.`Status`=0 and DATE_FORMAT(b.ClassDate,'%y/%m/%d')=DATE_FORMAT(NOW(),'%y
return Get<RB_Class_Time_ViewModel>(builder.ToString()).ToList();
}
#region 教师上课挂件查询
/// <summary>
......@@ -267,7 +266,28 @@ where a.`Status`=0 and c.ClassStatus in(1,2) and a.TeacherId={TId} and c.`Sta
#endregion
/// <summary>
/// 批量添加上课计划时间
/// </summary>
/// <param name="timeList"></param>
/// <returns></returns>
public bool BatchInsertClassTimeRepository(List<RB_Class_Time> timeList)
{
bool flag = true;
if (timeList != null && timeList.Count > 0)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" INSERT INTO RB_Class_Time(ClassId,ClassPlanId,StartTime,EndTime,Group_Id,School_Id,ClassStatus,TimeHour) ");
builder.AppendFormat(" VALUES ");
string tempStr = "";
foreach (var item in timeList)
{
tempStr += $",({item.ClassId},{item.ClassPlanId},'{item.StartTime}','{item.EndTime}',{item.Group_Id},{item.School_Id},0,{item.TimeHour} ) ";
}
builder.Append(tempStr.TrimStart(','));
flag = base.Execute(builder.ToString()) > 0;
}
return flag;
}
}
}
......@@ -700,11 +700,11 @@ WHERE 1=1 and A.Status=0 and class.Status=0 and class.ClassStatus <>4 and b.Or
if (demodel.OrderTime.HasValue)
{
builder.AppendFormat($@" AND DATE_FORMAT(B.CreateTime,'%y-%m-%d')>=DATE_FORMAT('{demodel.OrderTime.Value.ToString("yyyy-MM-dd")}','%y-%m-%d')");
builder.AppendFormat($@" AND DATE_FORMAT(B.CreateTime,'%y-%m-%d')>=DATE_FORMAT('{Common.ConvertHelper.FormatDate(demodel.OrderTime)}','%y-%m-%d')");
}
if (demodel.EndOrderTime.HasValue)
{
builder.AppendFormat($@" AND DATE_FORMAT(B.CreateTime,'%y-%m-%d')<=DATE_FORMAT('{demodel.EndOrderTime.Value.ToString("yyyy-MM-dd")}','%y-%m-%d')");
builder.AppendFormat($@" AND DATE_FORMAT(B.CreateTime,'%y-%m-%d')<=DATE_FORMAT('{Common.ConvertHelper.FormatDate(demodel.EndOrderTime)}','%y-%m-%d')");
}
if (demodel.EffectStatus.HasValue)
{
......
......@@ -41,6 +41,7 @@ namespace Edu.Repository.EduTask
/// 课程日志记录表
/// </summary>
private readonly Log.RB_Class_LogRepository classLogRepository = new Log.RB_Class_LogRepository();
/// <summary>
/// 获取调课计划列表
/// </summary>
......@@ -219,7 +220,8 @@ WHERE 1=1
}
}
else
{//全局修改
{
//全局修改
AllChangePlanItem allChangePlanModel = new AllChangePlanItem();
//目标数据
if (!string.IsNullOrWhiteSpace(model.TargetData))
......
using Edu.Common.Enum;
using Edu.Model.Entity.WeChat;
using Edu.Model.ViewModel.WeChat;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB.Dapper;
namespace Edu.Repository.WeChat
{
/// <summary>
/// 企业配置仓储层
/// </summary>
public class RB_WeChat_ConfigRepository : BaseRepository<RB_WeChat_Config>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_WeChat_Config_ViewModel> GetList(RB_WeChat_Config_ViewModel demodel)
{
string where = $@" 1=1 ";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_WeChat_Config_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
string sql = $@"
SELECT * From RB_WeChat_Config r
WHERE {where}
ORDER BY r.Id DESC ";
return Get<RB_WeChat_Config_ViewModel>(sql).ToList();
}
}
}
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
......@@ -15,6 +15,7 @@
<PackageReference Include="Aliyun.Net.SDK.Core" Version="1.0.3" />
<PackageReference Include="Aliyun.OSS.SDK.NetCore" Version="2.10.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Senparc.Weixin.Work" Version="3.9.600" />
</ItemGroup>
<ItemGroup>
......
using System;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Senparc.Weixin.Work;
using Senparc.Weixin.Work.AdvancedAPIs;
using Senparc.Weixin.Work.Containers;
namespace Edu.ThirdCore.QYWinXin
{
/// <summary>
/// 企业微信处理
/// </summary>
public class QYWeiXinHelper
{
/// <summary>
/// 获取token
/// </summary>
/// <returns></returns>
public static Senparc.Weixin.Work.Entities.AccessTokenResult GetToken(string corpId, string corpSecret)
{
return Senparc.Weixin.Work.CommonAPIs.CommonApi.GetToken(corpId, corpSecret);
}
/// <summary>
/// 获取部门列表
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public static object GetDepartmentList(string token)
{
return Senparc.Weixin.Work.AdvancedAPIs.MailListApi.GetDepartmentList(token);
}
}
}
......@@ -261,16 +261,5 @@ namespace Edu.WebApi.Controllers.EduTask
bool flag = changeClassPlanModule.SetChangeClassPlanModule(model, receiptFile);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
public ApiResult TestUpdateClassPlan()
{
int id = base.ParmJObj.GetInt("Id");
var result = changeClassPlanModule.UpdateChangeClassPlan(id);
return ApiResult.Success("");
}
}
}
......@@ -249,7 +249,7 @@ namespace Edu.WebApi.Controllers.Finance
dmodel.Group_Id = userInfo.Group_Id;
var list = activityModule.GetActivityCommissionStatisticsPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel);
decimal TotalMoney = activityModule.GetSellCommissionStatistics(dmodel);
decimal TotalMoney = activityModule.GetActivityCommissionStatistics(dmodel);
pageModel.Count = Convert.ToInt32(count);
pageModel.PageData = new
{
......@@ -309,7 +309,7 @@ namespace Edu.WebApi.Controllers.Finance
try
{
var list = activityModule.GetActivityCommissionStatisticsPageList(1, 1000000, out long count, dmodel);
decimal TotalMoney = activityModule.GetSellCommissionStatistics(dmodel);
decimal TotalMoney = activityModule.GetActivityCommissionStatistics(dmodel);
#region 组装数据
foreach (var item in list)
{
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum.Finance;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.WeChat;
using Edu.Module.QYWeChat;
using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace Edu.WebApi.Controllers.Finance
{
/// <summary>
/// 企业微信接口
/// </summary>
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class QYWeChatController : BaseController
{
/// <summary>
/// 企业微信处理类对象
/// </summary>
private readonly QYWeChatModule weChatModule = new QYWeChatModule();
#region 微信配置
/// <summary>
/// 获取活动配置
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetWeChatConfigInfo() {
var userInfo = base.UserInfo;
var model = weChatModule.GetWeChatConfigModel(new RB_WeChat_Config_ViewModel() { Group_Id = userInfo.Group_Id });
return ApiResult.Success("", new
{
model.Id,
model.Name,
model.WX_CorpId,
model.Social_Code,
model.Employee_Secret,
model.Contact_Secret,
model.TelEvent_CallBack,
model.Token,
model.Encoding_Aes_Key,
model.EmpEvent_CallBack,
model.UpdateBy,
UpdateByName = UserReidsCache.GetUserLoginInfo(model.UpdateBy)?.AccountName ?? "",
UpdateTime = model.UpdateTime.ToString("yyyy-MM-dd HH:mm")
});
}
/// <summary>
/// 新增/修改 活动配置
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetWeChatConfig() {
var userInfo = base.UserInfo;
RB_WeChat_Config_ViewModel demdoel = JsonHelper.DeserializeObject<RB_WeChat_Config_ViewModel>(RequestParm.Msg.ToString());
demdoel.Group_Id = userInfo.Group_Id;
demdoel.CreateBy = userInfo.Id;
demdoel.CreateTime = DateTime.Now;
demdoel.UpdateBy = userInfo.Id;
demdoel.UpdateTime = DateTime.Now;
string msg = weChatModule.SetWeChatConfig(demdoel);
if (msg == "")
{
return ApiResult.Success();
}
else {
return ApiResult.Failed(msg);
}
}
#endregion
}
}
......@@ -45,6 +45,7 @@
<ProjectReference Include="..\Edu.Module.OKR\Edu.Module.OKR.csproj" />
<ProjectReference Include="..\Edu.Module.Public\Edu.Module.Public.csproj" />
<ProjectReference Include="..\Edu.Module.Question\Edu.Module.Question.csproj" />
<ProjectReference Include="..\Edu.Module.QYWeChat\Edu.Module.QYWeChat.csproj" />
<ProjectReference Include="..\Edu.Module.StudyAbroad\Edu.Module.StudyAbroad.csproj" />
<ProjectReference Include="..\Edu.Module.System\Edu.Module.System.csproj" />
<ProjectReference Include="..\Edu.Module.User\Edu.Module.User.csproj" />
......
......@@ -10,6 +10,11 @@ using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using Senparc.CO2NET;
using Senparc.Weixin.Entities;
using Senparc.Weixin.RegisterServices;
using Senparc.Weixin.Work;
namespace Edu.WebApi
{
......@@ -62,6 +67,8 @@ namespace Edu.WebApi
"https://mall.oytour.com"
};
services.AddCors(options => options.AddPolicy("AllowCors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(corsArray.ToArray())));
services.AddSenparcWeixinServices(Configuration);//注册全局微信服务
}
......
......@@ -66,6 +66,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Edu.Module.Advertising", "E
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Edu.Module.EduTask", "Edu.Module.EduTask\Edu.Module.EduTask.csproj", "{FEDB8D19-2C7E-4393-8D91-332256EC89CC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Edu.Module.QYWeChat", "Edu.Module.QYWeChat\Edu.Module.QYWeChat.csproj", "{00E05F5A-A5B7-46ED-AE5F-9D54D67FA78F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......@@ -160,6 +162,10 @@ Global
{FEDB8D19-2C7E-4393-8D91-332256EC89CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FEDB8D19-2C7E-4393-8D91-332256EC89CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FEDB8D19-2C7E-4393-8D91-332256EC89CC}.Release|Any CPU.Build.0 = Release|Any CPU
{00E05F5A-A5B7-46ED-AE5F-9D54D67FA78F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{00E05F5A-A5B7-46ED-AE5F-9D54D67FA78F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{00E05F5A-A5B7-46ED-AE5F-9D54D67FA78F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{00E05F5A-A5B7-46ED-AE5F-9D54D67FA78F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......@@ -185,6 +191,7 @@ Global
{3C354B2B-8706-49A6-A12A-5A64F28E7CDC} = {7AC0A4EC-3215-4FF2-96DC-DE8325ED6915}
{43408243-8E36-4F9E-84C0-998CE383EC53} = {7AC0A4EC-3215-4FF2-96DC-DE8325ED6915}
{FEDB8D19-2C7E-4393-8D91-332256EC89CC} = {7AC0A4EC-3215-4FF2-96DC-DE8325ED6915}
{00E05F5A-A5B7-46ED-AE5F-9D54D67FA78F} = {7AC0A4EC-3215-4FF2-96DC-DE8325ED6915}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8763B446-FAB1-46BF-9743-F2628533241B}
......
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