using Infrastructure.Attribute; using System.Threading.Tasks; using ARW.Service.Api.IBusinessService.Custom.Customers; using ARW.Model.Dto.Api.Custom.Customers; using ARW.Model.Vo.Api.Custom.Customers; using ARW.Model.Models.Business.Custom.Customers; using ARW.Repository.Business.Custom.Customers; using ARW.Repository.Business.Custom.GoodsCollections; using ARW.Repository.Business.Custom.GoodsBrowsingHistorys; using Newtonsoft.Json; using Senparc.CO2NET.Extensions; namespace ARW.Service.Api.BusinessService.Custom.Customers { /// /// 小程序客户接口实现类Api /// /// @author lwh /// @date 2023-06-07 /// [AppService(ServiceType = typeof(ICustomerServiceApi), ServiceLifetime = LifeTime.Transient)] public class CustomerServiceImplApi : BaseService, ICustomerServiceApi { private readonly CustomerRepository _CustomerRepository; private readonly GoodsCollectionRepository _GoodsCollectionRepository; private readonly GoodsBrowsingHistoryRepository _GoodsBrowsingHistoryRepository; public CustomerServiceImplApi(CustomerRepository CustomerRepository, GoodsCollectionRepository goodsCollectionRepository, GoodsBrowsingHistoryRepository goodsBrowsingHistoryRepository) { this._CustomerRepository = CustomerRepository; _GoodsCollectionRepository = goodsCollectionRepository; _GoodsBrowsingHistoryRepository = goodsBrowsingHistoryRepository; } #region Api接口代码 /// /// 查询小程序客户详情(Api) /// /// /// public async Task GetCustomerDetails(CustomerQueryDtoApi parm) { var query = _CustomerRepository .Queryable() .Where(s => s.CustomerGuid == parm.CustomerGuid) .Select(s => new CustomerApiDetailsVo { CustomerId = s.CustomerId, CustomerGuid = s.CustomerGuid, CustomerXcxOpenid = s.CustomerXcxOpenid, CustomerNickname = s.CustomerNickname, CustomerMobilePhoneNumber = s.CustomerMobilePhoneNumber, CustomerAvatar = s.CustomerAvatar, CustomerGender = s.CustomerGender, CustomerType = s.CustomerType }).Take(1); var json = await query.ToJsonAsync(); if (json != "[]") { json = json.Remove(0, 1); json = json.Substring(0, json.Length - 1); var data = JsonConvert.DeserializeObject(json); // 获取收藏数量 data.CollectCount = await _GoodsCollectionRepository.CountAsync(s => s.CustomerGuid == data.CustomerGuid); // 获取历史搜索数量 data.HistoryCount = await _GoodsBrowsingHistoryRepository.CountAsync(s => s.CustomerGuid == data.CustomerGuid); json = data.ToJson(); } return json; } /// /// 编辑客户信息 /// public async Task UpdateCustomer(Customer model) { var response = await _CustomerRepository.UpdateAsync(f => new Customer { CustomerAvatar = model.CustomerAvatar, CustomerNickname = model.CustomerNickname, CustomerGender = model.CustomerGender, }, s => s.CustomerGuid == model.CustomerGuid); return "修改成功!"; } #endregion } }