From 960984831e87e9a8409e51877997d0fdbe12bfec Mon Sep 17 00:00:00 2001 From: lwh <2679599887@qq.com> Date: Wed, 7 Jun 2023 18:28:53 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E4=BF=AE=E6=94=B9=E8=A7=84=E8=8C=83?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ARW.Common/AliyunMsgHelper.cs | 12 +-- .../Api/Custom/Customers/CustomerApiDto.cs | 37 +++++++ .../{ => Custom}/Customers/CustomerDto.cs | 14 ++- .../{ => Custom}/Regions/RegionDto.cs | 9 +- .../CustomerAddresses/CustomerAddress.cs | 4 +- .../{ => Custom}/Customers/Customer.cs | 8 +- .../Business/{ => Custom}/Regions/Region.cs | 4 +- .../Vo/Api/Custom/Customers/CustomerApiVo.cs | 33 +++++++ .../{ => Custom}/Customers/CustomerVo.cs | 4 +- .../Business/{ => Custom}/Regions/RegionVo.cs | 6 +- .../Business/Customers/CustomerRepository.cs | 2 +- .../Business/Regions/RegionRepository.cs | 2 +- .../Custom/Customers/CustomerServiceApi.cs | 66 +++++++++++++ .../Custom/Customers/ICustomerServiceApi.cs | 30 ++++++ .../CustomerAddressService.cs | 6 +- .../Customers/CustomerService.cs | 6 +- .../BusinessService/Regions/RegionService.cs | 6 +- .../SubscribeTasks/SubscribeTaskService.cs | 2 +- .../Customers/ICustomerService.cs | 6 +- .../Regions/IRegionService.cs | 6 +- .../Custom/Customers/CustomerApiController.cs | 60 +++++++++++ ARW.WebApi/Controllers/Api/My/MyController.cs | 92 ----------------- .../Api/Wechat/WeChatLoginController.cs | 99 ++++++++++++++++--- .../CustomerAddressController.cs | 3 +- .../Custom/Customers/CustomerController.cs | 10 +- .../Custom/Regions/RegionController.cs | 7 +- ARW.WebApi/Framework/JwtUtil.cs | 1 - ARW.WebApi/appsettings.json | 4 +- 28 files changed, 372 insertions(+), 167 deletions(-) create mode 100644 ARW.Model/Dto/Api/Custom/Customers/CustomerApiDto.cs rename ARW.Model/Dto/Business/{ => Custom}/Customers/CustomerDto.cs (92%) rename ARW.Model/Dto/Business/{ => Custom}/Regions/RegionDto.cs (82%) rename ARW.Model/Models/Business/{ => Custom}/Customers/Customer.cs (95%) rename ARW.Model/Models/Business/{ => Custom}/Regions/Region.cs (93%) create mode 100644 ARW.Model/Vo/Api/Custom/Customers/CustomerApiVo.cs rename ARW.Model/Vo/Business/{ => Custom}/Customers/CustomerVo.cs (97%) rename ARW.Model/Vo/Business/{ => Custom}/Regions/RegionVo.cs (89%) create mode 100644 ARW.Service/Api/BusinessService/Custom/Customers/CustomerServiceApi.cs create mode 100644 ARW.Service/Api/IBusinessService/Custom/Customers/ICustomerServiceApi.cs create mode 100644 ARW.WebApi/Controllers/Api/Custom/Customers/CustomerApiController.cs delete mode 100644 ARW.WebApi/Controllers/Api/My/MyController.cs diff --git a/ARW.Common/AliyunMsgHelper.cs b/ARW.Common/AliyunMsgHelper.cs index 7b4b863..5ec7bcf 100644 --- a/ARW.Common/AliyunMsgHelper.cs +++ b/ARW.Common/AliyunMsgHelper.cs @@ -15,10 +15,14 @@ using System.Collections.Generic; namespace ARW.Common { - public class AliyunMsgHelper + public static class AliyunMsgHelper { - public static void SendMsgCode(string phone) + /// + /// 发送手机验证码 + /// + /// + public static void SendPhoneMsgCode(string phone) { var accessKeyId = AppSettings.GetConfig("AARWYUN_MSG:accessKeyId"); var accessSecret = AppSettings.GetConfig("AARWYUN_MSG:accessSecret"); @@ -53,10 +57,6 @@ namespace ARW.Common { Console.WriteLine(e); } - catch (ClientException e) - { - Console.WriteLine(e); - } } } diff --git a/ARW.Model/Dto/Api/Custom/Customers/CustomerApiDto.cs b/ARW.Model/Dto/Api/Custom/Customers/CustomerApiDto.cs new file mode 100644 index 0000000..d4ddd64 --- /dev/null +++ b/ARW.Model/Dto/Api/Custom/Customers/CustomerApiDto.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using ARW.Model.Models.Business.Custom.Customers; + +namespace ARW.Model.Dto.Api.Custom.Customers +{ + + /// + /// 小程序客户查询对象Api + /// + /// @author 黎文豪 + /// @date 2023-06-07 + /// + public class CustomerQueryDtoApi : PagerInfo + { + public string CustomerXcxOpenid { get; set; } + public string CustomerNickname { get; set; } + public string CustomerMobilePhoneNumber { get; set; } + public DateTime? BeginCustomerLastLoginTime { get; set; } + public DateTime? EndCustomerLastLoginTime { get; set; } + } + + + /// + /// 小程序客户详情输入对象Api + /// + /// @author 黎文豪 + /// @date 2023-06-07 + /// + public class CustomerDtoApi + { + [Required(ErrorMessage = "CustomerGuid不能为空")] + public long CustomerGuid { get; set; } + } + +} diff --git a/ARW.Model/Dto/Business/Customers/CustomerDto.cs b/ARW.Model/Dto/Business/Custom/Customers/CustomerDto.cs similarity index 92% rename from ARW.Model/Dto/Business/Customers/CustomerDto.cs rename to ARW.Model/Dto/Business/Custom/Customers/CustomerDto.cs index ef2c75c..e640178 100644 --- a/ARW.Model/Dto/Business/Customers/CustomerDto.cs +++ b/ARW.Model/Dto/Business/Custom/Customers/CustomerDto.cs @@ -1,9 +1,7 @@ using System; -using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using ARW.Model.Models.Business.Customers; -namespace ARW.Model.Dto.Business.Customers +namespace ARW.Model.Dto.Business.Custom.Customers { /// /// 小程序客户输入对象 @@ -139,4 +137,14 @@ namespace ARW.Model.Dto.Business.Customers } + + public class SendPhoneDto + { + /// + /// 手机号 + /// + [Required(ErrorMessage = "手机号不能为空")] + public string PhoneNumber { get; set; } + } + } diff --git a/ARW.Model/Dto/Business/Regions/RegionDto.cs b/ARW.Model/Dto/Business/Custom/Regions/RegionDto.cs similarity index 82% rename from ARW.Model/Dto/Business/Regions/RegionDto.cs rename to ARW.Model/Dto/Business/Custom/Regions/RegionDto.cs index 4f74907..cde4d22 100644 --- a/ARW.Model/Dto/Business/Regions/RegionDto.cs +++ b/ARW.Model/Dto/Business/Custom/Regions/RegionDto.cs @@ -1,9 +1,6 @@ -using System; -using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using ARW.Model.Models.Business.Regions; -namespace ARW.Model.Dto.Business.Regions +namespace ARW.Model.Dto.Business.Custom.Regions { /// /// 省市区数据表输入对象 @@ -25,10 +22,10 @@ namespace ARW.Model.Dto.Business.Regions /// /// 省市区数据表查询对象 /// - public class RegionQueryDto : PagerInfo + public class RegionQueryDto : PagerInfo { public string RegionName { get; set; } - + public string ids { get; set; } } diff --git a/ARW.Model/Models/Business/Custom/CustomerAddresses/CustomerAddress.cs b/ARW.Model/Models/Business/Custom/CustomerAddresses/CustomerAddress.cs index 66bdb2b..ac2f0d4 100644 --- a/ARW.Model/Models/Business/Custom/CustomerAddresses/CustomerAddress.cs +++ b/ARW.Model/Models/Business/Custom/CustomerAddresses/CustomerAddress.cs @@ -30,7 +30,7 @@ namespace ARW.Model.Models.Business.Custom.CustomerAddresses /// 空值 : false /// [EpplusTableColumn(Header = "CustomerAddressGuid")] - [JsonConverter(typeof(ValueToStringConverter))] + [JsonConverter(typeof(ValueToStringConverter))] [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "customer_address_guid")] public long CustomerAddressGuid { get; set; } @@ -40,7 +40,7 @@ namespace ARW.Model.Models.Business.Custom.CustomerAddresses /// 空值 : false /// [EpplusTableColumn(Header = "客户guid")] - [JsonConverter(typeof(ValueToStringConverter))] + [JsonConverter(typeof(ValueToStringConverter))] [SugarColumn(ColumnName = "customer_address_customer_guid")] public long CustomerAddressCustomerGuid { get; set; } diff --git a/ARW.Model/Models/Business/Customers/Customer.cs b/ARW.Model/Models/Business/Custom/Customers/Customer.cs similarity index 95% rename from ARW.Model/Models/Business/Customers/Customer.cs rename to ARW.Model/Models/Business/Custom/Customers/Customer.cs index 9c2d241..babbc17 100644 --- a/ARW.Model/Models/Business/Customers/Customer.cs +++ b/ARW.Model/Models/Business/Custom/Customers/Customer.cs @@ -4,7 +4,7 @@ using SqlSugar; using OfficeOpenXml.Attributes; using Newtonsoft.Json; -namespace ARW.Model.Models.Business.Customers +namespace ARW.Model.Models.Business.Custom.Customers { /// /// 小程序客户,数据实体对象 @@ -30,7 +30,7 @@ namespace ARW.Model.Models.Business.Customers /// 空值 : false /// [EpplusTableColumn(Header = "CustomerGuid")] - [JsonConverter(typeof(ValueToStringConverter))] + [JsonConverter(typeof(ValueToStringConverter))] [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "customer_guid")] public long CustomerGuid { get; set; } @@ -67,7 +67,7 @@ namespace ARW.Model.Models.Business.Customers /// 空值 : true /// [EpplusTableColumn(Header = "默认收货地址guid")] - [JsonConverter(typeof(ValueToStringConverter))] + [JsonConverter(typeof(ValueToStringConverter))] [SugarColumn(ColumnName = "customer_default_address_guid")] public long? CustomerDefaultAddressGuid { get; set; } @@ -77,7 +77,7 @@ namespace ARW.Model.Models.Business.Customers /// 空值 : true /// [EpplusTableColumn(Header = "会员等级guid")] - [JsonConverter(typeof(ValueToStringConverter))] + [JsonConverter(typeof(ValueToStringConverter))] [SugarColumn(ColumnName = "customer_member_level_guid")] public long? CustomerMemberLevelGuid { get; set; } diff --git a/ARW.Model/Models/Business/Regions/Region.cs b/ARW.Model/Models/Business/Custom/Regions/Region.cs similarity index 93% rename from ARW.Model/Models/Business/Regions/Region.cs rename to ARW.Model/Models/Business/Custom/Regions/Region.cs index 097c3d2..6817067 100644 --- a/ARW.Model/Models/Business/Regions/Region.cs +++ b/ARW.Model/Models/Business/Custom/Regions/Region.cs @@ -4,7 +4,7 @@ using SqlSugar; using OfficeOpenXml.Attributes; using Newtonsoft.Json; -namespace ARW.Model.Models.Business.Regions +namespace ARW.Model.Models.Business.Custom.Regions { /// /// 省市区数据表,数据实体对象 @@ -65,7 +65,7 @@ namespace ARW.Model.Models.Business.Regions - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] [SugarColumn(IsIgnore = true)] public List Children { get; set; } } diff --git a/ARW.Model/Vo/Api/Custom/Customers/CustomerApiVo.cs b/ARW.Model/Vo/Api/Custom/Customers/CustomerApiVo.cs new file mode 100644 index 0000000..ccd24e3 --- /dev/null +++ b/ARW.Model/Vo/Api/Custom/Customers/CustomerApiVo.cs @@ -0,0 +1,33 @@ +using Newtonsoft.Json; +using OfficeOpenXml.Attributes; +using SqlSugar; +using System; + +namespace ARW.Model.Vo.Api.Custom.Customers +{ + + /// + /// 小程序客户详情展示对象Api + /// + public class CustomerApiDetailsVo + { + [EpplusIgnore] + public int CustomerId { get; set; } + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusIgnore] + public long CustomerGuid { get; set; } + [EpplusTableColumn(Header = "小程序openid")] + public string CustomerXcxOpenid { get; set; } + [EpplusTableColumn(Header = "昵称")] + public string CustomerNickname { get; set; } + [EpplusTableColumn(Header = "手机号")] + public string CustomerMobilePhoneNumber { get; set; } + [EpplusTableColumn(Header = "头像")] + public string CustomerAvatar { get; set; } + [EpplusTableColumn(Header = "性别")] + public int CustomerGender { get; set; } + + //[EpplusTableColumn(Header = "可用积分")] + + } +} diff --git a/ARW.Model/Vo/Business/Customers/CustomerVo.cs b/ARW.Model/Vo/Business/Custom/Customers/CustomerVo.cs similarity index 97% rename from ARW.Model/Vo/Business/Customers/CustomerVo.cs rename to ARW.Model/Vo/Business/Custom/Customers/CustomerVo.cs index 3aca6b8..5343bbb 100644 --- a/ARW.Model/Vo/Business/Customers/CustomerVo.cs +++ b/ARW.Model/Vo/Business/Custom/Customers/CustomerVo.cs @@ -3,7 +3,7 @@ using OfficeOpenXml.Attributes; using SqlSugar; using System; -namespace ARW.Model.Vo.Business.Customers +namespace ARW.Model.Vo.Business.Custom.Customers { /// /// 小程序客户展示对象 @@ -26,7 +26,7 @@ namespace ARW.Model.Vo.Business.Customers /// 描述 : /// [JsonConverter(typeof(ValueToStringConverter))] - [EpplusIgnore] + [EpplusIgnore] public long CustomerGuid { get; set; } diff --git a/ARW.Model/Vo/Business/Regions/RegionVo.cs b/ARW.Model/Vo/Business/Custom/Regions/RegionVo.cs similarity index 89% rename from ARW.Model/Vo/Business/Regions/RegionVo.cs rename to ARW.Model/Vo/Business/Custom/Regions/RegionVo.cs index 6355b38..aab2bcc 100644 --- a/ARW.Model/Vo/Business/Regions/RegionVo.cs +++ b/ARW.Model/Vo/Business/Custom/Regions/RegionVo.cs @@ -1,11 +1,9 @@ using Newtonsoft.Json; using OfficeOpenXml.Attributes; using SqlSugar; -using System; -using ARW.Model.Models.Business.Regions; using System.Collections.Generic; -namespace ARW.Model.Vo.Business.Regions +namespace ARW.Model.Vo.Business.Custom.Regions { /// /// 省市区数据表展示对象 @@ -49,7 +47,7 @@ namespace ARW.Model.Vo.Business.Regions public string ParentName { get; set; } [EpplusIgnore] - [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] [SugarColumn(IsIgnore = true)] public List Children { get; set; } } diff --git a/ARW.Repository/Business/Customers/CustomerRepository.cs b/ARW.Repository/Business/Customers/CustomerRepository.cs index 6ffe61c..fee4b2a 100644 --- a/ARW.Repository/Business/Customers/CustomerRepository.cs +++ b/ARW.Repository/Business/Customers/CustomerRepository.cs @@ -1,7 +1,7 @@ using System; using Infrastructure.Attribute; using ARW.Repository.System; -using ARW.Model.Models.Business.Customers; +using ARW.Model.Models.Business.Custom.Customers; namespace ARW.Repository.Business.Customers { diff --git a/ARW.Repository/Business/Regions/RegionRepository.cs b/ARW.Repository/Business/Regions/RegionRepository.cs index d420e67..054b74d 100644 --- a/ARW.Repository/Business/Regions/RegionRepository.cs +++ b/ARW.Repository/Business/Regions/RegionRepository.cs @@ -1,7 +1,7 @@ using System; using Infrastructure.Attribute; using ARW.Repository.System; -using ARW.Model.Models.Business.Regions; +using ARW.Model.Models.Business.Custom.Regions; namespace ARW.Repository.Business.Regions { diff --git a/ARW.Service/Api/BusinessService/Custom/Customers/CustomerServiceApi.cs b/ARW.Service/Api/BusinessService/Custom/Customers/CustomerServiceApi.cs new file mode 100644 index 0000000..1459b04 --- /dev/null +++ b/ARW.Service/Api/BusinessService/Custom/Customers/CustomerServiceApi.cs @@ -0,0 +1,66 @@ +using Infrastructure.Attribute; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using ARW.Model; +using ARW.Repository; +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.Customers; + +namespace ARW.Service.Api.BusinessService.Custom.Customers +{ + /// + /// 小程序客户接口实现类Api + /// + /// @author 黎文豪 + /// @date 2023-06-07 + /// + [AppService(ServiceType = typeof(ICustomerServiceApi), ServiceLifetime = LifeTime.Transient)] + public class CustomerServiceImplApi : BaseService, ICustomerServiceApi + { + private readonly CustomerRepository _CustomerRepository; + + public CustomerServiceImplApi(CustomerRepository CustomerRepository) + { + this._CustomerRepository = CustomerRepository; + } + + #region Api接口代码 + + + /// + /// 查询小程序客户详情(Api) + /// + /// + /// + public Task GetCustomerDetails(CustomerDtoApi 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, + }).Take(1); + + + return query.ToJsonAsync(); + } + + + #endregion + + } +} diff --git a/ARW.Service/Api/IBusinessService/Custom/Customers/ICustomerServiceApi.cs b/ARW.Service/Api/IBusinessService/Custom/Customers/ICustomerServiceApi.cs new file mode 100644 index 0000000..f56b90b --- /dev/null +++ b/ARW.Service/Api/IBusinessService/Custom/Customers/ICustomerServiceApi.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ARW.Model; +using ARW.Model.Dto.Api.Custom.Customers; +using ARW.Model.Models.Business.Custom.Customers; +using ARW.Model.Vo.Api.Custom.Customers; + +namespace ARW.Service.Api.IBusinessService.Custom.Customers +{ + /// + /// 小程序客户接口类Api + /// + /// @author 黎文豪 + /// @date 2023-06-07 + /// + public interface ICustomerServiceApi : IBaseService + { + + /// + /// 获取小程序客户详情(Api) + /// + /// + /// + Task GetCustomerDetails(CustomerDtoApi parm); + + } +} diff --git a/ARW.Service/Business/BusinessService/Custom/CustomerAddresses/CustomerAddressService.cs b/ARW.Service/Business/BusinessService/Custom/CustomerAddresses/CustomerAddressService.cs index ab2b324..e06a573 100644 --- a/ARW.Service/Business/BusinessService/Custom/CustomerAddresses/CustomerAddressService.cs +++ b/ARW.Service/Business/BusinessService/Custom/CustomerAddresses/CustomerAddressService.cs @@ -12,11 +12,11 @@ using ARW.Repository; using ARW.Repository.Business.Custom.CustomerAddresses; using ARW.Service.Business.IBusinessService.Custom.CustomerAddresses; using ARW.Model.Dto.Business.Custom.CustomerAddresses; -using ARW.Model.Models.Business.Custom.CustomerAddresses; using ARW.Model.Vo.Business.Custom.CustomerAddresses; using ARW.Repository.Business.Customers; -using ARW.Model.Models.Business.Customers; -using ARW.Model.Models.Business.Regions; +using ARW.Model.Models.Business.Custom.CustomerAddresses; +using ARW.Model.Models.Business.Custom.Regions; +using ARW.Model.Models.Business.Custom.Customers; namespace ARW.Service.Business.BusinessService.Custom.CustomerAddresses { diff --git a/ARW.Service/Business/BusinessService/Customers/CustomerService.cs b/ARW.Service/Business/BusinessService/Customers/CustomerService.cs index bac0eab..2b0143d 100644 --- a/ARW.Service/Business/BusinessService/Customers/CustomerService.cs +++ b/ARW.Service/Business/BusinessService/Customers/CustomerService.cs @@ -11,9 +11,9 @@ 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; +using ARW.Model.Dto.Business.Custom.Customers; +using ARW.Model.Models.Business.Custom.Customers; +using ARW.Model.Vo.Business.Custom.Customers; namespace ARW.Service.Business.BusinessService.Customers { diff --git a/ARW.Service/Business/BusinessService/Regions/RegionService.cs b/ARW.Service/Business/BusinessService/Regions/RegionService.cs index 367f14d..eec0aa0 100644 --- a/ARW.Service/Business/BusinessService/Regions/RegionService.cs +++ b/ARW.Service/Business/BusinessService/Regions/RegionService.cs @@ -11,9 +11,9 @@ using ARW.Model; using ARW.Repository; using ARW.Repository.Business.Regions; using ARW.Service.Business.IBusinessService.Regions; -using ARW.Model.Dto.Business.Regions; -using ARW.Model.Models.Business.Regions; -using ARW.Model.Vo.Business.Regions; +using ARW.Model.Dto.Business.Custom.Regions; +using ARW.Model.Models.Business.Custom.Regions; +using ARW.Model.Vo.Business.Custom.Regions; namespace ARW.Service.Business.BusinessService.Regions { diff --git a/ARW.Service/Business/BusinessService/SubscribeTasks/SubscribeTaskService.cs b/ARW.Service/Business/BusinessService/SubscribeTasks/SubscribeTaskService.cs index 55142f5..e1d0adf 100644 --- a/ARW.Service/Business/BusinessService/SubscribeTasks/SubscribeTaskService.cs +++ b/ARW.Service/Business/BusinessService/SubscribeTasks/SubscribeTaskService.cs @@ -13,7 +13,7 @@ using ARW.Service.Business.IBusinessService.SubscribeTasks; using ARW.Model.Dto.Business.SubscribeTasks; using ARW.Model.Models.Business.SubscribeTasks; using ARW.Model.Vo.Business.SubscribeTasks; -using ARW.Model.Models.Business.Customers; +using ARW.Model.Models.Business.Custom.Customers; namespace ARW.Service.Business.BusinessService.SubscribeTasks { diff --git a/ARW.Service/Business/IBusinessService/Customers/ICustomerService.cs b/ARW.Service/Business/IBusinessService/Customers/ICustomerService.cs index 5889e61..567e428 100644 --- a/ARW.Service/Business/IBusinessService/Customers/ICustomerService.cs +++ b/ARW.Service/Business/IBusinessService/Customers/ICustomerService.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using ARW.Model; -using ARW.Model.Dto.Business.Customers; -using ARW.Model.Models.Business.Customers; -using ARW.Model.Vo.Business.Customers; +using ARW.Model.Dto.Business.Custom.Customers; +using ARW.Model.Models.Business.Custom.Customers; +using ARW.Model.Vo.Business.Custom.Customers; namespace ARW.Service.Business.IBusinessService.Customers { diff --git a/ARW.Service/Business/IBusinessService/Regions/IRegionService.cs b/ARW.Service/Business/IBusinessService/Regions/IRegionService.cs index d8e05d1..6222047 100644 --- a/ARW.Service/Business/IBusinessService/Regions/IRegionService.cs +++ b/ARW.Service/Business/IBusinessService/Regions/IRegionService.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using ARW.Model; -using ARW.Model.Dto.Business.Regions; -using ARW.Model.Models.Business.Regions; -using ARW.Model.Vo.Business.Regions; +using ARW.Model.Dto.Business.Custom.Regions; +using ARW.Model.Models.Business.Custom.Regions; +using ARW.Model.Vo.Business.Custom.Regions; namespace ARW.Service.Business.IBusinessService.Regions { diff --git a/ARW.WebApi/Controllers/Api/Custom/Customers/CustomerApiController.cs b/ARW.WebApi/Controllers/Api/Custom/Customers/CustomerApiController.cs new file mode 100644 index 0000000..b4cf683 --- /dev/null +++ b/ARW.WebApi/Controllers/Api/Custom/Customers/CustomerApiController.cs @@ -0,0 +1,60 @@ +using Microsoft.AspNetCore.Mvc; +using ARW.Admin.WebApi.Filters; +using ARW.Admin.WebApi.Controllers; +using ARW.Model.Dto.Api.Custom.Customers; +using ARW.Service.Api.IBusinessService.Custom.Customers; +using ARW.Model.Vo.Api.Custom.Customers; +using Geocoding; +using Infrastructure; + +namespace ARW.WebApi.Controllers.Api.Custom.Customers +{ + /// + /// 小程序客户控制器Api + /// + /// @author 黎文豪 + /// @date 2023-06-07 + /// + [Verify] + [Route("api/[controller]")] + public class CustomerApiController : BaseController + { + private readonly ICustomerServiceApi _CustomerServiceApi; + + /// + /// 依赖注入 + /// + /// 小程序客户小程序客户Api服务 + public CustomerApiController(ICustomerServiceApi CustomerServiceApi) + { + _CustomerServiceApi = CustomerServiceApi; + } + + + /// + /// 获取Customer详情(Api) + /// + /// 查询参数 + /// + [HttpGet("getCustomerDetails")] + public async Task GetCustomerDetails([FromQuery] CustomerDtoApi parm) + { + if (parm == null) throw new CustomException("参数错误!"); + + var res = await _CustomerServiceApi.GetCustomerDetails(parm); + + if (res != "[]") + { + res = res.Remove(0, 1); + res = res.Substring(0, res.Length - 1); + var data = res.FromJSON(); + return SUCCESS(data); + } + else + { + return SUCCESS(res); + } + } + + } +} diff --git a/ARW.WebApi/Controllers/Api/My/MyController.cs b/ARW.WebApi/Controllers/Api/My/MyController.cs deleted file mode 100644 index bc7938e..0000000 --- a/ARW.WebApi/Controllers/Api/My/MyController.cs +++ /dev/null @@ -1,92 +0,0 @@ -using ARW.Admin.WebApi.Controllers; -using ARW.Admin.WebApi.Extensions; -using ARW.Admin.WebApi.Filters; -using ARW.Common; -using ARW.Model.Dto.Business.Customers; -using ARW.Model.Models.Business.Customers; -using ARW.Service.Business.IBusinessService.Customers; -using Infrastructure; -using Infrastructure.Attribute; -using Infrastructure.Enums; -using Infrastructure.Model; -using Mapster; -using Microsoft.AspNetCore.Mvc; - -namespace ARW.WebApi.Controllers.Api.My -{ - /// - /// 我的控制器 - /// - [Verify] - [Route("api/[controller]")] - public class MyController : BaseController - { - - private readonly ICustomerService _CustomerService; - - public MyController(ICustomerService customerService) - { - _CustomerService = customerService; - } - - - /// - /// 获取用户信息(通过Guid) - /// - /// 查询参数 - /// - [HttpGet("getCustomer")] - public IActionResult GetCustomer([FromQuery] CustomerDto parm) - { - var res = _CustomerService.GetFirst(s => s.CustomerXcxOpenid == parm.CustomerXcxOpenid); - if (res == null) - throw new CustomException("用户不存在"); - - return SUCCESS(res); - } - - /// - /// 添加或修改小程序客户 - /// - /// - /// - [HttpPost("addOrUpdateCustomer")] - [ActionPermissionFilter(Permission = "business:customer:addOrUpdate")] - [Log(Title = "添加或修改小程序客户", BusinessType = BusinessType.ADDORUPDATE)] - public IActionResult AddOrUpdateCustomer([FromBody] CustomerDto parm) - { - if (parm == null) { throw new CustomException("请求参数错误"); } - - var updateModal = parm.Adapt().ToUpdate(HttpContext); - var addModal = parm.Adapt().ToCreate(HttpContext); - - if (parm.CustomerId != 0) - { - var response = _CustomerService.UpdateAsync(updateModal); - return SUCCESS("修改成功!"); - } - else - { - var response = _CustomerService.InsertReturnSnowflakeIdAsync(addModal); - return SUCCESS("添加成功!"); - } - } - - /// - /// 删除小程序客户 - /// - /// - [HttpDelete("{ids}")] - [ActionPermissionFilter(Permission = "business:customer:delete")] - [Log(Title = "小程序客户删除", BusinessType = BusinessType.DELETE)] - public IActionResult Delete(string ids) - { - long[] idsArr = Tools.SpitLongArrary(ids); - if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } - var response = _CustomerService.Delete(idsArr); - return ToResponse(response, "删除成功!"); - } - - } - -} diff --git a/ARW.WebApi/Controllers/Api/Wechat/WeChatLoginController.cs b/ARW.WebApi/Controllers/Api/Wechat/WeChatLoginController.cs index 762e4ee..d740f81 100644 --- a/ARW.WebApi/Controllers/Api/Wechat/WeChatLoginController.cs +++ b/ARW.WebApi/Controllers/Api/Wechat/WeChatLoginController.cs @@ -1,8 +1,6 @@ using ARW.Admin.WebApi.Controllers; using ARW.Admin.WebApi.Extensions; using ARW.Admin.WebApi.Framework; -using ARW.Model.Dto.Business.Customers; -using ARW.Model.Models.Business.Customers; using ARW.Model.System; using ARW.Service.Business.IBusinessService.Customers; using Infrastructure.WeChat.Login; @@ -10,13 +8,14 @@ using Infrastructure; using Mapster; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; -using System.Net; -using Senparc.Weixin.WxOpen.AdvancedAPIs.WxApp.Business.JsonResult; -using Senparc.Weixin.WxOpen; -using Senparc.Weixin; -using Senparc.Weixin.CommonAPIs; -using Senparc.Weixin.Open.WxOpenAPIs; using Senparc.Weixin.WxOpen.AdvancedAPIs.WxApp; +using ARW.Common; +using ARW.Model.System.Dto; +using SixLabors.Shapes; +using ARW.Model.Dto.Business.Custom.Customers; +using ARW.Model.Models.Business.Custom.Customers; +using ARW.Service.System; +using Infrastructure.Attribute; namespace ARW.WebApi.Controllers.Api.Wechat { @@ -54,11 +53,14 @@ namespace ARW.WebApi.Controllers.Api.Wechat } var addModal = parm.Adapt().ToCreate(HttpContext); - var user = await _customerService.GetFirstAsync(s => s.CustomerXcxOpenid == parm.CustomerXcxOpenid); + addModal.CustomerMobilePhoneNumber = await GetUserPhoneNumber(parm.Code); + var user = await _customerService.GetFirstAsync(s => s.CustomerMobilePhoneNumber == addModal.CustomerMobilePhoneNumber); if (user == null) { - addModal.CustomerMobilePhoneNumber = await GetUserPhoneNumber(parm.Code); + addModal.CustomerAvatar = "https://cdn-we-retail.ym.tencent.com/miniapp/usercenter/icon-user-center-avatar@2x.png"; + addModal.CustomerNickname = "用户" + addModal.CustomerMobilePhoneNumber.Substring(addModal.CustomerMobilePhoneNumber.Length - 4); ; + addModal.CustomerLastLoginTime = DateTime.Now; var response = await _customerService.InsertReturnSnowflakeIdAsync(addModal); if (response == 0) { @@ -76,11 +78,35 @@ namespace ARW.WebApi.Controllers.Api.Wechat IsApi = true, }; var jwt = JwtUtil.GenerateJwtToken(JwtUtil.AddClaims(loginUser), _jwtSettings.JwtSettings); - return SUCCESS(jwt); + var dic = new Dictionary + { + { "jwt", jwt }, + { "user", user } + }; + + return SUCCESS(dic); } + /// + /// 退出登录 + /// + /// + [Log(Title = "退出登录")] + [HttpPost("logout")] + public IActionResult LogOut() + { + var userid = HttpContext.GetUId(); + var name = HttpContext.GetName(); + + CacheService.RemoveUserPerms(GlobalConstant.UserPermKEY + userid); + return SUCCESS(new { name, id = userid }); + } + + + + /// /// 获取用户手机号 /// @@ -98,7 +124,7 @@ namespace ARW.WebApi.Controllers.Api.Wechat } else { - throw new Exception("获取手机号报错:"+ result); + throw new Exception("获取手机号报错:" + result); } } catch (Exception ex) @@ -108,5 +134,54 @@ namespace ARW.WebApi.Controllers.Api.Wechat } + /// + /// 发送手机验证码 + /// + /// + /// + [HttpPost("sendPhoneCode")] + public IActionResult PostEmailCode([FromBody] SendPhoneDto dto) + { + //var code = Tools.GetNumCode(4); + AliyunMsgHelper.SendPhoneMsgCode(dto.PhoneNumber); + + //CacheHelper.SetCache(user.UserId.ToString() + "emailCode", code, 5); + + //var emailCode = CacheHelper.GetCache(user.UserId.ToString() + "emailCode"); + //Console.WriteLine(user.UserId.ToString() + ":" + emailCode); + + return SUCCESS("发送成功!"); + } + + /// + /// 通过邮箱修改密码 + /// + /// + /// + [HttpPost("changePwByEmail")] + public IActionResult ChangePwByEmail([FromBody] ChangePwByEmailDto dto) + { + //var user = sysUserService.SelectUserByEmail(dto.Email); + //var emailCode = (string)CacheHelper.GetCache(user.UserId.ToString() + "emailCode"); + + //if (emailCode == null) + //{ + // throw new CustomException("验证码已过期,请重新获取!"); + //} + + //if (dto.code == emailCode) + //{ + // sysUserService.ResetPwd(user.UserId, dto.Password); + // return SUCCESS("密码重置成功"); + //} + //else + //{ + // throw new CustomException("验证码错误,请重试!"); + //} + return SUCCESS(""); + } + + + } } diff --git a/ARW.WebApi/Controllers/Business/Custom/CustomerAddresses/CustomerAddressController.cs b/ARW.WebApi/Controllers/Business/Custom/CustomerAddresses/CustomerAddressController.cs index e1591ea..3b77ec8 100644 --- a/ARW.WebApi/Controllers/Business/Custom/CustomerAddresses/CustomerAddressController.cs +++ b/ARW.WebApi/Controllers/Business/Custom/CustomerAddresses/CustomerAddressController.cs @@ -11,11 +11,10 @@ using ARW.Common; using ARW.Model.Dto.Business.Custom.CustomerAddresses; using ARW.Service.Business.IBusinessService.Custom.CustomerAddresses; using ARW.Admin.WebApi.Controllers; -using ARW.Model.Models.Business.Custom.CustomerAddresses; using ARW.Model.Vo.Business.Custom.CustomerAddresses; using Microsoft.AspNetCore.Authorization; using ARW.Admin.WebApi.Framework; - +using ARW.Model.Models.Business.Custom.CustomerAddresses; namespace ARW.WebApi.Controllers.Business.Custom.CustomerAddresses { diff --git a/ARW.WebApi/Controllers/Business/Custom/Customers/CustomerController.cs b/ARW.WebApi/Controllers/Business/Custom/Customers/CustomerController.cs index f7d2be5..be2fb8a 100644 --- a/ARW.WebApi/Controllers/Business/Custom/Customers/CustomerController.cs +++ b/ARW.WebApi/Controllers/Business/Custom/Customers/CustomerController.cs @@ -3,19 +3,15 @@ using Infrastructure.Attribute; using Infrastructure.Enums; using Infrastructure.Model; using Mapster; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using ARW.Admin.WebApi.Extensions; using ARW.Admin.WebApi.Filters; using ARW.Common; -using ARW.Model.Dto.Business.Customers; using ARW.Service.Business.IBusinessService.Customers; using ARW.Admin.WebApi.Controllers; -using ARW.Model.Models.Business.Customers; -using ARW.Model.Vo.Business.Customers; -using Microsoft.AspNetCore.Authorization; -using ARW.Admin.WebApi.Framework; - +using ARW.Model.Models.Business.Custom.Customers; +using ARW.Model.Vo.Business.Custom.Customers; +using ARW.Model.Dto.Business.Custom.Customers; namespace ARW.WebApi.Controllers.Business.Custom.Customers { diff --git a/ARW.WebApi/Controllers/Business/Custom/Regions/RegionController.cs b/ARW.WebApi/Controllers/Business/Custom/Regions/RegionController.cs index 3f4f4ab..db0133a 100644 --- a/ARW.WebApi/Controllers/Business/Custom/Regions/RegionController.cs +++ b/ARW.WebApi/Controllers/Business/Custom/Regions/RegionController.cs @@ -8,14 +8,13 @@ using Microsoft.AspNetCore.Mvc; using ARW.Admin.WebApi.Extensions; using ARW.Admin.WebApi.Filters; using ARW.Common; -using ARW.Model.Dto.Business.Regions; using ARW.Service.Business.IBusinessService.Regions; using ARW.Admin.WebApi.Controllers; -using ARW.Model.Models.Business.Regions; -using ARW.Model.Vo.Business.Regions; using Microsoft.AspNetCore.Authorization; using ARW.Admin.WebApi.Framework; - +using ARW.Model.Dto.Business.Custom.Regions; +using ARW.Model.Models.Business.Custom.Regions; +using ARW.Model.Vo.Business.Custom.Regions; namespace ARW.WebApi.Controllers.Business.Custom.Regions { diff --git a/ARW.WebApi/Framework/JwtUtil.cs b/ARW.WebApi/Framework/JwtUtil.cs index 37d38a0..c25e703 100644 --- a/ARW.WebApi/Framework/JwtUtil.cs +++ b/ARW.WebApi/Framework/JwtUtil.cs @@ -8,7 +8,6 @@ using System.Text; using ARW.Admin.WebApi.Extensions; using ARW.Model.System; using ARW.Service.System; -using ARW.Model.Models.Business.Customers; namespace ARW.Admin.WebApi.Framework { diff --git a/ARW.WebApi/appsettings.json b/ARW.WebApi/appsettings.json index 9186c44..9340c03 100644 --- a/ARW.WebApi/appsettings.json +++ b/ARW.WebApi/appsettings.json @@ -36,8 +36,8 @@ //阿里云短信配置 "AARWYUN_MSG": { "signName": "阿里云短信测试", - "accessKeyId": "LTAI5tLGSBenBxmdvZB4TpVg", - "accessSecret": "OR1kPyaOAP7q4zEtsmEqepZcyWG1yh", + "accessKeyId": "LTAI5tDcXaqVHv1z7uqM4zSz", + "accessSecret": "3ggZMDx8ardkSbEJSIybIsqwk0z9tm", "templateCode": "SMS_154950909" }, "gen": {