# 2022-02-09

### 1.3.5 开源社区版(会员专业版同步修改):
无
### 0.1.5 会员专业版:
【升级】nuget升级常用组件到最新版本。
【修复】服务商品列表图片组件从image调整为u--image组件。#I4RUC6
【优化】规范coreshop-goods.vue组件for循环未定义key的问题。
【修复】修复因升级uview版本导致【商品选项卡goodTabBar组件】切换失效的问题。
【新增】微信自定义交易组件增加【商品审核结果回调】,【类目审核结果回调】微信服务器消息推送处理。
【优化】调整自定义交易组件sku价格为decimal(18, 2)类型,方便小数处理。
【优化】微信自定义交易组件增加图片同步至微信侧功能。
【优化】重命名一些方法名称大小写。
【新增】首页设计轮播图增加高度设置功能。#I4SWEA
【修复】优化在苹果6/7/8plus及安卓一些机型出现分享海报弹窗文字被遮挡的问题。#I4SWCA
This commit is contained in:
JianWeie
2022-02-09 02:07:06 +08:00
parent 8e3adda57b
commit 05df55d7ec
43 changed files with 1044 additions and 535 deletions

View File

@@ -26,10 +26,9 @@ using CoreCms.Net.IServices;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.Echarts;
using CoreCms.Net.Model.ViewModels.Options;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Model.ViewModels.DTO;
using CoreCms.Net.Model.ViewModels.Echarts;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.WeChat.Service.HttpClients;
@@ -38,7 +37,6 @@ using COSXML.Auth;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using SKIT.FlurlHttpClient.Wechat.Api;
using SKIT.FlurlHttpClient.Wechat.Api.Models;
@@ -56,7 +54,6 @@ namespace CoreCms.Net.Web.Admin.Controllers
public class ToolsController : ControllerBase
{
private readonly ICoreCmsAreaServices _areaServices;
private readonly ICodeGeneratorServices _codeGeneratorServices;
private readonly ICoreCmsArticleServices _coreCmsArticleServices;
private readonly ICoreCmsArticleTypeServices _coreCmsArticleTypeServices;
private readonly ICoreCmsFormServices _coreCmsFormServices;
@@ -89,9 +86,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
private readonly IWeChatApiHttpClientFactory _weChatApiHttpClientFactory;
/// <summary>
/// 构造函数
@@ -112,8 +107,9 @@ namespace CoreCms.Net.Web.Admin.Controllers
, ISysRoleServices sysRoleServices
, ISysMenuServices sysMenuServices
, ISysUserRoleServices sysUserRoleServices
, ISysOrganizationServices sysOrganizationServices, ICodeGeneratorServices codeGeneratorServices,
ICoreCmsLogisticsServices logisticsServices, ISysLoginRecordServices sysLoginRecordServices, ISysNLogRecordsServices sysNLogRecordsServices, ICoreCmsBillPaymentsServices paymentsServices, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillAftersalesServices aftersalesServices, ICoreCmsSettingServices settingServices, ICoreCmsProductsServices productsServices, ICoreCmsServicesServices servicesServices, IOptions<FilesStorageOptions> filesStorageOptions, ISysRoleMenuServices sysRoleMenuServices, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices)
, ISysOrganizationServices sysOrganizationServices,
ICoreCmsLogisticsServices logisticsServices, ISysLoginRecordServices sysLoginRecordServices, ISysNLogRecordsServices sysNLogRecordsServices, ICoreCmsBillPaymentsServices paymentsServices, ICoreCmsBillDeliveryServices billDeliveryServices, ICoreCmsUserServices userServices, ICoreCmsOrderServices orderServices, ICoreCmsBillAftersalesServices aftersalesServices, ICoreCmsSettingServices settingServices, ICoreCmsProductsServices productsServices, ICoreCmsServicesServices servicesServices, ISysRoleMenuServices sysRoleMenuServices
, IWeChatApiHttpClientFactory weChatApiHttpClientFactory, ICoreCmsPagesServices pagesServices, IToolsServices toolsServices)
{
_user = user;
_webHostEnvironment = webHostEnvironment;
@@ -132,7 +128,6 @@ namespace CoreCms.Net.Web.Admin.Controllers
_sysMenuServices = sysMenuServices;
_sysUserRoleServices = sysUserRoleServices;
_sysOrganizationServices = sysOrganizationServices;
_codeGeneratorServices = codeGeneratorServices;
_logisticsServices = logisticsServices;
_sysLoginRecordServices = sysLoginRecordServices;
_sysNLogRecordsServices = sysNLogRecordsServices;
@@ -145,6 +140,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
_productsServices = productsServices;
_servicesServices = servicesServices;
_sysRoleMenuServices = sysRoleMenuServices;
_weChatApiHttpClientFactory = weChatApiHttpClientFactory;
_pagesServices = pagesServices;
_toolsServices = toolsServices;
@@ -264,6 +260,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
return jm;
}
if (entity.password == entity.oldPassword)
{
jm.msg = "请设置与旧密码不同的新密码";
@@ -619,7 +616,6 @@ namespace CoreCms.Net.Web.Admin.Controllers
if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.LocalStorage.ToString())
{
url = _toolsServices.UpLoadBase64ForLocalStorage(filesStorageOptions, memStream);
}
else if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.AliYunOSS.ToString())
{
@@ -776,7 +772,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
var newObj = list.Select(p => new
{
p.id,
image = !string.IsNullOrEmpty(p.images) ? p.images.Split(",")[0] : "/static/images/common/empty.png",
p.image,
p.images,
p.price,
p.name,
@@ -830,6 +826,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
#endregion
#region ====================================================
// POST: Api/Tools/GetProducts
@@ -891,6 +888,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
#endregion
#region ============================================================
// POST: Api/Tools/GetArticles
@@ -912,8 +910,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
if (!string.IsNullOrEmpty(title)) where = where.And(p => p.title.Contains(title));
//获取数据
var list = await _coreCmsArticleServices.QueryPageAsync(where, p => p.id, OrderByType.Asc, pageCurrent,
pageSize);
var list = await _coreCmsArticleServices.QueryPageAsync(where, p => p.id, OrderByType.Asc, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
@@ -1221,6 +1218,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
}
}
jm = await _logisticsServices.ExpressPoll(entity.code, entity.no, entity.mobile);
return jm;
@@ -1251,12 +1249,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
var menuIds = sysRoleMenu.Select(p => p.menuId).ToList();
var where = PredicateBuilder.True<SysMenu>();
where = where.And(p => p.deleted == false && p.hide == false && p.menuType == 0);
where = where.And(p => menuIds.Contains(p.id));
var navs = await _sysMenuServices.QueryListByClauseAsync(where, p => p.sortNumber, OrderByType.Asc);
var navs = await _sysMenuServices.QueryListByClauseAsync(p => menuIds.Contains(p.id) && p.deleted == false && p.hide == false && p.menuType == 0, p => p.sortNumber, OrderByType.Asc);
var menus = GetMenus(navs, 0);
jm.data = menus;
@@ -1519,8 +1512,8 @@ namespace CoreCms.Net.Web.Admin.Controllers
var series = new List<SeriesDataIntItem>
{
new SeriesDataIntItem() {name = "新增记录", type = "line", data = regs.Select(p => p.nums).ToList()},
new SeriesDataIntItem() {name = "活跃记录", type = "line", data = orders.Select(p => p.nums).ToList()}
new() {name = "新增记录", type = "line", data = regs.Select(p => p.nums).ToList()},
new() {name = "活跃记录", type = "line", data = orders.Select(p => p.nums).ToList()}
};
@@ -1581,12 +1574,13 @@ namespace CoreCms.Net.Web.Admin.Controllers
goodsStaticsTotalWarn
};
return jm;
}
#endregion
//微信自定义交易组件================================================================
#region ====================================================
@@ -1717,5 +1711,163 @@ namespace CoreCms.Net.Web.Admin.Controllers
#endregion
#region (Url交换)====================================================
/// <summary>
/// 自定义交易组件上传图片(Url交换)
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<AdminUiCallBack> MiNiShopOpenComponent2_UploadImgByUrl([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions();
if (string.IsNullOrEmpty(entity.id))
{
jm.msg = "请提交合法图片地址";
return jm;
}
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
var request = new ShopImageUploadRequest();
request.AccessToken = accessToken;
request.ImageUrl = entity.id;
request.ResponseType = 1;
var response = await client.ExecuteShopImageUploadAsync(request);
if (response.IsSuccessful())
{
jm.code = 0;
jm.msg = "上传成功!";
jm.data = new
{
fileUrl = response.Image.TempImageUrl,
src = response.Image.TempImageUrl
};
}
else
{
jm.code = 1;
jm.msg = response.ErrorMessage;
}
jm.otherData = response;
return jm;
}
#endregion
#region (Url交换)====================================================
/// <summary>
/// 自定义交易组件上传图片(Url交换)
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<AdminUiCallBack> MiNiShopOpenComponent2_UploadImgByUrlArr([FromBody] FMArrayStringIds entity)
{
var jm = new AdminUiCallBack();
var filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions();
if (entity.id.Length <= 0)
{
jm.msg = "请提交合法图片地址";
return jm;
}
var urlArr = new String[] { "store.mp.video.tencent-cloud.com", "mmbizurl.cn", "mmecimage.cn" };
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
for (var index = 0; index < entity.id.Length; index++)
{
var img = entity.id[index];
if (img.Contains(urlArr[0]) || img.Contains(urlArr[1]) || img.Contains(urlArr[2]))
{
continue;
}
else
{
var request = new ShopImageUploadRequest();
request.AccessToken = accessToken;
request.ImageUrl = img;
request.ResponseType = 1;
var response = await client.ExecuteShopImageUploadAsync(request);
if (response.IsSuccessful())
{
entity.id[index] = response.Image.TempImageUrl;
}
}
}
jm.code = 0;
jm.msg = "同步成功";
jm.data = entity.id;
return jm;
}
#endregion
#region (Url交换单张)====================================================
/// <summary>
/// 自定义交易组件上传图片(Url交换单张)
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<AdminUiCallBack> MiNiShopOpenComponent2_UploadImgByUrlSingle([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions();
if (string.IsNullOrEmpty(entity.id))
{
jm.msg = "请提交合法图片地址";
return jm;
}
var urlArr = new String[] { "store.mp.video.tencent-cloud.com", "mmbizurl.cn", "mmecimage.cn" };
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
if (entity.id.Contains(urlArr[0]) || entity.id.Contains(urlArr[1]) || entity.id.Contains(urlArr[2]))
{
jm.msg = "合法图片,无需同步";
return jm;
}
else
{
var request = new ShopImageUploadRequest();
request.AccessToken = accessToken;
request.ImageUrl = entity.id;
request.ResponseType = 1;
var response = await client.ExecuteShopImageUploadAsync(request);
if (response.IsSuccessful())
{
jm.code = 0;
jm.msg = "同步成功";
jm.data = response.Image.TempImageUrl;
}
else
{
jm.code = 1;
jm.msg = "同步失败" + response.ErrorMessage;
}
}
return jm;
}
#endregion
}
}