TG.WXCRM.V4/BLL/Wx/WX_FILEPATH_BL.cs

98 lines
2.8 KiB
C#

using System;
using WX.CRM.BLL.Base;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.DAL.Redis;
using WX.CRM.IBLL.Wx;
using WX.CRM.Model.Entity;
namespace WX.CRM.BLL.Wx
{
public class WX_FILEPATH_BL : IWX_FILEPATH
{
public bool Add(string MD5SerialNum, string url)
{
try
{
using (crmContext db = new crmContext())
{
WX_FILEPATH model = new WX_FILEPATH();
model.PKID = new SEQUENCES_BL().Seq_base_get();
model.MD5SERIALNUM = MD5SerialNum;
model.URL = url;
model.CTIME = DateTime.Now;
db.WX_FILEPATH.Add(model);
bool result = db.SaveChanges().GetResult();
if (result)
AddToRedis(model.MD5SERIALNUM, model.URL);
return result;
}
}
catch (Exception ex)
{
LogHelper.Error(ex);
return false;
}
}
public string GetUrl(string serialNum)
{
try
{
RedisString<string> rdb = new RedisString<string>();
return rdb.Get(serialNum);
}
catch (Exception ex)
{
LogHelper.Error("获取路径出错:" + ex.ToString());
return "";
}
}
bool AddToRedis(string serialNum, string url)
{
try
{
RedisString<string> rdb = new RedisString<string>();
return rdb.Set(serialNum, url);
}
catch (Exception ex)
{
LogHelper.Error("添加路径至Redis出错:" + ex.ToString());
return false;
}
}
public string UploadImage(string path, int type)
{
if (string.IsNullOrWhiteSpace(path))
{
throw new Exception("路径不能为空!");
}
try
{
var prefix = "wx_";
var suffix = string.Empty;
switch (type)
{
case 0: suffix = ".jpg"; break;
case 1: suffix = ".mp4"; break;
case 2: suffix = ".amr"; break;
}
var md5 = Utility.GetMD5HashFromFile(path);
var fileName = md5 + suffix;
var url = GetUrl(prefix + md5);
if (!string.IsNullOrEmpty(url))
return url;
var aliUrl = AliyunHelper.UploadImage(path, fileName);
Add(prefix + md5, aliUrl);
return aliUrl;
}
catch
{
throw;
}
}
}
}