From fd3e97754de475f094fb59c83b3a469c9004ad3b Mon Sep 17 00:00:00 2001
From: zhengyuxuan <zhengyuxuan1995>
Date: 星期二, 01 四月 2025 15:41:14 +0800
Subject: [PATCH] Merge branch 'dev-lifepay-v1.3' of http://120.26.58.240:8888/r/LifePaymentApi into dev-lifepay-v1.3

---
 LifePayment/LifePayment.Application/User/UserRoleService.cs |   77 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 74 insertions(+), 3 deletions(-)

diff --git a/LifePayment/LifePayment.Application/User/UserRoleService.cs b/LifePayment/LifePayment.Application/User/UserRoleService.cs
index 057e212..6a93332 100644
--- a/LifePayment/LifePayment.Application/User/UserRoleService.cs
+++ b/LifePayment/LifePayment.Application/User/UserRoleService.cs
@@ -1,5 +1,7 @@
 锘縰sing LifePayment.Application.Contracts;
+using LifePayment.Domain;
 using LifePayment.Domain.Models;
+using LifePayment.Domain.Shared;
 using Microsoft.EntityFrameworkCore;
 using System;
 using System.Collections.Generic;
@@ -8,7 +10,10 @@
 using Volo.Abp;
 using Volo.Abp.Application.Services;
 using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Identity;
+using Z.EntityFramework.Plus;
 using ZeroD.Util;
+using static LifePayment.Domain.Shared.LifePaymentConstant;
 
 namespace HumanResourcesServices.Application
 {
@@ -16,21 +21,30 @@
     {
         private readonly IRepository<User, Guid> _userRepository;
         private readonly IRepository<Role, Guid> _roleRepository;
+        private readonly IRepository<LifePayChannles, Guid> _channleRepository;
         private readonly IRepository<UserRole, Guid> _userRoleRep;
+        private readonly IRepository<UserChannle, Guid> _userChannleRep;
+        private readonly IIdentityUserAppService _identityUserService;
 
         public UserRoleService(
                IRepository<User, Guid> userRepository,
                IRepository<Role, Guid> roleRepository,
-               IRepository<UserRole, Guid> userRoleRep)
+               IRepository<LifePayChannles, Guid> channleRepository,
+               IRepository<UserRole, Guid> userRoleRep,
+               IRepository<UserChannle, Guid> userChannleRep,
+               IIdentityUserAppService identityUserService)
         {
             _userRepository = userRepository;
             _roleRepository = roleRepository;
+            _channleRepository = channleRepository;
             _userRoleRep = userRoleRep;
+            _userChannleRep = userChannleRep;
+            _identityUserService = identityUserService;
         }
 
         public async Task<PageOutput<UserDto>> GetBackClientUsers(GetBackClientUsersInput input)
         {
-            var query = _userRepository.Where(s => s.ClientId == Constant.ClientType.Back).Include(i => i.UserRoles).Select(u => new UserDto
+            var query = _userRepository.Where(s => s.ClientId == Constant.ClientType.Back).Include(i => i.UserRoles).Include(i => i.UserChannle).Select(u => new UserDto
             {
                 Id = u.Id,
                 UserName = u.UserName,
@@ -43,6 +57,14 @@
                         {
                             Id = r.Id,
                             Name = r.Name,
+                        },
+                Channles = from uc in u.UserChannle
+                           from c in _channleRepository.Where(s => s.ChannlesNum == uc.ChannleId)
+                        select new UserChannleDto
+                        {
+                            Id = c.Id,
+                            ChannlesNum = c.ChannlesNum,
+                            Name = c.ChannlesName,
                         },
                 Remark = u.Remark,
                 CompanyOrgId = u.CompanyOrgId,
@@ -77,9 +99,52 @@
             entity.Remark = input.Remark;
             entity.DepartmentOrgId = input.DepartmentOrgId;
             entity.CompanyOrgId = input.CompanyOrgId;
+
+            var userchannle = await _userChannleRep.Where(s => s.UserId == input.Id).DeleteAsync();
+            List<UserChannle> userChannles = new List<UserChannle>();
+            foreach (var item in input.ChannlesId)
+            {
+                var channleNum = item;
+                if (IsGuid(channleNum))
+                {
+                    channleNum = await _channleRepository.Where(x => x.Id == Guid.Parse(item)).Select(s => s.ChannlesNum).FirstOrDefaultAsync();
+                }
+
+                userChannles.Add(new UserChannle()
+                {
+                    Id = Guid.NewGuid(),
+                    ChannleId = channleNum,
+                    UserId = entity.Id
+                });
+            }
+
+            await _userChannleRep.InsertManyAsync(userChannles);
+
             return Constant.SUCCESS;
         }
 
+        /// <summary>
+        /// 閲嶇疆瀵嗙爜
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task ResetPassword(ResetPasswordBaseInput input)
+        {
+            var user = await _userRepository.FirstOrDefaultAsync(x => x.Id == input.UserId);
+            CheckExtensions.IfTrueThrowUserFriendlyException(user == null, CustomeErrorMessage.IsNoExistUser);
+            CheckExtensions.IfTrueThrowUserFriendlyException(string.IsNullOrEmpty(input.Password), "璇疯緭鍏ュ瘑鐮�");
+            var identiResetInput = new ResetPassWordInput
+            {
+                UserId = input.UserId,
+                Name = user.Name,
+                UserName = user.UserName,
+                Password = input.Password,
+                PhoneNumber = user.PhoneNumber
+            };
+            var result = await _identityUserService.ResetPassword(identiResetInput);
+            CheckExtensions.IfTrueThrowUserFriendlyException(result != Constant.SUCCESS,
+                                                             CustomeErrorMessage.ResetPasswordFail);
+        }
         public async Task<int> DeleteBackClientUser(Guid id)
         {
             var entity = await _userRepository.FirstOrDefaultAsync(s => s.Id == id && s.ClientId == Constant.ClientType.Back);
@@ -163,5 +228,11 @@
             await _roleRepository.DeleteAsync(id);
             return Constant.SUCCESS;
         }
+
+        private bool IsGuid(string input)
+        {
+            Guid guidOutput;
+            return Guid.TryParse(input, out guidOutput);
+        }
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.1