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": {