Merge branch 'master' of 10.10.14.250:huanghai/dsMin

master
wubin 5 years ago
commit 067d8e2060

@ -39,7 +39,7 @@ func GetByIds(ids []string) ([]models.TBaseClass, error) {
}
//判断是不是有在指定班号范围内的班级
func CheckClassNumValid(schoolId string, stageId string, rxnf int32, startBh int32, endBh int32) (bool, error) {
func CheckClassNumValid(schoolId string, stageId int32, rxnf int32, startBh int32, endBh int32) (bool, error) {
classModel := new(models.TBaseClass)
//between是包含边界值
total, err := db.Where("bureau_id=? and b_use=1 and stage_id=? and rxnf=? and (bh between ? and ?)", schoolId, stageId, rxnf, startBh, endBh).Count(classModel)
@ -173,7 +173,7 @@ func GetStageMap(schoolId string) map[string]string {
}
//根据学校ID和学部(学段)ID获取入学年份
func GetRxnf(schoolId string, stageId string) ([]map[string]interface{}, int32, error) {
func GetRxnf(schoolId string, stageId int32) ([]map[string]interface{}, int32, error) {
var myBuilder = builder.Dialect(builder.MYSQL).Select("distinct rxnf").
From("t_base_class").
Where(builder.Eq{"bureau_id": schoolId}).

@ -105,7 +105,7 @@ func (s *Rpc) AddBaseClass(ctx context.Context, in *BaseClassProto.ModelArg) (*B
//入学年份
model.Rxnf = in.Rxnf
//ClassCode是我来规定的,规则是入学年份+1位学段码+两位班号,前补零
model.ClassCode = CommonUtil.ConvertInt32ToString(in.Rxnf) + in.StageId + fmt.Sprintf("%02d", i)
model.ClassCode = CommonUtil.ConvertInt32ToString(in.Rxnf) + CommonUtil.ConvertInt32ToString(in.StageId) + fmt.Sprintf("%02d", i)
//ClassName --->入学年份+班号
model.ClassName = CommonUtil.ConvertInt32ToString(in.Rxnf) + "级" + CommonUtil.ConvertInt32ToString(i) + "班"
//ClassAlias --->入学年份+班号

@ -6,7 +6,9 @@ import (
"dsBaseRpc/Utils/DbUtil"
"dsBaseRpc/Utils/SqlKit"
"dsBaseRpc/models"
"errors"
"github.com/xormplus/builder"
"strings"
)
var db = DbUtil.Engine
@ -63,3 +65,46 @@ func PageBaseMenu(in *BaseMenuProto.QueryArg) ([]map[string]interface{}, int32,
list, count, err := SqlKit.Query(sql)
return list, count, err
}
//调整菜单的排序号direction=1向上drection=2向下
func ChangeMenuOrder(menuId string, direction int32) (bool, error) {
if direction != 1 && direction != 2 {
return false, errors.New("传入调整方向有误向上1向下2传入值不正确")
}
//查找当前menu的sort_id
list := SqlKit.QueryByIds([]string{menuId}, "t_base_role_menu")
if len(list) == 0 {
return false, errors.New("没有找到对应的menu_id!")
}
parentId := list[0]["parent_id"].(string)
sortId := list[0]["sort_id"].(int32)
sql := `select menu_id,sort_id from t_base_menu where parent_id=? and sort_id#? order sort_id limit 1`
if direction == 1 {
sql = strings.Replace(sql, "#", "<", -1)
} else {
sql = strings.Replace(sql, "#", ">", -1)
}
list2, err := db.SQL(sql, parentId, sortId).Query().List()
if err != nil {
return false, err
}
if len(list2) == 0 {
return true, nil
}
//目标替换对象
menuId2 := list2[0]["menu_id"].(string)
sortId2 := list2[0]["sort_id"].(int32)
//更新
//1、清除Redis缓存
var ids = []string{menuId, menuId2}
var selector = SqlKit.GetBean("t_base_menu")
SqlKit.DeleteCacheByIds(ids, selector)
sql = `update t_base_menu set sort_id=? where menu_id=?`
db.SQL(sql, sortId2, menuId).Execute()
db.SQL(sql, sortId, menuId2).Execute()
return true, nil
}

@ -0,0 +1,68 @@
package BaseRoleDao
import (
"dsBaseRpc/RpcService/BaseRole/BaseRoleProto"
"dsBaseRpc/Utils/CommonUtil"
"dsBaseRpc/Utils/DbUtil"
"dsBaseRpc/Utils/SqlKit"
"dsBaseRpc/models"
"github.com/xormplus/builder"
)
var db = DbUtil.Engine
//批量增加
func AddBaseRole(ms models.TBaseRole) (int64, error) {
return db.Insert(ms)
}
//检查一个角色编码是不是已存在
func ExistRoleCode(roleCode string) (bool, error) {
sql := `select count(1) as c from t_base_role where b_use=1 and role_code=?`
list, err := db.SQL(sql, roleCode).Query().List()
if err != nil {
return false, err
}
c := list[0]["c"].(int32)
if c == 0 {
return false, nil
} else {
return true, nil
}
}
//更新
func UpdateBaseRole(model models.TBaseRole, ForceUpdateFields []string) (int64, error) {
//1、清除Redis缓存
var ids = []string{model.RoleId}
var selector = SqlKit.GetBean("t_base_role")
SqlKit.DeleteCacheByIds(ids, selector)
//2、计算本次操作有哪些字段需要更新
NeedUpdateFields := CommonUtil.GetNeedUpdateFields(model)
//3、合并强制更新的字段
ForceUpdateFields = append(ForceUpdateFields, NeedUpdateFields...)
//4、去重
ForceUpdateFields = CommonUtil.RemoveDuplicatesAndEmpty(ForceUpdateFields)
//5、更新操作,强制更新这些列
affected, err := db.ID(model.RoleId).Cols(ForceUpdateFields...).Update(model)
return affected, err
}
//分页查询
func PageBaseRole(in *BaseRoleProto.QueryArg) ([]map[string]interface{}, int32, error) {
//接收传入参数
var limit = int(in.Limit)
var offset = int((in.Page - 1) * in.Limit)
var myBuilder = builder.Dialect(builder.MYSQL).Select("t1.*").From("t_base_role as t1")
myBuilder.And(builder.Eq{"t1.app_id": in.AppId})
myBuilder.And(builder.Eq{"t1.identity_id": in.IdentityId})
//获取拼接完成的SQL语句
sql, err := myBuilder.OrderBy("t1.sort_id").Limit(limit, offset).ToBoundSQL()
if err != nil {
return nil, 0, err
}
//调用多查询字段通用方法
list, count, err := SqlKit.Query(sql)
return list, count, err
}

@ -1,16 +1,161 @@
package BaseRoleService
import (
"context"
"dsBaseRpc/Const"
"dsBaseRpc/Const/ErrorConst"
"dsBaseRpc/RpcService/BaseRole/BaseRoleDao"
"dsBaseRpc/RpcService/BaseRole/BaseRoleProto"
"dsBaseRpc/Utils/CommonUtil"
"dsBaseRpc/Utils/LogUtil"
"dsBaseRpc/Utils/SqlKit"
"dsBaseRpc/models"
"fmt"
)
type Rpc struct{} //服务对象
/*
//获取单条
rpc GetBaseRole (ModelArg) returns (Reply) {}
//选择单条
func (s *Rpc) GetBaseRole(ctx context.Context, in *BaseRoleProto.ModelArg) (*BaseRoleProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//rpc响应
var reply BaseRoleProto.Reply
//通用获取单条
list := SqlKit.QueryByIds([]string{in.RoleId}, "t_base_role")
//将结果序列化
reply.Success = true
reply.Count = 1
reply.Message = Const.SuccessDataBaseAction
reply.List = CommonUtil.SerializeToString(list)
return &reply, nil
}
//增加
rpc AddBaseRole (ModelArg) returns (Reply) {}
//批量删除
rpc DeleteBaseRole (DeleteIdsArg) returns (Reply) {}
func (s *Rpc) AddBaseRole(ctx context.Context, in *BaseRoleProto.ModelArg) (*BaseRoleProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//rpc响应
var reply BaseRoleProto.Reply
//调用dao
model := new(models.TBaseRole)
//检查一下RoleCode是不是已存在
exist, err := BaseRoleDao.ExistRoleCode(in.RoleCode)
if err != nil {
reply.Success = false
reply.Message = "检查角色代码是否存在时发生严重错误!"
return &reply, err
}
if exist {
reply.Success = false
reply.Message = "角色代码已存在!"
return &reply, nil
}
// 通过,则保存
model.RoleId = CommonUtil.GetUUID()
model.RoleName = in.RoleName
model.RoleCode = in.RoleCode
model.RoleLevel = in.RoleLevel
model.IdentityId = in.IdentityId
model.SortId = in.SortId
model.BUse = 1
//增加
_, err = BaseRoleDao.AddBaseRole(*model)
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlUpdateError, "执行AddBaseRole时发生严重错误"+err.Error())
} else {
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
}
return &reply, err
}
//删除
func (s *Rpc) DeleteBaseRole(ctx context.Context, in *BaseRoleProto.DeleteIdsArg) (*BaseRoleProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//rpc响应
var reply BaseRoleProto.Reply
//调用通用删除命令进行删除
err := SqlKit.DeleteIds("t_base_role", in.Ids)
//错误处理
if err != nil {
LogUtil.Error(ErrorConst.SqlUpdateError, "执行DeleteBaseRole时发生严重错误"+err.Error())
reply.Success = false
reply.Message = Const.DataBaseActionError
return &reply, err
}
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
return &reply, err
}
//修改
rpc UpdateBaseRole (ModelArg) returns (Reply) {}
//查询(分页)
rpc PageBaseRole (QueryArg) returns (Reply) {}
*/
func (s *Rpc) UpdateBaseRole(ctx context.Context, in *BaseRoleProto.ModelArg) (*BaseRoleProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//rpc响应
var reply BaseRoleProto.Reply
//修改
model := new(models.TBaseRole)
model.RoleId = in.RoleId
model.IdentityId = in.IdentityId
model.BUse = in.BUse
_, err := BaseRoleDao.UpdateBaseRole(*model, in.ForceUpdateFields)
//错误处理
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlUpdateError, "执行UpdateBaseRole时发生严重错误"+err.Error())
return &reply, err
}
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
return &reply, nil
}
//分页查询
func (s *Rpc) PageBaseRole(ctx context.Context, in *BaseRoleProto.QueryArg) (*BaseRoleProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//rpc响应
var reply BaseRoleProto.Reply
list, count, err := BaseRoleDao.PageBaseRole(in)
//错误处理
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlQueryError, "执行PageBaseRole时发生严重错误"+err.Error())
return &reply, err
}
reply.Count = count
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
reply.List = CommonUtil.SerializeToString(list)
return &reply, nil
}

@ -0,0 +1,31 @@
package BaseRoleMenuDao
import (
"dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuProto"
"dsBaseRpc/Utils/DbUtil"
"dsBaseRpc/Utils/SqlKit"
"dsBaseRpc/models"
"github.com/xormplus/builder"
)
var db = DbUtil.Engine
func SetBaseRoleMenuCorr(ms []models.TBaseRoleMenu) (int64, error) {
return db.Insert(ms)
}
//分页查询
func GetBaseRoleMenuCorr(in *BaseRoleMenuProto.GetCorrArg) ([]map[string]interface{}, int32, error) {
//接收传入参数
var myBuilder = builder.Dialect(builder.MYSQL).Select("t1.*").From("t_base_role_menu as t1")
myBuilder.And(builder.Eq{"t1.role_id": in.RoleId})
myBuilder.And(builder.Eq{"t1.b_use": 1})
//获取拼接完成的SQL语句
sql, err := myBuilder.ToBoundSQL()
if err != nil {
return nil, 0, err
}
//调用多查询字段通用方法
list, count, err := SqlKit.Query(sql)
return list, count, err
}

@ -0,0 +1,75 @@
package BaseRoleMenuService
import (
"context"
"dsBaseRpc/Const"
"dsBaseRpc/Const/ErrorConst"
"dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuDao"
"dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuProto"
"dsBaseRpc/Utils/CommonUtil"
"dsBaseRpc/Utils/LogUtil"
"dsBaseRpc/models"
"fmt"
)
type Rpc struct{} //服务对象
//获取角色菜单对应关系
func (s *Rpc) GetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.GetCorrArg) (*BaseRoleMenuProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//rpc响应
var reply BaseRoleMenuProto.Reply
list, count, err := BaseRoleMenuDao.GetBaseRoleMenuCorr(in)
//错误处理
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlQueryError, "执行GetBaseRoleMenuCorr时发生严重错误"+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) SetBaseRoleMenuCorr(ctx context.Context, in *BaseRoleMenuProto.SetCorrArg) (*BaseRoleMenuProto.Reply, error) {
//异常处理
defer func() {
if err := recover(); err != nil {
fmt.Printf("%s\n", err)
}
}()
//声明实体数组
modelArray := make([]models.TBaseRoleMenu, 0)
//循环添加班级
for i := 0; i <= len(in.MenuId); i++ {
model := new(models.TBaseRoleMenu)
model.Id = CommonUtil.GetUUID()
model.MenuId = in.MenuId[i]
model.RoleId = in.RoleId
model.BUse = 1
//添加到实体数组
modelArray = append(modelArray, *model)
}
//rpc响应
var reply BaseRoleMenuProto.Reply
//批量增加
_, err := BaseRoleMenuDao.SetBaseRoleMenuCorr(modelArray)
if err != nil {
reply.Success = false
reply.Message = Const.DataBaseActionError
LogUtil.Error(ErrorConst.SqlUpdateError, "执行SetBaseRoleMenuCorr时发生严重错误"+err.Error())
} else {
reply.Success = true
reply.Message = Const.SuccessDataBaseAction
}
return &reply, nil
}

