golang gorm 查询和多条件拼接和多库查询实践

package controllers

import (

    "irisfarm/app/commons"

    "irisfarm/app/core/db"

    "strconv"

    "time"

    "github.com/kataras/iris/v12"

)

type LawyerUser struct{}

func NewLawyerUser() LawyerUser {

    return LawyerUser{}

}

// 获取代理人列表

func (LawyerUser) LawyerUserList(ctx iris.Context) {

    page, _ := strconv.Atoi(ctx.FormValueDefault("page", "1"))

    limit, _ := strconv.Atoi(ctx.FormValueDefault("limit", "10"))

    if page == 0 {

        page = 1

    }

    offset := (page - 1) * limit

    //数据库实例

    sqlObj := db.Db.Table("bq_lawyer_user")

    //搜索条件

    company := ctx.FormValueDefault("company", "")

    if company != "" {

        sqlObj = sqlObj.Where("company like ?", "%"+company+"%")

    }

    lawyer_list := make([]map[string]interface{}, 0)

    var count int64

    sqlObj.Select("id,user_type,username,company,email,birthday,address,update_time").

        Offset(offset).Limit(limit).Find(&lawyer_list)

    db.Db.Table("bq_lawyer_user").Count(&count)

    for _, v := range lawyer_list {

        //匿名结构体

        var info = struct {

            ID        int

            RealName  string

            Idcardnum string

        }{}

        // var info struct {

        //  ID        int

        //  RealName  string

        //  Idcardnum string

        // }

        db.Db.Table("bq_esign_psn_info").Where("mobile", v["username"]).Take(&info)

        if info.ID != 0 {

            v["real_name"] = info.RealName

            v["idcardnum"] = info.Idcardnum

        } else {

            v["real_name"] = ""

            v["idcardnum"] = ""

        }

        if val, ok := v["update_time"].(time.Time); ok {

            v["update_time"] = time.Time(val).Format("2006-01-02 15:04:05")

        }

    }

    data := make(map[string]interface{})

    data["count"] = count

    data["list"] = lawyer_list

    ctx.JSON(commons.ResponseJson(200, "查询成功", data))

}

//*********************************************************************************************/

package controllers

import (

    "fmt"

    "irisfarm/app/commons"

    "irisfarm/app/core/db"

    "strconv"

    "time"

    "github.com/kataras/iris/v12"

)

type Company struct{}

func NewCompany() *Company {

    //return new(Company)

    // var c Company

    // return &c

    //return &Company{}

    // var c = Company{}

    // return &c

    return &Company{}

}

// 获取企业列表

func (Company) CompanyList(ctx iris.Context) {

    //页码

    page, _ := strconv.Atoi(ctx.FormValueDefault("page", "1"))

    //每页条数

    limit, _ := strconv.Atoi(ctx.FormValueDefault("limit", "10"))

    if page == 0 {

        page = 1

    }

    //偏移量offset

    offset := (page - 1) * limit

    var com_list = []map[string]interface{}{}

    var count int64

    db.Db.Table("bq_company").

        Select("id,company_name,company_address,email,contract_num,used_contract_num,create_time,update_time").

        Offset(offset).Limit(limit).Find(&com_list)

    db.Db.Table("bq_company").Select("id").Count(&count)

    var data map[string]interface{} = make(map[string]interface{}, 2)

    fmt.Println(len(com_list))

    for _, val := range com_list {

        if v, ok := val["create_time"].(time.Time); ok {

            val["create_time"] = time.Time(v).Format("2006-01-02")

        }

        if v, ok := val["update_time"].(time.Time); ok {

            val["update_time"] = time.Time(v).Format("2006-01-02 15:04:05")

        }

    }

    data["list"] = com_list

    data["count"] = count

    ctx.JSON(commons.ResponseJson(200, "查询成功", data))

}

// 获取企业信息

func (Company) CompanyInfo(ctx iris.Context) {

    user_id := commons.GetUserIdByJwt(ctx)

    //匿名结构体

    // var com_link = struct {

    //  ID    int

    //  ComId int

    // }{}

    var com_link struct {

        ID    int

        ComId int

    }

    db.Db.Table("bq_user_com_link").Where("user_id=?", user_id).First(&com_link)

    if com_link.ComId == 0 {

        ctx.JSON(commons.ResponseJson(400, "信息错误", ""))

        return

    }

    var com_info map[string]interface{} = map[string]interface{}{}

    db.Db.Table("bq_company").Where("id=?", com_link.ComId).

        Select("id,company_name,company_address,email,contract_num,used_contract_num,create_time,update_time").Take(&com_info)

    if _, ok := com_info["id"]; ok {

        if v, ok := com_info["create_time"].(time.Time); ok {

            com_info["create_time"] = time.Time(v).Format("2006-01-02")

        }

        if v, ok := com_info["update_time"].(time.Time); ok {

            com_info["update_time"] = time.Time(v).Format("2006-01-02 15:04:05")

        }

        ctx.JSON(commons.ResponseJson(200, "查询成功", com_info))

        return

    } else {

        ctx.JSON(commons.ResponseJson(400, "查询失败", ""))

        return

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅坞茶坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值