package service import ( "electricity_bill_calc/config" "electricity_bill_calc/global" "electricity_bill_calc/model" "xorm.io/builder" ) type _EndUserService struct{} var EndUserService _EndUserService func (_EndUserService) SearchEndUserRecord(reportId, keyword string, page int) ([]model.EndUserDetail, int64, error) { cond := builder.NewCond().And(builder.Eq{"report_id": reportId}) if len(keyword) > 0 { cond = cond.And( builder.Like{"customer_name", keyword}. Or(builder.Like{"contact_name", keyword}). Or(builder.Like{"contact_phone", keyword}). Or(builder.Like{"meter_04kv_id", keyword}), ) } total, err := global.DBConn. Table(&model.EndUserDetail{}). Where(cond). Count() if err != nil { return make([]model.EndUserDetail, 0), -1, err } startItem := (page - 1) * config.ServiceSettings.ItemsPageSize endUsers := make([]model.EndUserDetail, 0) err = global.DBConn. Where(cond). Limit(config.ServiceSettings.ItemsPageSize, startItem). Asc("seq"). Find(&endUsers) return endUsers, total, err } func (_EndUserService) AllEndUserRecord(reportId string) ([]model.EndUserDetail, error) { users := make([]model.EndUserDetail, 0) err := global.DBConn. Where(builder.Eq{"report_id": reportId}). Asc("seq"). Find(&users) return users, err }