@ -1,9 +0,0 @@
package BaseRoleMenuService
type Rpc struct{} //服务对象
/*
//获取角色菜单对应关系
rpc GetBaseRoleMenuCorr (GetCorrArg) returns (Reply) {}
//设置角色菜单对应关系
rpc SetBaseRoleMenuCorr (SetCorrArg) returns (Reply) {}
*/

@ -17,7 +17,7 @@ import (
"dsBaseRpc/RpcService/BaseRole/BaseRoleProto"
"dsBaseRpc/RpcService/BaseRole/BaseRoleService"
"dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuProto"
BaseRoleMenuService "dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleService"
"dsBaseRpc/RpcService/BaseRoleMenu/BaseRoleMenuService"
"dsBaseRpc/RpcService/BaseRolePerson/BaseRolePersonProto"
"dsBaseRpc/RpcService/BaseRolePerson/BaseRolePersonService"
"dsBaseRpc/RpcService/BaseStudent/BaseStudentProto"
@ -120,7 +120,6 @@ func main() {
BaseRolePersonProto.RegisterBaseRolePersonManageServer(s, &BaseRolePersonService.Rpc{})
//职务
BasePositionProto.RegisterBasePositionManageServer(s, &BasePositionService.Rpc{})
//菜单
BaseMenuProto.RegisterBaseMenuManageServer(s, &BaseMenuService.Rpc{})
//角色

Loading…
Cancel
Save