123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package acquirer_student
- import (
- "context"
- "git.i2edu.net/i2/i2-bill-erp/utils"
- "net/http"
- "time"
- "git.i2edu.net/i2/i2-bill-api/internal/svc"
- "git.i2edu.net/i2/i2-bill-api/internal/types"
- "git.i2edu.net/i2/go-zero/core/logx"
- )
- type AcquirerStudentTotalLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- }
- func NewAcquirerStudentTotalLogic(ctx context.Context, svcCtx *svc.ServiceContext) AcquirerStudentTotalLogic {
- return AcquirerStudentTotalLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- }
- }
- func (l *AcquirerStudentTotalLogic) AcquirerStudentTotal(r *http.Request) (*types.Response, error) {
- // todo: add your logic here and delete this line
- r.ParseForm()
- totalSta := r.Form.Get("create_time_sta")
- totalEnd := r.Form.Get("create_time_end")
- userId := l.svcCtx.GetUserIdByJwt(l.ctx)
- if totalEnd != "" {
- end, err := time.Parse("2006-01-02", totalEnd)
- if err != nil {
- return &types.Response{500, err.Error(), nil}, nil
- }
- totalEnd = end.Add(time.Second*24*60*60 - 1*time.Second).Format("2006-01-02 15:04:05")
- }
- totalParams := make(map[string]interface{})
- totalParams["create_time_sta"] = totalSta
- totalParams["create_time_end"] = totalEnd
- totalParams["user_id"] = userId
- totalParams["group_by"] = "check_state"
- timeNow := time.Now()
- start := time.Date(timeNow.Year(), timeNow.Month(), timeNow.Day(), 0, 0, 0, 0, time.Local)
- end := start.Add(24*60*60*time.Second - 1*time.Second)
- todayParams := make(map[string]interface{})
- todayParams["create_time_sta"] = start
- todayParams["create_time_end"] = end
- todayParams["user_id"] = userId
- totalByCheck, err := utils.AllSearch(l.svcCtx.DB, "i2bill_acquirer_student", "total_check", "i2bill_acquirer_student", totalParams)
- if err != nil {
- logx.Error(err.Error())
- return &types.Response{500, err.Error(), nil}, nil
- }
- totalDay, err := utils.AllSearch(l.svcCtx.DB, "i2bill_acquirer_student", "total_check", "i2bill_acquirer_student", todayParams)
- if err != nil {
- logx.Error(err.Error())
- return &types.Response{500, err.Error(), nil}, nil
- }
- var target int64
- l.svcCtx.DB.Table("i2bill_mkt_part_time_user").Select("target").Where("user_id = ? and del_flag = 0", userId).Get(&target)
- var res = make(map[string]interface{})
- var invalide, untreated, valide, repeat int64
- for _, t := range totalByCheck {
- switch t["check_state"].(int64) {
- case 54, 56, 59:
- untreated += t["total"].(int64)
- case 57:
- valide += t["total"].(int64)
- case 58:
- invalide += t["total"].(int64)
- case 55:
- repeat += t["total"].(int64)
- default:
- untreated += t["total"].(int64)
- }
- }
- res["invalide"] = invalide
- res["untreated"] = untreated
- res["valide"] = valide
- res["today_total"] = totalDay[0]["total"]
- res["target"] = target
- res["repeat"] = repeat
- return &types.Response{200, "", res}, nil
- }
|