func (self *BeStudentController) UiQueryNoPlan(c *gin.Context) {
user := common.GetUser(c)
if !self.IfStaffCheck(c, user) {
return
}
var uireq = uistu.FindBeanUiQueryNoPlan()
if ret := self.ParseBody2Ret(c, uireq); ret.IsFailed() {
return
}
var ret = uireq.UiListNoPlan()
if ret.IsFailed() {
golog.Error(ret)
c.IndentedJSON(http.StatusOK, ret)
return
}
var retFields = []string{"id", "name", "phone", "userType,createdAt,createdBy,userNo,relRole,trialStatus", "totalCredits"}
c.IndentedJSON(http.StatusOK, ret.UiMap(retFields…))
}
func (self *PageResult[T]) UiMap(fieldsNames …string) *PageResult[map[string]any] {
var ret = NewPageResult[map[string]any]()
ret.FromPageResult(self.PageResult)
if self.ExistRecord() {
var err = gconv.Struct(self.Data, &ret.Data)
if err != nil {
golog.Error("PageResult ToPageResultMap err:", err)
} else {
if len(fieldsNames) == 0 || fieldsNames[0] == "" {
return ret
}
var fieldsName = strings.Join(fieldsNames, ",")
var fields = baseutils.FieldsFunc(fieldsName)
ret.Data = lo.Map(ret.Data, func(item map[string]any, _ int) map[string]any {
for key := range item {
if !lo.Contains(fields, key) {
delete(item, key)
}
}
return item
})
}
ret.Data = lo.Map(ret.Data, func(item map[string]any, _ int) map[string]any {
for key, value := range item {
if v, isInt := value.(int64); isInt {
item[key] = gconv.String(v)
}
if v, isInt := value.(float64); isInt {
item[key] = gconv.String(v)
}
}
return item
})
}
return ret
}
func (self *TestWebServiceSuite) Test033_UiQueryNoPlan() {
var url = "/api/v1/be/student/queryNoPlan"
var testframe = testgin.FindBeanGinTestframe().InitPost(url, webbe.UiQueryNoPlan)
var user = testframe.InitUser2MiddleWare(ginctx.ID_USER_LEIJMDAS_136_ADMIN)
var req = uistu.FindBeanUiQueryNoPlan()
req.Start = time.Now().Add(-300 * time.Hour * 24).Format(time.DateTime)
req.End = time.Now().Format(time.DateTime)
req.PageSize = 3
var ret = testframe.Post2PageRet(req)
golog.Info(user, req, ret)
}
{
"code": 200,
"msg": "成功",
"data": [
{
"phone": "15012345678",
"totalCredits": "100",
"trialStatus": 100,
"createdAt": "2025-12-30T18:09:29.065837+08:00",
"createdBy": "0",
"name": "测试充值按钮",
"relRole": "S",
"userNo": "7344081",
"userType": 20,
"id": "2005944319776657408"
},
{
"createdAt": "2025-12-28T13:02:32.060878+08:00",
"phone": "13678908713",
"relRole": "S",
"userType": 20,
"createdBy": "1983796211232018432",
"id": "2005142297234116608",
"name": "S1111",
"totalCredits": "200",
"trialStatus": 300,
"userNo": "7344075"
},
{
"trialStatus": 300,
"userNo": "7344104",
"id": "2005097474217218048",
"totalCredits": "100",
"userType": 20,
"createdAt": "2025-12-28T10:04:25.420277+08:00",
"createdBy": "0",
"name": "李文223",
"phone": "13612121123",
"relRole": "S"
}
],
"exist": true,
"total": 12,
"pageSize": 3,
"pageCurrent": 1,
"totalPages": 4,
"dataAgg": null
}
type PageResult[T any] struct {
baseconfig.IchubClientDto
*page.PageResult
Data []T `json:"data"`
}
func DefaultResult[T any]() *PageResult[T] {
return NewPageResult[T]()
}
func NewPageResult[T any]() *PageResult[T] {
var m = &PageResult[T]{
PageResult: page.DefaultResult(),
}
m.InitProxy(m)
return m
}
func Map[T any](fieldsName string) *PageResult[*map[string]any] {
var ret = NewPageResult[T]()
return ret.Map(fieldsName)
}
func PageResult2UiResult[T, U any](pageRet *PageResult[T], u U) *PageResult[U] {
var uiRet = NewPageResult[U]()
uiRet.FromPageResult(pageRet.PageResult)
if pageRet.ExistRecord() {
var err = gconv.Struct(pageRet.Data, &uiRet.Data)
if err != nil {
golog.Error("PageResult2UiList err:", err)
}
}
return uiRet
}
func PageResultError[T any](err error) *PageResult[T] {
return ResultErrPageResult[T](err)
}
func PageResultFailMsg[T any](msg string) *PageResult[T] {
return ResultFailPageResult[T](msg)
}
func PageResultFailSystem[T any](msg string) *PageResult[T] {
return ResultFailPageResultCode[T](basedto.CODE_USER_ERROR_SYSTEM, msg)
}
func PageResultFailUser[T any](msg string) *PageResult[T] {
return ResultFailPageResultCode[T](basedto.CODE_USER_ERROR_START, msg)
}
func PageResult2Result[T, U any](pageRet *PageResult[T], u U) *PageResult[U] {
return PageResult2UiResult(pageRet, u)
}
func ResultErrPageResult[T any](err error) *PageResult[T] {
return ResultFailPageResult[T](err.Error())
}
func ResultOkPageResult[T any](data []T) *PageResult[T] {
var ret = DefaultResult[T]()
ret.Code = 200
ret.Msg = "成功"
ret.Data = data
return ret
}
func ResultFailPageResult[T any](msg string) *PageResult[T] {
var ret = DefaultResult[T]()
ret.Code = 500
ret.Msg = msg
return ret
}
func ResultFailPageResultCode[T any](code int, msg string) *PageResult[T] {
var ret = DefaultResult[T]()
ret.Code = code
ret.Msg = msg
return ret
}
func FromAs[T any](result *page.PageResult) *PageResult[T] {
return NewPageResult[T]().ValueOfPageResult(result)
}
func From[T schema.Tabler](result *page.PageResult) *PageResult[T] {
return NewPageResult[T]().FromPageResult(result)
}
func FromPageResult[T baseiface.IpoolObj](result *page.PageResult) *PageResult[T] {
return NewPageResult[T]().ValueOfPageResult(result)
}
func FromPageEsResult[T baseiface.IpoolObj](result *pagees.PageEsResult) *PageResult[T] {
var pageResult = NewPageResult[T]()
return pageResult.ValueOf(result)
}
func (self *PageResult[T]) ValueOf(esResult *pagees.PageEsResult) *PageResult[T] {
self.PageSize = esResult.PageSize
self.PageCurrent = esResult.PageCurrent
self.Total = esResult.Total
self.Data = make([]T, 0)
if esResult.IsSuccess() {
var err = jsonutils.Decode2StruList(esResult.Data, &self.Data)
if err != nil {
golog.Error("PageResult[T] ValueOf = ", err)
}
}
self.Exist = self.ExistRecord()
return self
}





