/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 2023/9/15 23:09:53 * Description: 暂无 ***********************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using CoreCms.Net.Caching.AccressToken; using CoreCms.Net.Configuration; using CoreCms.Net.DTO.WeChatShipping; using CoreCms.Net.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.IServices; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.ViewModels.Api; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.Model.ViewModels.UI; using CoreCms.Net.WeChat.Service.HttpClients; using Flurl.Http; using SKIT.FlurlHttpClient.Wechat.Api.Models; using SqlSugar; namespace CoreCms.Net.Services { /// /// 微信发货快递公司信息 接口实现 /// public class WeChatShippingDeliveryServices : BaseServices, IWeChatShippingDeliveryServices { private readonly IWeChatShippingDeliveryRepository _dal; private readonly IUnitOfWork _unitOfWork; private readonly IWeChatApiHttpClientFactory _weChatApiHttpClientFactory; public WeChatShippingDeliveryServices(IUnitOfWork unitOfWork, IWeChatShippingDeliveryRepository dal, IWeChatApiHttpClientFactory weChatApiHttpClientFactory) { this._dal = dal; _weChatApiHttpClientFactory = weChatApiHttpClientFactory; base.BaseDal = dal; _unitOfWork = unitOfWork; } #region 实现重写增删改查操作========================================================== /// /// 重写异步插入方法 /// /// 实体数据 /// public async Task InsertAsync(WeChatShippingDelivery entity) { return await _dal.InsertAsync(entity); } /// /// 重写异步更新方法方法 /// /// /// public async Task UpdateAsync(WeChatShippingDelivery entity) { return await _dal.UpdateAsync(entity); } /// /// 重写异步更新方法方法 /// /// /// public async Task UpdateAsync(List entity) { return await _dal.UpdateAsync(entity); } /// /// 重写删除指定ID的数据 /// /// /// public async Task DeleteByIdAsync(object id) { return await _dal.DeleteByIdAsync(id); } /// /// 重写删除指定ID集合的数据(批量删除) /// /// /// public async Task DeleteByIdsAsync(int[] ids) { return await _dal.DeleteByIdsAsync(ids); } #endregion #region 获取缓存的所有数据========================================================== /// /// 获取缓存的所有数据 /// /// public async Task> GetCaChe() { return await _dal.GetCaChe(); } #endregion #region 重写根据条件查询分页数据 /// /// 重写根据条件查询分页数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// 是否使用WITH(NOLOCK) /// public async Task> QueryPageAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false) { return await _dal.QueryPageAsync(predicate, orderByExpression, orderByType, pageIndex, pageSize, blUseNoLock); } #endregion /// /// 通过接口更新所有快递公司信息 /// public async Task DoUpdateCompany() { var jm = new AdminUiCallBack(); var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken(); var url = $"https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/get_delivery_list?access_token={accessToken}"; var postData = new { accessToken }; var result = await url.PostJsonAsync(postData).ReceiveJson(); var bl = result != null; if (result is { errcode: 0 }) { //先清空历史表 await _dal.DeleteAsync(p => p.id > 0, true); //组装插入数据 var insertData = result.delivery_list.Select(item => new WeChatShippingDelivery() { deliveryId = item.delivery_id, deliveryName = item.delivery_name }).ToList(); //更新数据库 bl = await _dal.InsertAsync(insertData, true) > 0; } jm.data = result; jm.code = bl ? 0 : 1; jm.msg = bl ? "数据刷新成功" : "数据刷新失败"; return jm; } } }