123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- package init_serve
- import (
- "eta/eta_menu_sync/global"
- "eta/eta_menu_sync/models"
- "eta/eta_menu_sync/utils"
- "fmt"
- "os"
- "strings"
- "time"
- )
- func InitTask() {
- fmt.Println("开始执行生成sql语句")
- etaBusinessObj := models.EtaBusiness{}
- list, err := etaBusinessObj.GetAllEtaBusiness()
- if err != nil {
- fmt.Println("err:", err)
- return
- }
- dateDir := time.Now().Format("20060102")
- baseDir := global.CONFIG.Serve.StaticDir + "menu" + dateDir + ""
- err = os.MkdirAll(baseDir, 0766)
- if err != nil {
- fmt.Println("存储目录创建失败,Err:" + err.Error())
- return
- }
- etaBusinessMenuObj := models.EtaBusinessMenu{}
- for _, v := range list {
- menuList, tmpErr := etaBusinessMenuObj.GetMenuList(v.BusinessCode)
- if tmpErr != nil {
- fmt.Println(v.BusinessName, "生成失败,err:", tmpErr)
- continue
- }
- if len(menuList) <= 0 {
- fmt.Println(v.BusinessName, "生成失败,没有配置菜单")
- continue
- }
- tableName := fmt.Sprintf("sys_menu_%s_bak", time.Now().Format(utils.FormatDateUnSpace))
- sqlStr := "# 备份表\n# create table " + tableName + " like sys_menu;\n# insert into " + tableName + " select * from sys_menu;\n\n"
- sqlStr += "delete from sys_menu where 1=1;\nINSERT INTO sys_menu (`menu_id`, `parent_id`, `name`, `sort`, `path`, `icon_path`, `component`, `hidden`, `is_level`, `level_path`, `menu_type`, `button_code`, `create_time`, `modify_time`,`api`,`name_en`) VALUES "
- sqlStr += getMenuStr(menuList)
- sqlStr += "SELECT role_id INTO @sys_id FROM sys_role WHERE role_name = 'admin';\nDELETE FROM sys_role_menu WHERE role_id = @sys_id;\nINSERT INTO sys_role_menu(`role_id`, `menu_id`, `type`)\nSELECT @sys_id, menu_id, 0 FROM sys_menu;"
- err = writeFile(baseDir, sqlStr, v)
- if err != nil {
- fmt.Println(v.BusinessName, "生成失败,文件写入失败,Err:", err)
- continue
- }
- }
- fmt.Println("生成完成")
- }
- func getMenuStr(menuList []*models.EtaBusinessMenu) (str string) {
- menuStrList := []string{}
- for _, v := range menuList {
- tmpStr := fmt.Sprintf(`(%d, %d, "%s", %d, "%s","%s", "%s",%d, %d, "%s", %d, "%s", "%s", "%s", "%s", "%s")`,
- v.MenuId, v.ParentId, v.Name, v.Sort, v.Path, v.IconPath, v.Component, v.Hidden, v.IsLevel, v.LevelPath, v.MenuType, v.ButtonCode, v.CreateTime.Format(utils.FormatDateTime), v.ModifyTime.Format(utils.FormatDateTime), v.Api, v.NameEn)
- menuStrList = append(menuStrList, tmpStr)
- }
- str = strings.Join(menuStrList, ",\n")
- str += ";\n"
- return
- }
- // writeFile 文件写入
- func writeFile(baseDir, str string, etaBusiness *models.EtaBusiness) (err error) {
- file, err := os.OpenFile(baseDir+"/"+etaBusiness.BusinessName+"_"+etaBusiness.BusinessCode+".txt", os.O_WRONLY|os.O_CREATE, 0666)
- if err != nil {
- fmt.Println(err)
- return
- }
- defer file.Close()
- _, err = file.Write([]byte(str))
- if err != nil {
- return
- }
- return
- }
|