|
|
package SysLoginpersonService
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
"dsBaseRpc/Const"
|
|
|
"dsBaseRpc/Const/ErrorConst"
|
|
|
"dsBaseRpc/RpcService/SysLoginperson/SysLoginpersonDao"
|
|
|
"dsBaseRpc/RpcService/SysLoginperson/SysLoginpersonProto"
|
|
|
"dsBaseRpc/Utils/CommonUtil"
|
|
|
"dsBaseRpc/Utils/ExcelUtil"
|
|
|
"dsBaseRpc/Utils/LdapUtil"
|
|
|
"dsBaseRpc/Utils/LogUtil"
|
|
|
"dsBaseRpc/Utils/SqlKit"
|
|
|
"dsBaseRpc/models"
|
|
|
"fmt"
|
|
|
)
|
|
|
|
|
|
type Rpc struct{} //服务对象
|
|
|
|
|
|
//选择单条
|
|
|
func (s *Rpc) GetSysLoginperson(ctx context.Context, in *SysLoginpersonProto.ModelArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
//通用获取单条
|
|
|
list := SqlKit.QueryByIds([]string{in.Id}, "t_sys_loginperson")
|
|
|
//将结果序列化
|
|
|
reply.Success = true
|
|
|
reply.Count = 1
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//增加
|
|
|
func (s *Rpc) AddSysLoginperson(ctx context.Context, in *SysLoginpersonProto.ModelArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
_, err := AddLoginperson(in.IdentityId, in.PersonId, in.PersonName)
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行AddSysLoginperson时发生严重错误:"+err.Error())
|
|
|
} else {
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
}
|
|
|
return &reply, err
|
|
|
}
|
|
|
|
|
|
//删除
|
|
|
func (s *Rpc) DeleteSysLoginperson(ctx context.Context, in *SysLoginpersonProto.DeleteIdsArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
//调用通用删除命令进行删除
|
|
|
err := SqlKit.DeleteIds("t_sys_loginperson", in.Ids)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行DeleteSysLoginperson时发生严重错误:"+err.Error())
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
return &reply, err
|
|
|
}
|
|
|
|
|
|
//修改
|
|
|
func (s *Rpc) UpdateSysLoginperson(ctx context.Context, in *SysLoginpersonProto.ModelArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
//修改
|
|
|
model := new(models.TSysLoginperson)
|
|
|
model.Id = in.LoginName
|
|
|
model.Pwd = LdapUtil.GetLdapPassword(in.Pwd) //注意这里修改的密码是加密后的密码
|
|
|
_, err := SysLoginpersonDao.UpdateSysLoginPerson(*model)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行UpdateSysLoginperson时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//分页查询(单位管理员)
|
|
|
func (s *Rpc) PageSysLoginperson(ctx context.Context, in *SysLoginpersonProto.QueryArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
list, count, err := SysLoginpersonDao.PageSysLoginPerson(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageSysLoginperson时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Count = count
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//地区管理员列表
|
|
|
func (s *Rpc) PageAreaManager(ctx context.Context, in *SysLoginpersonProto.AreaManagerArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
list, count, err := SysLoginpersonDao.PageAreaManager(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageAreaManager时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Count = count
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
reply.List = CommonUtil.SerializeToString(list)
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//重置密码
|
|
|
func (s *Rpc) ResetPassWord(ctx context.Context, in *SysLoginpersonProto.ResetPassWordArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
//修改
|
|
|
err := SysLoginpersonDao.ResetPassWord(in.Ids)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行ResetPassWord时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//启用账号
|
|
|
func (s *Rpc) EnableAccount(ctx context.Context, in *SysLoginpersonProto.AccountArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
//修改
|
|
|
err := SysLoginpersonDao.EnableDisableAccount(in.PersonIds, 1)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行EnableAccount时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//禁用账号
|
|
|
func (s *Rpc) DisableAccount(ctx context.Context, in *SysLoginpersonProto.AccountArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
//修改
|
|
|
err := SysLoginpersonDao.EnableDisableAccount(in.PersonIds, -1)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlUpdateError, "执行DisableAccount时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Success = true
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//导出单位管理员到EXCEL
|
|
|
func (s *Rpc) PageSysLoginpersonExcel(ctx context.Context, in *SysLoginpersonProto.QueryArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
|
|
|
//重新设置长度和显示的页
|
|
|
in.Page = 1
|
|
|
in.Limit = Const.Int32Max
|
|
|
|
|
|
list, _, err := SysLoginpersonDao.PageSysLoginPerson(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageSysLoginperson时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
//6位,我们需要取最后两位
|
|
|
//配置文件
|
|
|
jsonTemplate := "sysLoginperson_account_city.json"
|
|
|
//如果是县区,那么修改一下配置文件名称
|
|
|
if in.AreaCode[4:6] != "00" {
|
|
|
jsonTemplate = "sysLoginperson_account_district.json"
|
|
|
}
|
|
|
//2、导出
|
|
|
TargetPath := CommonUtil.GetExportExcelFilePath()
|
|
|
ExcelUtil.ExportExcel(jsonTemplate, list, TargetPath)
|
|
|
reply.ExcelPath = TargetPath
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//导出地区管理员到EXCEL
|
|
|
func (s *Rpc) PageAreaManagerExcel(ctx context.Context, in *SysLoginpersonProto.AreaManagerArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
|
|
|
//重新设置长度和显示的页
|
|
|
in.Page = 1
|
|
|
in.Limit = Const.Int32Max
|
|
|
|
|
|
list, _, err := SysLoginpersonDao.PageAreaManager(in)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageAreaManager时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
//1、配置文件
|
|
|
jsonTemplate := "areaManager_account.json"
|
|
|
//2、导出
|
|
|
TargetPath := CommonUtil.GetExportExcelFilePath()
|
|
|
ExcelUtil.ExportExcel(jsonTemplate, list, TargetPath)
|
|
|
reply.ExcelPath = TargetPath
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//更改人员登录密码
|
|
|
func (s *Rpc) UpdateLoginPassWord(ctx context.Context, in *SysLoginpersonProto.UpdateLoginPassWordArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
//密码强度检查
|
|
|
if !CommonUtil.CheckPasswordLevel(in.NewPassWord) {
|
|
|
reply.Success = false
|
|
|
reply.Message = "输入的密码不符合等级保护要求,必须是字⺟⼤⼩写+数字+符号,8位以上!"
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//(1)判断旧密码是不是正确
|
|
|
success, err := SysLoginpersonDao.CheckPwd(in.IdentityId, in.PersonId, in.OldPassWord)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行UpdateLoginPassWord时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
if !success {
|
|
|
reply.Success = false
|
|
|
reply.Message = "输入的密码不正确!"
|
|
|
return &reply, nil
|
|
|
}
|
|
|
//(2)修改新密码
|
|
|
success, err = SysLoginpersonDao.UpdatePwd(in.IdentityId, in.PersonId, in.NewPassWord)
|
|
|
//错误处理
|
|
|
if err != nil {
|
|
|
reply.Success = false
|
|
|
reply.Message = Const.DataBaseActionError
|
|
|
LogUtil.Error(ErrorConst.SqlQueryError, "执行UpdatePwd时发生严重错误:"+err.Error())
|
|
|
return &reply, err
|
|
|
}
|
|
|
reply.Success = success
|
|
|
reply.Message = Const.SuccessDataBaseAction
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//获取已绑定的第三方授权
|
|
|
func (s *Rpc) GetBindAuthorization(ctx context.Context, in *SysLoginpersonProto.GetBindAuthorizationArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
|
|
|
//通用获取单条
|
|
|
list, _ := SysLoginpersonDao.GetBindAuthorization(in.PersonId)
|
|
|
if len(list) == 0 {
|
|
|
reply.List = "[]"
|
|
|
reply.Message = "没有找到相应的人员信息"
|
|
|
reply.Success = true
|
|
|
return &reply, nil
|
|
|
}
|
|
|
wxOpenId := list[0]["wx_open_id"].(string)
|
|
|
|
|
|
if len(wxOpenId) > 0 {
|
|
|
reply.List = "[\"wx\"]"
|
|
|
} else {
|
|
|
reply.List = "[]"
|
|
|
}
|
|
|
reply.Message = "获取成功!"
|
|
|
reply.Success = true
|
|
|
return &reply, nil
|
|
|
}
|
|
|
|
|
|
//解除绑定第三方授权
|
|
|
func (s *Rpc) UnbindAuthorization(ctx context.Context, in *SysLoginpersonProto.UnbindAuthorizationArg) (*SysLoginpersonProto.Reply, error) {
|
|
|
//异常处理
|
|
|
defer func() {
|
|
|
if err := recover(); err != nil {
|
|
|
fmt.Printf("%s\n", err)
|
|
|
}
|
|
|
}()
|
|
|
//rpc响应
|
|
|
var reply SysLoginpersonProto.Reply
|
|
|
//微信
|
|
|
if in.TypeName == "wx" {
|
|
|
SysLoginpersonDao.UnbindAuthorization(in.PersonId)
|
|
|
}
|
|
|
reply.Message = "操作成功!"
|
|
|
reply.Success = true
|
|
|
return &reply, nil
|
|
|
}
|