/* * @description: 计量接口 * @Author: CP * @Date: 2021-12-25 14:33:40 * @FilePath: \construction_management\web\external\jl_ex.go */ package external import ( "fmt" "github.com/kataras/iris/v12" "go.mod/dao" "go.mod/datasource" "go.mod/lib" "go.mod/services" "go.mod/web/utils" "go.mod/web/viewmodels" ) type JlEx struct { //框架-web应用上下文环境 Ctx iris.Context // 需要用的service - 必须是鸭子形式,才不会出现问题 // JlService services.JlService } // 检验项目 Calibration func (c *JlEx) PostCalibration() { // 1.获得数据 data := &viewmodels.Jl{} if err := c.Ctx.ReadForm(data); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-1.校验是否存在TOKEN if err := data.ValidateToken(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-2.验证jwt claims, err := utils.ValidateJwt(data.Token) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-3.验证参数的正确性 claimsData := &viewmodels.Jl{ Code: fmt.Sprintf("%s", claims["code"]), } if err := claimsData.ValidateParameter(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } JlService := services.NewJlService() result := JlService.IsCode(claimsData.Code) c.Ctx.JSON(iris.Map{ "code": 0, "msg": "", "data": result, }) } // 添加项目和账号 func (c *JlEx) PostProjectAdd() { // 1.获得数据 data := &viewmodels.Jl{} if err := c.Ctx.ReadForm(data); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-1.校验是否存在TOKEN if err := data.ValidateToken(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-2.验证jwt claims, err := utils.ValidateJwt(data.Token) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-3.验证参数的正确性 claimsData := &viewmodels.Jl{ Code: fmt.Sprintf("%s", claims["code"]), Account: fmt.Sprintf("%s", claims["account"]), } if err := claimsData.ValidateProjectAdd(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } JlService := services.NewJlService() result, err := JlService.ProjectAdd(claimsData) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } c.Ctx.JSON(iris.Map{ "code": 0, "msg": "", "data": result, }) } // 授权登陆 func (c *JlEx) PostAuthLogin() { debug := utils.GetEnvInfo("DEBUG") AuthUrl := "https://jl.smartcost.com.cn" if debug == "qa" { AuthUrl = "http://jlqa.smartcost.com.cn:7002" } else if debug == "uat" { AuthUrl = "http://jluat.smartcost.com.cn" } // 1.获得数据 data := &viewmodels.Jl{} if err := c.Ctx.ReadJSON(data); err != nil { // fmt.Sprintf("%s", err) c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err), "data": map[string]string{ "redirect": AuthUrl, }}) return } // 1-1.校验是否存在TOKEN if err := data.ValidateToken(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err), "data": map[string]string{ "redirect": AuthUrl, }}) return } // 1-2.验证jwt claims, err := utils.ValidateJwt(data.Token) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err), "data": map[string]string{ "redirect": AuthUrl, }}) return } // 1-3.验证参数的正确性 claimsData := &viewmodels.Jl{ Code: fmt.Sprintf("%s", claims["code"]), Account: fmt.Sprintf("%s", claims["account"]), } if err := claimsData.ValidateProjectAdd(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err), "data": map[string]string{ "redirect": AuthUrl, }}) return } JlService := services.NewJlService() result, err := JlService.AuthLogin(claimsData, c.Ctx.ResponseWriter()) if err != nil { code := -1 errString := fmt.Sprintf("%s", err) if errString == "该账号已被停用" { // 计量跳转代表账号停用 code = 3 } c.Ctx.JSON(iris.Map{"code": code, "msg": errString, "data": map[string]string{ "redirect": AuthUrl, }}) return } c.Ctx.JSON(iris.Map{ "code": 0, "msg": "", "data": result, }) } // 修改账号名称接口 func (c *JlEx) PostAccountUpdate() { // 1.获得数据 data := &viewmodels.Jl{} if err := c.Ctx.ReadForm(data); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-1.校验是否存在TOKEN if err := data.ValidateToken(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-2.验证jwt claims, err := utils.ValidateJwt(data.Token) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-3.验证参数的正确性 claimsData := &viewmodels.Jl{ Code: fmt.Sprintf("%s", claims["code"]), Account: fmt.Sprintf("%s", claims["account"]), NewAccount: fmt.Sprintf("%s", claims["newAccount"]), } if err := claimsData.ValidateAccountUpdate(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } JlService := services.NewJlService() if err := JlService.AccountUpdate(claimsData); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } c.Ctx.JSON(iris.Map{ "code": 0, "msg": "", "data": "", }) } // 批量同步计量账号 func (c *JlEx) PostSync() { var ( accountList []map[string]interface{} err error ) // 1.获得数据 data := &viewmodels.Jl{} if err := c.Ctx.ReadForm(data); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 1-1.校验是否存在TOKEN if err := data.ValidateCode(); err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 获得计量 -TODO Jlzf := lib.NewJlzf() if accountList, err = Jlzf.GetAccountList(data.Code); err != nil { fmt.Println(err) } dao := dao.NewProjectAccountDao(datasource.InstanceDbMaster()) if err = dao.JlSync(accountList, 85); err != nil { fmt.Println(err) } }