package main

import (
	"context"
	"fmt"
	_ "gdyb/routers"
	"gdyb/service"
	"gdyb/utils"
	"github.com/astaxie/beego"
	"github.com/qiniu/api.v7/auth/qbox"
	"github.com/qiniu/api.v7/storage"
	"os"
	"os/exec"
	"strconv"
	"time"
)

func init() {
	service.ConnectDB()

}

var (
	astr_jyhb string = "3046022100E4C617A5626E408938EEAC33D7BC0ACD645D8FF0B9A29FE55EC3F9BAB01A07C9022100D0F9E8A545E997F3E431C5E3DADA0EC5F53ACE6A7E9598FD6F3B85BE055D3E10"
	astr_jysr string = "bqh"
	astr_jysc string = ""
)

func call_yh_hb_call() {
	cmd := exec.Command("java", "-jar", "yh_hb_fat.jar", astr_jyhb, astr_jysr, astr_jysc)

	out, err := cmd.Output()
	if err != nil {
		fmt.Println("error:", err.Error())
	}
	fmt.Printf("call yh_hb_call %q\n", string(out))
}

func main() {
	call_yh_hb_call()

	org_id, _ := beego.AppConfig.Int64("org_id")
	miConfig, _ := service.FindMedicalInsuranceInfo(org_id)
	dir := miConfig.OrgName + "日志"
	utils.Mkdir(dir)
	month := time.Unix(1557042972, 0).Format("1")
	year := time.Now().Format("2006")
	month = time.Now().Format("01")
	day := time.Now().Format("02")
	file := strconv.FormatInt(org_id, 10) + "_" + year + month + day + "_log"
	file_name := file + ".txt"
	file_path := miConfig.OrgName + "日志" + "/" + file_name
	exist, _ := utils.PathExists(file_path)
	if exist { //存在
		fmt.Println("存在")
		f, err := os.OpenFile(file_path, os.O_WRONLY, 0644)
		if err != nil {
			fmt.Println("read fail")
		}
		content := "\r\n"
		n, _ := f.Seek(0, 2)
		_, err = f.WriteAt([]byte(content), n)

	} else { //不存在
		fmt.Println("文件不存在,创建文件")
		f, err := os.Create(miConfig.OrgName + "日志" + "/" + file_name)
		defer f.Close()
		if err != nil {
		} else {
			_, err = f.Write([]byte("记录日志"))
		}
	}
	//upload_qiniu(file_path,miConfig.OrgName+"_"+year+month+day)
	beego.Run()
}

func upload_qiniu(filePath string, temp_key string) {
	key := temp_key
	//上传凭证,关于凭证这块大家可以去看看官方文档
	putPolicy := storage.PutPolicy{
		Scope: beego.AppConfig.String("qiniu_bucket"),
	}
	mac := qbox.NewMac(beego.AppConfig.String("qiniu_accesskey"), beego.AppConfig.String("qiniu_secretkey"))
	upToken := putPolicy.UploadToken(mac)
	cfg := storage.Config{}
	//空间对应机房
	//其中关于Zone对象和机房的关系如下:
	//    机房    Zone对象
	//    华东    storage.ZoneHuadong
	//    华北    storage.ZoneHuabei
	//    华南    storage.ZoneHuanan
	//    北美    storage.ZoneBeimei
	//七牛云存储空间设置首页有存储区域
	cfg.Zone = &storage.ZoneHuadong
	//不启用HTTPS域名
	cfg.UseHTTPS = false
	//不使用CND加速
	cfg.UseCdnDomains = false
	//构建上传表单对象
	formUploader := storage.NewFormUploader(&cfg)
	ret := storage.PutRet{}
	// 可选
	putExtra := storage.PutExtra{
		Params: map[string]string{},
	}
	err := formUploader.PutFile(context.Background(), &ret, upToken, key, filePath, &putExtra)
	if err != nil {
		fmt.Println(err)
		return
	}

}