| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- using System;
- using System.Collections.Generic;
- using System.IRepositories;
- using System.Linq;
- using System.Security.Claims;
- using System.Threading.Tasks;
- using System.Common;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Mvc;
- using SqlSugar;
- using System.Model;
- using TVShoppingCallCenter_ZLJ.Models.Inputs;
- namespace TVShoppingCallCenter_ZLJ.Controllers
- {
- [Authorize]
- [Produces("application/json")]
- [Route("api/[controller]")]
- public class UserAccountController : BaseController
- {
- private readonly ISys_UserAccountRepository _sys_useraccountRepository;
- private readonly ISys_RoleInfoRepository _sys_role_infoRepository;
- public UserAccountController(ISys_UserAccountRepository sys_useraccountRepository, ISys_RoleInfoRepository sys_role_infoRepository)
- {
- _sys_useraccountRepository = sys_useraccountRepository;
- _sys_role_infoRepository = sys_role_infoRepository;
- }
- /// <summary>
- /// 用户信息列表 by page
- /// </summary>
- /// <param name="pageindex">当前页</param>
- /// <param name="pagesize">每页条数</param>
- /// <returns></returns>
- [HttpGet("getlistbypage")]
- public async Task<IActionResult> GetListByPageAsync(string keyword, string deptid, string roleid, int pageindex = 1, int pagesize = 20)
- {
- List<IConditionalModel> conModels = new List<IConditionalModel>();
- #region 筛选
- conModels.Add(new ConditionalModel() { FieldName = "F_DeleteFlag", ConditionalType = ConditionalType.Equal, FieldValue = ((int)EnumUserCountState.Enabled).ToString() });
- if (!string.IsNullOrEmpty(deptid))
- conModels.Add(new ConditionalModel() { FieldName = "F_DeptId", ConditionalType = ConditionalType.Equal, FieldValue = deptid });
- if (!string.IsNullOrEmpty(roleid))
- conModels.Add(new ConditionalModel() { FieldName = "F_RoleId", ConditionalType = ConditionalType.Equal, FieldValue = roleid });
- if (!string.IsNullOrEmpty(keyword))
- conModels.Add(new ConditionalCollections()
- {
- ConditionalList = new List<KeyValuePair<WhereType, ConditionalModel>>()
- {
- new KeyValuePair<WhereType, ConditionalModel>(WhereType.And, new ConditionalModel() { FieldName = "F_UserCode", ConditionalType = ConditionalType.Like, FieldValue = keyword }),
- new KeyValuePair<WhereType, ConditionalModel>( WhereType.Or , new ConditionalModel() { FieldName = "F_UserName", ConditionalType = ConditionalType.Like, FieldValue = keyword }),
- new KeyValuePair<WhereType, ConditionalModel>( WhereType.Or, new ConditionalModel() { FieldName = "F_Mobile", ConditionalType = ConditionalType.Like, FieldValue = keyword }),
- new KeyValuePair<WhereType, ConditionalModel>( WhereType.Or, new ConditionalModel() { FieldName = "F_Telephone", ConditionalType = ConditionalType.Like, FieldValue = keyword })
- }
- });
- #endregion
- int recordCount = 0;
- var list = await _sys_useraccountRepository.GetListViewByPage(conModels, new MyPageModel() { PageIndex = pageindex, PageSize = pagesize, PageCount = recordCount }, "F_CreateOn desc");
- return Success("获取成功", list);
- }
- [HttpGet("getlistdrop")]
- public async Task<IActionResult> GetListDropAsync(string deptid, string roleid,string rolecode)
- {
- List<IConditionalModel> conModels = new List<IConditionalModel>();
- #region 筛选
- conModels.Add(new ConditionalModel() { FieldName = "F_DeleteFlag", ConditionalType = ConditionalType.Equal, FieldValue = ((int)EnumUserCountState.Enabled).ToString() });
- if (!string.IsNullOrEmpty(deptid))
- conModels.Add(new ConditionalModel() { FieldName = "F_DeptId", ConditionalType = ConditionalType.Equal, FieldValue = deptid });
- if (!string.IsNullOrEmpty(roleid))
- conModels.Add(new ConditionalModel() { FieldName = "F_RoleId", ConditionalType = ConditionalType.Equal, FieldValue = roleid });
- if(!string.IsNullOrEmpty(rolecode))
- {
- var rolemodel=await _sys_role_infoRepository.GetSingle(x => x.F_RoleCode == rolecode && x.F_State == (int)EnumDelState.Enabled);
- if (rolemodel != null)
- conModels.Add(new ConditionalModel() { FieldName = "F_RoleId", ConditionalType = ConditionalType.Equal, FieldValue = rolemodel.F_RoleId.ToString() });
- else
- conModels.Add(new ConditionalModel() { FieldName = "F_RoleId", ConditionalType = ConditionalType.Equal, FieldValue = "-1" });
- }
- #endregion
- var list = await _sys_useraccountRepository.GetListALL(conModels, "F_CreateOn desc");
- var result = list.Select(x => new {
- x.F_UserCode,
- x.F_UserName,
- x.F_DeptId,
- x.F_RoleId,
- x.F_UserId
- });
- return Success("获取成功", result);
- }
- /// <summary>
- /// 获取用户详情 by id
- /// </summary>
- /// <param name="id">设备id</param>
- /// <returns></returns>
- [HttpGet("getdetails")]
- public async Task<IActionResult> GetDetailsAsync(int id)
- {
- if (id <= 0)
- return Error("参数错误");
- var model = await _sys_useraccountRepository.GetSingle(x => x.F_UserId == id && x.F_DeleteFlag == (int)EnumUserCountState.Enabled);
- if (model != null)
- {
- return Success("获取成功!", model);
- }
- return Error("获取失败");
- }
- /// <summary>
- /// 添加用户信息
- /// </summary>
- /// <param name="input">用户信息参数</param>
- /// <returns></returns>
- [HttpPost("add")]
- public async Task<IActionResult> Add(UserAccountInput input)
- {
- #region 验证判断
- if (string.IsNullOrEmpty(input.usercode))
- return Error("账号不能为空");
- if (string.IsNullOrEmpty(input.password))
- return Error("密码不能为空");
- //if (string.IsNullOrEmpty(input.mobile))
- // return Error("手机号码不能为空");
-
- if(await _sys_useraccountRepository.GetCount(p => p.F_UserCode == input.usercode && p.F_DeleteFlag == (int)EnumUserCountState.Enabled) >0)
- {
- return Error("账号已经存在");
- }
- #endregion
- var model = new T_Sys_UserAccount();
- model.F_UserCode = input.usercode;
- model.F_UserName = input.username;
- model.F_Password = input.password;
- model.F_SexFlag = input.sexflag;
- model.F_DeptId = input.deptid;
- model.F_ExtensionNumber = input.extensionnumber;
- model.F_RoleId = input.roleid;
- model.F_SeartGroupID = input.seartgroupiD;
- model.F_SeatFlag = input.seatflag;
- model.F_SeatLevel = input.seatlevel;
- model.F_SeatRight = input.seatright;
- model.F_RemindFlag = input.remindflag;
- model.F_Remark = input.remark;
- model.F_HeadImg = input.headimg;
- model.F_WXNo = input.wxno;
- model.F_Telephone = input.telephone;
- model.F_Mobile = input.mobile;
- model.F_HomePhone = input.remark;
- model.F_WxOpenId = "";
- model.F_DutyId = input.dutyid;
- model.F_DeptTeamId = input.deptteamid;
- model.F_EntryDate = input.entrydate;
- model.F_FullDate = input.fulldate;
- model.F_TermDate = input.termdate;
- model.F_DeleteFlag = (int)EnumUserCountState.Enabled;
- model.F_CreateBy = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
- model.F_CreateOn = DateTime.Now;
- var b = await _sys_useraccountRepository.Add(model);
- if (b>0)
- return Success("添加成功");
- else
- return Error("添加失败");
- }
- /// <summary>
- /// 修改用户信息
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("update")]
- public async Task<IActionResult> Update(UserAccountInput input)
- {
- #region 验证判断
- if (string.IsNullOrEmpty(input.usercode))
- return Error("账号不能为空");
- if (await _sys_useraccountRepository.GetCount(p => p.F_UserCode == input.usercode && p.F_UserId != input.userid && p.F_DeleteFlag == (int)EnumUserCountState.Enabled) > 0)
- {
- return Error("账号已经存在");
- }
- #endregion
- var model = new T_Sys_UserAccount();
- model = await _sys_useraccountRepository.GetSingle(p => p.F_UserId == input.userid && p.F_DeleteFlag == (int)EnumUserCountState.Enabled);
- if (model == null)
- return Error("获取信息失败");
- model.F_UserCode = input.usercode;
- model.F_UserName = input.username;
- model.F_SexFlag = input.sexflag;
- model.F_DeptId = input.deptid;
- model.F_ExtensionNumber = input.extensionnumber;
- model.F_RoleId = input.roleid;
- model.F_SeartGroupID = input.seartgroupiD;
- model.F_SeatFlag = input.seatflag;
- model.F_SeatLevel = input.seatlevel;
- model.F_SeatRight = input.seatright;
- model.F_RemindFlag = input.remindflag;
- model.F_Remark = input.remark;
- model.F_HeadImg = input.headimg;
- model.F_WXNo = input.wxno;
- model.F_Telephone = input.telephone;
- model.F_Mobile = input.mobile;
- model.F_HomePhone = input.homephone;
- model.F_DutyId = input.dutyid;
- model.F_DeptTeamId = input.deptteamid;
- model.F_EntryDate = input.entrydate;
- model.F_FullDate = input.fulldate;
- model.F_TermDate = input.termdate;
- model.F_LastModifyBy = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
- model.F_LastModifyOn = DateTime.Now;
- bool b = await _sys_useraccountRepository.Update(model);
- if (b)
- return Success("保存成功");
- else
- return Error("保存失败");
- }
- /// <summary>
- /// 逻辑删除用户
- /// </summary>
- /// <param name="ids"></param>
- /// <returns></returns>
- [HttpPost("delete")]
- public async Task<IActionResult> Delete(int[] ids)
- {
- string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
- //使用逻辑删除
- //物理删除的数据无法恢复
- if (ids != null && ids.Length > 0)
- {
- foreach (var item in ids)
- {
- var eq = await _sys_useraccountRepository.GetSingle(p => p.F_UserId == item );
- if (eq != null)
- {
- eq.F_DeleteFlag = (int)EnumUserCountState.Delete;
- eq.F_DeleteBy = usercode;
- eq.F_DeleteOn = DateTime.Now.ToLocalTime();
- bool bl = await _sys_useraccountRepository.Update(eq);
- }
- }
- return Success("删除成功");
- }
- else
- return Error("请选择要删除的记录");
- }
- /// <summary>
- /// 获取当前用户信息
- /// </summary>
- /// <returns></returns>
- [HttpGet("getnowuser")]
- public async Task<IActionResult> GetNowUser()
- {
- string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
- var userModel = await _sys_useraccountRepository.GetSingle(u => u.F_UserCode == nowusercode && u.F_DeleteFlag== (int)EnumUserCountState.Enabled);
- if (userModel == null)
- return Error("获取失败");
- return Success("获取成功", userModel);
- }
- /// <summary>
- /// 修改用户密码
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("updatepassword")]
- public async Task<IActionResult> UpdatePassword(string usercode, string password, string surepassword)
- {
- #region 验证判断
- if (string.IsNullOrEmpty(usercode))
- return Error("请选择账号");
- if (string.IsNullOrEmpty(password))
- return Error("密码不能为空");
- if (string.IsNullOrEmpty(surepassword))
- return Error("确认密码不能为空");
- if (password != surepassword)
- return Error("两次输入的密码不一致");
- #endregion
- var model = await _sys_useraccountRepository.GetSingle(p => p.F_UserCode == usercode && p.F_DeleteFlag == (int)EnumUserCountState.Enabled);
- if (model == null)
- return Error("操作失败");
- model.F_Password = password;
- bool b = await _sys_useraccountRepository.Update(model);
- if (b)
- return Success("保存成功");
- return Error("保存失败");
- }
- /// <summary>
- /// 修改我的密码
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost("updatemypassword")]
- public async Task<IActionResult> UpdateMyPassword(string oldpassword, string password, string surepassword)
- {
- #region 验证判断
- if (string.IsNullOrEmpty(oldpassword))
- return Error("原密码不能为空");
- if (string.IsNullOrEmpty(surepassword))
- return Error("确认密码不能为空");
- if (password != surepassword)
- return Error("两次输入的密码不一致");
- #endregion
- var usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
- var model = await _sys_useraccountRepository.GetSingle(p => p.F_UserCode == usercode && p.F_Password == oldpassword && p.F_DeleteFlag == (int)EnumUserCountState.Enabled);
- if (model == null)
- return Error("原密码输入错误");
- model.F_Password = password;
- bool b = await _sys_useraccountRepository.Update(model);
- if (b)
- return Success("更新成功");
- return Error("更新失败");
- }
- }
- }
|