using Infrastructure.Attribute; using Microsoft.AspNetCore.Http; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Infrastructure; using ARW.Model; using ARW.Repository; using ARW.Repository.Business.Customers; using ARW.Service.Business.IBusinessService.Customers; using ARW.Model.Dto.Business.Customers; using ARW.Model.Models.Business.Customers; using ARW.Model.Vo.Business.Customers; namespace ARW.Service.Business.BusinessService.Customers { /// /// 小程序客户接口实现类 /// /// @author 黎文豪 /// @date 2023-06-05 /// [AppService(ServiceType = typeof(ICustomerService), ServiceLifetime = LifeTime.Transient)] public class CustomerServiceImpl : BaseService, ICustomerService { private readonly CustomerRepository _CustomerRepository; public CustomerServiceImpl(CustomerRepository CustomerRepository) { this._CustomerRepository = CustomerRepository; } #region 业务逻辑代码 /// /// 查询小程序客户分页列表 /// public Task> GetCustomerList(CustomerQueryDto parm) { //开始拼装查询条件d var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.CustomerXcxOpenid), it => it.CustomerXcxOpenid == parm.CustomerXcxOpenid); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.CustomerNickname), it => it.CustomerNickname.Contains(parm.CustomerNickname)); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.CustomerMobilePhoneNumber), it => it.CustomerMobilePhoneNumber.Contains(parm.CustomerMobilePhoneNumber)); predicate = predicate.AndIF(parm.BeginTime != null && parm.EndTime != null, it => it.CustomerLastLoginTime >= parm.BeginTime && it.CustomerLastLoginTime <= parm.EndTime); var query = _CustomerRepository .Queryable() .Where(predicate.ToExpression()) .OrderBy(s => s.Create_time,OrderByType.Desc) .Select(s => new CustomerVo { CustomerId = s.CustomerId, CustomerGuid = s.CustomerGuid, CustomerXcxOpenid = s.CustomerXcxOpenid, CustomerNickname = s.CustomerNickname, CustomerMobilePhoneNumber = s.CustomerMobilePhoneNumber, CustomerAvatar = s.CustomerAvatar, CustomerGender = s.CustomerGender, CustomerAvailableBalance = s.CustomerAvailableBalance, CustomerAvailablePoints = s.CustomerAvailablePoints, CustomerTotalPaymentAmount = s.CustomerTotalPaymentAmount, CustomerActualConsumptionAmount = s.CustomerActualConsumptionAmount, CustomerLastLoginTime = s.CustomerLastLoginTime, }); return query.ToPageAsync(parm); } /// /// 添加或修改小程序客户 /// public async Task AddOrUpdateCustomer(Customer model) { if (model.CustomerId != 0) { var response = await _CustomerRepository.UpdateAsync(model); return "修改成功!"; } else { var response = await _CustomerRepository.InsertReturnSnowflakeIdAsync(model); return "添加成功!"; } } #region Excel处理 /// /// Excel数据导出处理 /// public async Task> HandleExportData(List data) { return data; } #endregion #endregion } }