Commit b62cf733 authored by 黄奎's avatar 黄奎

页面修改

parent 35b67d53
......@@ -80,4 +80,79 @@ namespace Edu.Cache.WeChat
}
}
/// <summary>
/// redis缓存
/// </summary>
public class WeChatReidsCache2
{
/// <summary>
/// 使用redis第几号库
/// </summary>
public static readonly int REDIS_DB2 = 2;
static readonly RedisHelper redis = new RedisHelper(REDIS_DB2);
/// <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
......@@ -738,5 +738,29 @@ namespace Edu.Common
return IsOpenChangeClassVerify;
}
}
/// <summary>
/// 甲鹤小程序AppId
/// </summary>
public static string AppID
{
get { return "wx38e054ee42b054f4"; }
}
/// <summary>
/// 甲鹤小程序AppSecret
/// </summary>
public static string AppSecret
{
get { return "d3ad4699265ba885ae2c8b65bf574ea5"; }
}
/// <summary>
/// 微信小程序Api地址
/// </summary>
public static string WechatApi
{
get { return "https://api.weixin.qq.com/"; }
}
}
}
\ No newline at end of file
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;
namespace Edu.Common.Plugin
{
......@@ -49,63 +57,62 @@ namespace Edu.Common.Plugin
}
/// <summary>
/// Get获取数据
/// 执行HTTP POST请求。
/// </summary>
/// <param name="url">url地址</param>
/// <param name="encode">编码方式</param>
/// <param name="Source">来源</param>
/// <returns></returns>
public static string HttpGet(string url, Encoding encode, string Source, string cookie="")
/// <param name="url">请求地址</param>
/// <param name="postDataStr">请求地址</param>
/// <returns>HTTP响应</returns>
public static string HttpPost_V2(string url, string postDataStr, string path)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
if (!string.IsNullOrEmpty(Source))
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/octet-stream";
req.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
Stream myRequestStream = req.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream);
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
Encoding encoding = Encoding.UTF8;
if (!string.IsNullOrWhiteSpace(rsp.CharacterSet))
{
myRequest.Referer = Source;
encoding = Encoding.GetEncoding(rsp.CharacterSet);
}
if (!string.IsNullOrEmpty(cookie))
System.IO.Stream stream = null;
try
{
myRequest.Headers.Add("cookie", cookie);
// 以字符流的方式读取HTTP响应
stream = rsp.GetResponseStream();
return ReadImageForStream_V2(stream, path);
}
myRequest.Method = "GET";
HttpWebResponse myResponse;
try
catch (Exception ex)
{
myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), encode);
string content = reader.ReadToEnd();
return content;
LogHelper.Write(ex, "HttpPost_V2");
return "";
}
//异常请求
catch (WebException e)
finally
{
myResponse = (HttpWebResponse)e.Response;
using Stream errData = myResponse.GetResponseStream();
using StreamReader reader = new StreamReader(errData);
string text = reader.ReadToEnd();
return text;
// 释放资源
if (stream != null) stream.Close();
if (rsp != null) rsp.Close();
}
}
/// <summary>
/// 执行HTTP GET请求。
/// 获取
/// </summary>
/// <param name="url">请求地址</param>
/// <returns>HTTP响应</returns>
public static string HttpGet(string url)
/// <param name="imgstream"></param>
/// <returns></returns>
public static string ReadImageForStream_V2(Stream imgstream, string path)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
req.ContentType = "application/json";
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
if (string.IsNullOrWhiteSpace(rsp.CharacterSet))
{
return GetResponseAsString(rsp, Encoding.UTF8);
}
else
{
Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
return GetResponseAsString(rsp, encoding);
}
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;
}
......@@ -114,18 +121,11 @@ namespace Edu.Common.Plugin
/// </summary>
/// <param name="url">请求地址</param>
/// <returns>HTTP响应</returns>
public static string HttpPostStr(string url, string postDataStr)
public static string HttpGet(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] data = Encoding.UTF8.GetBytes(postDataStr);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
req.Method = "GET";
req.ContentType = "application/json";
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
if (string.IsNullOrWhiteSpace(rsp.CharacterSet))
{
......@@ -138,33 +138,6 @@ namespace Edu.Common.Plugin
}
}
/// <summary>
/// 执行HTTP POST请求。
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="postDataStr">请求地址</param>
/// <returns>HTTP响应</returns>
public static string HttpPost(string url, string postDataStr)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/octet-stream";
req.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
Stream myRequestStream = req.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
if (string.IsNullOrWhiteSpace(rsp.CharacterSet))
{
return GetResponseAsStringBase64(rsp);
}
else
{
return GetResponseAsStringBase64(rsp);
}
}
/// <summary>
/// 把响应流转换为文本。
......@@ -192,43 +165,8 @@ namespace Edu.Common.Plugin
}
}
/// <summary>
/// 把响应流转换为文本
/// </summary>
/// <param name="rsp"></param>
/// <returns></returns>
private static string GetResponseAsStringBase64(HttpWebResponse rsp)
{
System.IO.Stream stream = null;
try
{
// 以字符流的方式读取HTTP响应
stream = rsp.GetResponseStream();
return ReadImageForStream(stream);//转成base 64返回
}
catch
{
return "";
}
finally
{
// 释放资源
if (stream != null) stream.Close();
if (rsp != null) rsp.Close();
}
}
/// <summary>
/// 获取
/// </summary>
/// <param name="imgstream"></param>
/// <returns></returns>
public static string ReadImageForStream(Stream imgstream)
{
System.Drawing.Image result = System.Drawing.Image.FromStream(imgstream);
System.Drawing.Bitmap bit = new System.Drawing.Bitmap(result);
return BitmapToBase64(bit, System.Drawing.Imaging.ImageFormat.Png);
}
/// <summary>
/// bitmap转 base64
......
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
namespace Edu.Common.Plugin
{
/// <summary>
/// 微信帮助类
/// </summary>
public class WeChatHelper
{
/// <summary>
/// 获取access_token
/// </summary>
/// <returns></returns>
public static string GetAccessToken()
{
string token = string.Empty;
try
{
string wechatapi = Config.WechatApi;
string appID = Config.AppID;
string appSecret = Config.AppSecret;
//获取微信token
string token_url = wechatapi+"cgi-bin/token?grant_type=client_credential&appid=" + appID + "&secret=" + appSecret;
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(token_url);
//请求方式
myRequest.Method = "GET";
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(),Encoding.UTF8);
string content = reader.ReadToEnd();
myResponse.Close();
reader.Dispose();
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
token = jo["access_token"].ToString();
}
catch (Exception ex)
{
token = "";
Common.Plugin.LogHelper.Write(ex, "GetAccessToken");
}
return token;
}
/// <summary>
/// 生成小程序码
/// </summary>
/// <param name="path"></param>
/// <param name="width"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public static string GetWeiXinQRCode(string token, string path, int width)
{
if (!string.IsNullOrEmpty(token))
{
string GetImageUrl = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + token;//获取小程序码
var postData = new
{
path,
width
};
string pathName = DateTime.Now.Ticks + ".jpg";
string basepath = AppContext.BaseDirectory;
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 "";
}
}
}
......@@ -203,7 +203,7 @@ namespace Edu.Module.Course
ProtocolNum=Common.ConvertHelper.FormatDate(DateTime.Now),
PartyAName=guestModel.GuestName,
PartyAGuardian="",
PartyBName="",
PartyBName= "成都市锦江区甲鹤外语培训学校有限公司",
PartyBLegal="",
SignDate=null,
OldSaleMan= saleMan?.AccountName??"",
......
......@@ -1108,6 +1108,7 @@ namespace Edu.Module.EduTask
//退课
if (receiptModel.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.BackClass)
{
if (auditModel.AuditStatus == 2)
{
flag = student_BackClassRepository.UpdateStudentBackClassRepository(receiptModel, auditModel);
......
......@@ -4,9 +4,11 @@ using Edu.Model.Entity.Course;
using Edu.Model.Entity.EduTask;
using Edu.Model.Entity.Sell;
using Edu.Model.ViewModel.BackClass;
using Edu.Model.ViewModel.Contract;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.EduTask;
using Edu.Model.ViewModel.Sell;
using Edu.Repository.Contract;
using Edu.Repository.Course;
using Edu.Repository.EduTask;
using Edu.Repository.Sell;
......@@ -39,6 +41,11 @@ namespace Edu.Repository.BackClass
/// </summary>
private readonly RB_Order_ChangeRepository order_ChangeRepository = new RB_Order_ChangeRepository();
/// <summary>
/// 退课协议仓储层对象
/// </summary>
private readonly RB_BackClass_ProtocolRepository backClass_ProtocolRepository = new RB_BackClass_ProtocolRepository();
/// <summary>
/// 获取学员退课单据列表
/// </summary>
......@@ -103,6 +110,11 @@ WHERE 1=1 ");
{
{nameof(RB_Student_BackClass_ViewModel.AuditStatus),auditModel.AuditStatus }
};
//退课协议审核状态
Dictionary<string, object> backprotocolFileds = new Dictionary<string, object>()
{
{nameof(RB_BackClass_Protocol_ViewModel.AuditStatus),auditModel.AuditStatus }
};
if (!string.IsNullOrEmpty(auditModel.RecipientIds))
{
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.RecipientIds), auditModel.RecipientIds);
......@@ -113,6 +125,17 @@ WHERE 1=1 ");
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.RealityBackMoney), auditModel.BackMoney);
}
bool flag = base.Update(backFileds, new WhereHelper(nameof(RB_Student_BackClass_ViewModel.BackId), backModel.BackId));
if (flag)
{
if (auditModel.AuditStatus == 2)
{
//审核通过自动盖章
backprotocolFileds.Add(nameof(RB_BackClass_Protocol_ViewModel.IsCompanySeal), 1);
}
//更新退课协议审核状态
flag= backClass_ProtocolRepository.Update(backprotocolFileds, new WhereHelper(nameof(RB_BackClass_Protocol_ViewModel.BackId), backModel.BackId));
}
if (flag)
{
var guestList = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { OrderId = backModel.OrderId });
......@@ -125,6 +148,7 @@ WHERE 1=1 ");
};
flag = orderRepository.Update(orderFileds, new WhereHelper(nameof(RB_Order.OrderId), backModel.OrderId));
}
}
if (flag)
{
......
......@@ -45,7 +45,6 @@ namespace Edu.WebApi.Controllers.EduTask
Conditon = (EduReceiptConditionEnum)base.ParmJObj.GetInt("Conditon"),
ReceiptType = base.ParmJObj.GetInt("ReceiptType"),
Title = base.ParmJObj.GetStringValue("Title"),
};
if (!string.IsNullOrEmpty(base.ParmJObj.GetStringValue("VerifyStatus")))
{
......
......@@ -53,21 +53,46 @@ namespace Edu.WebApi.Controllers.User
[AllowAnonymous]
public ApiResult Test()
{
Common.Message.MessageHelper.SendMessage(new Common.Message.PushMessageModel()
//Common.Message.MessageHelper.SendMessage(new Common.Message.PushMessageModel()
//{
// CategoryId = 0,
// Content = "1111",
// CoverImg = "",
// CreateByName = "HK",
// JumpUrl = "",
// MsgSign = "1",
// MsgTemplateCode = "",
// Platform = 2,
// ReceiveId = "1",
// SendTime = DateTime.Now,
// SendType = 0,
// 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))
{
CategoryId = 0,
Content = "1111",
CoverImg = "",
CreateByName = "HK",
JumpUrl = "",
MsgSign = "1",
MsgTemplateCode = "",
Platform = 2,
ReceiveId = "1",
SendTime = DateTime.Now,
SendType = 0,
Title = "HKHK"
});
// 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();
}
......
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