98 lines
2.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|