wangxinhui
2025-10-17 ce40df5daffae0d17b4e9fa7cb6d677afaa4d66f
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_BasicService/UserInfoService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,149 @@
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Const;
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
using WIDESEA_DTO.ERP;
using WIDESEA_IBasicRepository;
using WIDESEA_IBasicService;
using WIDESEA_ISystemRepository;
using WIDESEA_Model.Models;
namespace WIDESEA_BasicService
{
    public class UserInfoService : ServiceBase<Dt_UserInfo, IUserInfoRepository>, IUserInfoService
    {
        private readonly ISys_UserRepository _userRepository;
        private readonly IMapper _mapper;
        public UserInfoService(IUserInfoRepository BaseDal, ISys_UserRepository userRepository,IMapper mapper) : base(BaseDal)
        {
            _userRepository = userRepository;
            _mapper = mapper;
        }
        public IUserInfoRepository Repository => BaseDal;
        /// <summary>
        /// æŽ¥æ”¶äºŒæœŸå‘˜å·¥ä¿¡æ¯
        /// </summary>
        /// <param name="eRPUserInfoDTO"></param>
        /// <returns></returns>
        public WebResponseContent ReceiveStaff(ERPUserInfoDTO eRPUserInfoDTO)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (eRPUserInfoDTO == null)
                {
                    return content.Error("员工信息不能传入为空");
                }
                List<Dt_UserInfo> OlduserInfos = BaseDal.QueryData();
                if (eRPUserInfoDTO.OperateType == 1)
                {
                    //判断重复插入
                    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
                    if (userInfoOld != null)
                    {
                        return content.Error($"工号{userInfoOld.Code},员工{userInfoOld.Name}已存在");
                    }
                    Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO);
                    Sys_User user = new Sys_User()
                    {
                        UserName = userInfo.Code,
                        RoleId = 0,
                        UserPwd = "LLD123456".EncryptDES(AppSecret.User),
                        RoleName = "",
                        Enable = (byte)userInfo.State,
                        LastModifyPwdDate = DateTime.Now,
                        Address = "系统服务器",
                        TenantId = 0,
                        Creater = "系统",
                        UserTrueName = userInfo.Name,
                    };
                    //新增
                    BaseDal.AddData(userInfo);
                    _userRepository.AddData(user);
                }
                else if (eRPUserInfoDTO.OperateType == 2)
                {
                    //判断是否存在
                    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
                    if (userInfoOld == null)
                    {
                        return content.Error($"更新工号{eRPUserInfoDTO.StaffCode},员工{eRPUserInfoDTO.StaffName}不存在");
                    }
                    Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO);
                    userInfo.Id = userInfoOld.Id;
                    Sys_User user = _userRepository.QueryFirst(x=>x.UserName== userInfo.Code);
                    if (userInfoOld == null)
                    {
                        return content.Error($"更新工号{eRPUserInfoDTO.StaffCode},员工{eRPUserInfoDTO.StaffName},WMS账号不存在");
                    }
                    user.Enable = (byte)userInfo.State;
                    user.UserTrueName = userInfo.Name;
                    //更新
                    BaseDal.UpdateData(userInfo);
                    _userRepository.UpdateData(user);
                }
                else if (eRPUserInfoDTO.OperateType == 3)
                {
                    //判断是否存在
                    Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode);
                    if (userInfoOld == null)
                    {
                        return content.Error($"更新工号{eRPUserInfoDTO.StaffCode},员工{eRPUserInfoDTO.StaffName}不存在");
                    }
                    BaseDal.DeleteData(userInfoOld);
                }
                else
                {
                    return content.Error("未找到操作类型");
                }
                //更新数据
                return content.OK("接收成功");
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent AddUser()
        {
            try
            {
                List<Dt_UserInfo> userInfos = BaseDal.QueryData().Where(x=>x.Code!= "Admin").ToList();
                List<Sys_User> userList = new List<Sys_User>();
                foreach (var item in userInfos)
                {
                    Sys_User user = new Sys_User()
                    {
                        UserName = item.Code,
                        RoleId = 0,
                        UserPwd="TC123456".EncryptDES(AppSecret.User),
                        RoleName ="",
                        Enable=(byte)item.State,
                        LastModifyPwdDate=DateTime.Now,
                        Address= "系统服务器",
                        TenantId=0,
                        Creater= "系统",
                        UserTrueName=item.Name,
                    };
                    userList.Add(user);
                }
                _userRepository.AddData(userList);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}