123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- /*
- * @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 = "https://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)
- }
- }
|