diff --git a/ARW.Model/Dto/Api/ProductsInvolveds/ProductsInvolvedApiDto.cs b/ARW.Model/Dto/Api/ProductsInvolveds/ProductsInvolvedApiDto.cs
index 26d6a53..366d189 100644
--- a/ARW.Model/Dto/Api/ProductsInvolveds/ProductsInvolvedApiDto.cs
+++ b/ARW.Model/Dto/Api/ProductsInvolveds/ProductsInvolvedApiDto.cs
@@ -19,14 +19,13 @@ namespace ARW.Model.Dto.Api.ProductsInvolveds
///
- /// 涉及产品详情输入对象Api
- ///
+ /// 订阅涉及产品
/// @author lwh
/// @date 2023-11-23
///
public class ProductsInvolvedDtoApi
{
- [Required(ErrorMessage = "ProductsInvolvedGuid不能为空")]
+ [Required(ErrorMessage = "涉及产品不能为空")]
public long ProductsInvolvedGuid { get; set; }
}
diff --git a/ARW.Model/Vo/Api/ProductsInvolveds/ProductsInvolvedApiVo.cs b/ARW.Model/Vo/Api/ProductsInvolveds/ProductsInvolvedApiVo.cs
index 8318149..1f86e05 100644
--- a/ARW.Model/Vo/Api/ProductsInvolveds/ProductsInvolvedApiVo.cs
+++ b/ARW.Model/Vo/Api/ProductsInvolveds/ProductsInvolvedApiVo.cs
@@ -13,15 +13,6 @@ namespace ARW.Model.Vo.Api.ProductsInvolveds
///
public class ProductsInvolvedVoApi
{
-
-
- ///
- /// 描述 :
- ///
- [EpplusIgnore]
- public int ProductsInvolvedId { get; set; }
-
-
///
/// 描述 :
///
@@ -38,11 +29,10 @@ namespace ARW.Model.Vo.Api.ProductsInvolveds
///
- /// 描述 :排序
+ /// 描述 :是否订阅
///
- [EpplusTableColumn(Header = "排序")]
- public int ProductsInvolvedSort { get; set; }
-
+ [EpplusTableColumn(Header = "是否订阅")]
+ public bool IsSubscribe { get; set; }
}
diff --git a/ARW.Service/Api/BusinessService/ProductsInvolveds/ProductsInvolvedServiceApi.cs b/ARW.Service/Api/BusinessService/ProductsInvolveds/ProductsInvolvedServiceApi.cs
index c812024..6e45cf9 100644
--- a/ARW.Service/Api/BusinessService/ProductsInvolveds/ProductsInvolvedServiceApi.cs
+++ b/ARW.Service/Api/BusinessService/ProductsInvolveds/ProductsInvolvedServiceApi.cs
@@ -13,6 +13,7 @@ using ARW.Service.Api.IBusinessService.ProductsInvolveds;
using ARW.Model.Dto.Api.ProductsInvolveds;
using ARW.Model.Models.Business.ProductsInvolveds;
using ARW.Model.Vo.Api.ProductsInvolveds;
+using ARW.Repository.Business.SubscribeTasks;
namespace ARW.Service.Api.BusinessService.ProductsInvolveds
{
@@ -26,21 +27,23 @@ namespace ARW.Service.Api.BusinessService.ProductsInvolveds
public class ProductsInvolvedServiceImplApi : BaseService, IProductsInvolvedServiceApi
{
private readonly ProductsInvolvedRepository _ProductsInvolvedRepository;
+ private readonly SubscribeTaskRepository _SubscribeTaskRepository;
- public ProductsInvolvedServiceImplApi(ProductsInvolvedRepository ProductsInvolvedRepository)
+ public ProductsInvolvedServiceImplApi(ProductsInvolvedRepository ProductsInvolvedRepository, SubscribeTaskRepository subscribeTaskRepository)
{
this._ProductsInvolvedRepository = ProductsInvolvedRepository;
+ _SubscribeTaskRepository = subscribeTaskRepository;
}
- #region Api接口代码
-
-
- ///
+ #region Api接口代码
+
+
+ ///
/// 查询涉及产品列表(Api)
///
///
///
- public async Task> GetProductsInvolvedListApi(ProductsInvolvedQueryDtoApi parm)
+ public async Task> GetProductsInvolvedListApi(ProductsInvolvedQueryDtoApi parm, long userId)
{
//开始拼装查询条件d
var predicate = Expressionable.Create();
@@ -49,44 +52,30 @@ namespace ARW.Service.Api.BusinessService.ProductsInvolveds
var query = _ProductsInvolvedRepository
.Queryable()
.Where(predicate.ToExpression())
- .OrderBy(s => s.ProductsInvolvedSort,OrderByType.Desc)
+ .OrderBy(s => s.ProductsInvolvedSort, OrderByType.Asc)
.Select(s => new ProductsInvolvedVoApi
{
- ProductsInvolvedId = s.ProductsInvolvedId,
- ProductsInvolvedGuid = s.ProductsInvolvedGuid,
- ProductsInvolvedName = s.ProductsInvolvedName,
- ProductsInvolvedSort = s.ProductsInvolvedSort,
- });
-
+ ProductsInvolvedGuid = s.ProductsInvolvedGuid,
+ ProductsInvolvedName = s.ProductsInvolvedName
+ });
- return await query.ToPageAsync(parm);
+
+ var list = await query.ToPageAsync(parm);
+
+ foreach (var item in list.Result)
+ {
+ var task = await _SubscribeTaskRepository.GetFirstAsync(s => s.SubscribeTaskBusinessGuid == item.ProductsInvolvedGuid && s.CustomerGuid == userId);
+ if (task != null)
+ {
+ item.IsSubscribe = true;
+ }
+ }
+
+ return list;
}
- ///
- /// 查询涉及产品详情(Api)
- ///
- ///
- ///
- public async Task GetProductsInvolvedDetails(ProductsInvolvedDtoApi parm)
- {
- var query = _ProductsInvolvedRepository
- .Queryable()
- .Where(s => s.ProductsInvolvedGuid == parm.ProductsInvolvedGuid)
- .Select(s => new ProductsInvolvedApiDetailsVo
- {
- ProductsInvolvedId = s.ProductsInvolvedId,
- ProductsInvolvedGuid = s.ProductsInvolvedGuid,
- ProductsInvolvedName = s.ProductsInvolvedName,
- ProductsInvolvedSort = s.ProductsInvolvedSort,
- }).Take(1);
-
-
- return await query.ToJsonAsync();
- }
-
-
-#endregion
+ #endregion
}
}
diff --git a/ARW.Service/Api/IBusinessService/ProductsInvolveds/IProductsInvolvedServiceApi.cs b/ARW.Service/Api/IBusinessService/ProductsInvolveds/IProductsInvolvedServiceApi.cs
index 9cce15f..84b6454 100644
--- a/ARW.Service/Api/IBusinessService/ProductsInvolveds/IProductsInvolvedServiceApi.cs
+++ b/ARW.Service/Api/IBusinessService/ProductsInvolveds/IProductsInvolvedServiceApi.cs
@@ -23,14 +23,7 @@ namespace ARW.Service.Api.IBusinessService.ProductsInvolveds
///
///
///
- Task> GetProductsInvolvedListApi(ProductsInvolvedQueryDtoApi parm);
-
- ///
- /// 获取涉及产品详情(Api)
- ///
- ///
- ///
- Task GetProductsInvolvedDetails(ProductsInvolvedDtoApi parm);
+ Task> GetProductsInvolvedListApi(ProductsInvolvedQueryDtoApi parm,long userId);
}
}
diff --git a/ARW.Service/Business/BusinessService/SubscribeTasks/SubscribeTaskService.cs b/ARW.Service/Business/BusinessService/SubscribeTasks/SubscribeTaskService.cs
index e1d0adf..eb041f7 100644
--- a/ARW.Service/Business/BusinessService/SubscribeTasks/SubscribeTaskService.cs
+++ b/ARW.Service/Business/BusinessService/SubscribeTasks/SubscribeTaskService.cs
@@ -46,9 +46,9 @@ namespace ARW.Service.Business.BusinessService.SubscribeTasks
.Queryable()
.Where(predicate.ToExpression())
.Where(s => s.SubscribeTaskStatus == 0)
- .LeftJoin((s,f) => s.CustomerGuid == f.CustomerGuid)
+ .LeftJoin((s, f) => s.CustomerGuid == f.CustomerGuid)
.OrderBy(s => s.Create_time, OrderByType.Desc)
- .Select((s,f) => new SubscribeTaskVo
+ .Select((s, f) => new SubscribeTaskVo
{
SubscribeTaskId = s.SubscribeTaskId,
SubscribeTaskGuid = s.SubscribeTaskGuid,
@@ -62,6 +62,24 @@ namespace ARW.Service.Business.BusinessService.SubscribeTasks
return query.ToList();
}
+
+
+
+ public async Task AddSubscribeTask(long customerGuid, long businessGuid, int templateId)
+ {
+ var model = new SubscribeTask
+ {
+ CustomerGuid = customerGuid,
+ SubscribeTaskBusinessGuid = businessGuid,
+ SubscribeTaskType = 1,
+ SubscribeTaskId = templateId,
+ SubscribeTaskStatus = 0
+ };
+ var res = await _SubscribeTaskRepository.InsertReturnSnowflakeIdAsync(model);
+
+ return "添加成功";
+ }
+
#endregion
}
diff --git a/ARW.Service/Business/IBusinessService/SubscribeTasks/ISubscribeTaskService.cs b/ARW.Service/Business/IBusinessService/SubscribeTasks/ISubscribeTaskService.cs
index 34ed07e..ade532f 100644
--- a/ARW.Service/Business/IBusinessService/SubscribeTasks/ISubscribeTaskService.cs
+++ b/ARW.Service/Business/IBusinessService/SubscribeTasks/ISubscribeTaskService.cs
@@ -18,6 +18,17 @@ namespace ARW.Service.Business.IBusinessService.SubscribeTasks
///
///
List GetSubscribeTaskList();
-
+
+
+
+ ///
+ /// 添加订阅任务
+ ///
+ /// 客户guid
+ /// 业务guid
+ /// 模板id
+ ///
+ Task AddSubscribeTask(long customerGuid,long businessGuid,int templateId);
+
}
}
diff --git a/ARW.WebApi/Controllers/Api/ProductsInvolveds/ProductsInvolvedApiController.cs b/ARW.WebApi/Controllers/Api/ProductsInvolveds/ProductsInvolvedApiController.cs
index 56f1e10..9286e04 100644
--- a/ARW.WebApi/Controllers/Api/ProductsInvolveds/ProductsInvolvedApiController.cs
+++ b/ARW.WebApi/Controllers/Api/ProductsInvolveds/ProductsInvolvedApiController.cs
@@ -15,6 +15,9 @@ using ARW.Model.Models.Business.ProductsInvolveds;
using ARW.Model.Vo.Api.ProductsInvolveds;
using Microsoft.AspNetCore.Authorization;
using Geocoding;
+using ARW.Admin.WebApi.Framework;
+using ARW.Service.Business.IBusinessService.SubscribeTasks;
+using Senparc.Weixin.Open.WxOpenAPIs;
namespace ARW.WebApi.Controllers.Api.ProductsInvolveds
{
@@ -29,14 +32,16 @@ namespace ARW.WebApi.Controllers.Api.ProductsInvolveds
public class ProductsInvolvedApiController : BaseController
{
private readonly IProductsInvolvedServiceApi _ProductsInvolvedServiceApi;
+ private readonly ISubscribeTaskService _SubscribeTaskService;
///
/// 依赖注入
///
/// 涉及产品涉及产品Api服务
- public ProductsInvolvedApiController(IProductsInvolvedServiceApi ProductsInvolvedServiceApi)
+ public ProductsInvolvedApiController(IProductsInvolvedServiceApi ProductsInvolvedServiceApi, ISubscribeTaskService subscribeTaskService)
{
_ProductsInvolvedServiceApi = ProductsInvolvedServiceApi;
+ _SubscribeTaskService = subscribeTaskService;
}
@@ -48,33 +53,39 @@ namespace ARW.WebApi.Controllers.Api.ProductsInvolveds
[HttpGet("getProductsInvolvedList")]
public async Task GetProductsInvolvedListApi([FromQuery] ProductsInvolvedQueryDtoApi parm)
{
- var res = await _ProductsInvolvedServiceApi.GetProductsInvolvedListApi(parm);
+ var user = JwtUtil.GetLoginUser(App.HttpContext).UserId;
+ var res = await _ProductsInvolvedServiceApi.GetProductsInvolvedListApi(parm, user);
return SUCCESS(res);
}
///
- /// 获取ProductsInvolved详情(Api)
+ /// 订阅涉及产品
///
/// 查询参数
///
- [HttpGet("getProductsInvolvedDetails")]
- public async Task GetProductsInvolvedDetails([FromQuery] ProductsInvolvedDtoApi parm)
+ [HttpPost("subscribe")]
+ public async Task Subscribe([FromBody] ProductsInvolvedDtoApi parm)
{
- //if (parm == null) throw new CustomException("参数错误!");
+ // 微信通知模板Id
+ var templateId = 1;
+ var user = JwtUtil.GetLoginUser(App.HttpContext).UserId;
+ var res = await _SubscribeTaskService.AddSubscribeTask(user, parm.ProductsInvolvedGuid, templateId);
+ return SUCCESS(res);
+ }
- var res = await _ProductsInvolvedServiceApi.GetProductsInvolvedDetails(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);
- }
+ ///
+ /// 取消订阅涉及产品
+ ///
+ /// 查询参数
+ ///
+ [HttpPost("cancelSubscribe")]
+ public async Task CancelSubscribe([FromBody] ProductsInvolvedDtoApi parm)
+ {
+ // 微信通知模板Id
+ var templateId = 1;
+ var userId = JwtUtil.GetLoginUser(App.HttpContext).UserId;
+ var res = await _SubscribeTaskService.DeleteAsync(s => s.SubscribeTaskBusinessGuid == parm.ProductsInvolvedGuid && s.CustomerGuid == userId);
+ return SUCCESS("取消成功");
}
}