forked from free-lancers/electricity_bill_calc_service
		
	refactor(time):彻底重构time类型。
This commit is contained in:
		| @@ -37,7 +37,7 @@ func searchCharges(c *fiber.Ctx) error { | |||||||
| 		chargeLog.Error("无法解析查询结束时间。", zap.Error(err)) | 		chargeLog.Error("无法解析查询结束时间。", zap.Error(err)) | ||||||
| 		return result.Error(http.StatusInternalServerError, err.Error()) | 		return result.Error(http.StatusInternalServerError, err.Error()) | ||||||
| 	} | 	} | ||||||
| 	charges, total, err := repository.ChargeRepository.FindCharges(uint(page), &beginTime.Time, &endTime.Time, &keyword) | 	charges, total, err := repository.ChargeRepository.FindCharges(uint(page), &beginTime, &endTime, &keyword) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		chargeLog.Error("检索用户的充值记录列表失败。", zap.Error(err)) | 		chargeLog.Error("检索用户的充值记录列表失败。", zap.Error(err)) | ||||||
| 		return result.Error(http.StatusInternalServerError, err.Error()) | 		return result.Error(http.StatusInternalServerError, err.Error()) | ||||||
|   | |||||||
| @@ -133,21 +133,52 @@ func WithSugar(fields ...zap.Field) *zap.SugaredLogger { | |||||||
| 	return logger.With(fields...).Sugar() | 	return logger.With(fields...).Sugar() | ||||||
| } | } | ||||||
|  |  | ||||||
| func DecimalField(key string, val *decimal.Decimal) zap.Field { | func DecimalField(key string, val decimal.Decimal) zap.Field { | ||||||
| 	return zap.String(key, val.String()) | 	return zap.String(key, val.String()) | ||||||
| } | } | ||||||
|  |  | ||||||
| func NullDecimalField(key string, val *decimal.NullDecimal) zap.Field { | func DecimalFieldp(key string, val *decimal.Decimal) zap.Field { | ||||||
|  | 	if val == nil { | ||||||
|  | 		return zap.String(key, "null") | ||||||
|  | 	} | ||||||
|  | 	return DecimalField(key, *val) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func NullDecimalField(key string, val decimal.NullDecimal) zap.Field { | ||||||
| 	if val.Valid { | 	if val.Valid { | ||||||
| 		return DecimalField(key, &val.Decimal) | 		return DecimalField(key, val.Decimal) | ||||||
| 	} | 	} | ||||||
| 	return zap.String(key, "null") | 	return zap.String(key, "null") | ||||||
| } | } | ||||||
|  |  | ||||||
| func DateField(key string, val *types.Date) zap.Field { | func NullDecimalFieldp(key string, val *decimal.NullDecimal) zap.Field { | ||||||
|  | 	if val == nil { | ||||||
|  | 		return zap.String(key, "null") | ||||||
|  | 	} | ||||||
|  | 	if val.Valid { | ||||||
|  | 		return DecimalField(key, val.Decimal) | ||||||
|  | 	} | ||||||
|  | 	return zap.String(key, "null") | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func DateField(key string, val types.Date) zap.Field { | ||||||
| 	return val.Log(key) | 	return val.Log(key) | ||||||
| } | } | ||||||
|  |  | ||||||
| func DateTimeField(key string, val *types.DateTime) zap.Field { | func DateFieldp(key string, val *types.Date) zap.Field { | ||||||
|  | 	if val == nil { | ||||||
|  | 		return zap.String(key, "null") | ||||||
|  | 	} | ||||||
|  | 	return DateField(key, *val) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func DateTimeField(key string, val types.DateTime) zap.Field { | ||||||
| 	return val.Log(key) | 	return val.Log(key) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func DateTimeFieldp(key string, val *types.DateTime) zap.Field { | ||||||
|  | 	if val == nil { | ||||||
|  | 		return zap.String(key, "null") | ||||||
|  | 	} | ||||||
|  | 	return DateTimeField(key, *val) | ||||||
|  | } | ||||||
|   | |||||||
| @@ -47,9 +47,9 @@ func (m ManagementAccountCreationForm) IntoUserDetail() *UserDetail { | |||||||
| 		Phone:             m.Phone, | 		Phone:             m.Phone, | ||||||
| 		UnitServiceFee:    decimal.Zero, | 		UnitServiceFee:    decimal.Zero, | ||||||
| 		ServiceExpiration: m.Expires, | 		ServiceExpiration: m.Expires, | ||||||
| 		CreatedAt:         time.Now(), | 		CreatedAt:         types.Now(), | ||||||
| 		CreatedBy:         nil, | 		CreatedBy:         nil, | ||||||
| 		LastModifiedAt:    time.Now(), | 		LastModifiedAt:    types.Now(), | ||||||
| 		LastModifiedBy:    nil, | 		LastModifiedBy:    nil, | ||||||
| 		DeletedAt:         nil, | 		DeletedAt:         nil, | ||||||
| 		DeletedBy:         nil, | 		DeletedBy:         nil, | ||||||
| @@ -85,11 +85,11 @@ type UserDetail struct { | |||||||
| 	Phone             *string         `json:"phone"` | 	Phone             *string         `json:"phone"` | ||||||
| 	UnitServiceFee    decimal.Decimal `db:"unit_service_fee" json:"unitServiceFee"` | 	UnitServiceFee    decimal.Decimal `db:"unit_service_fee" json:"unitServiceFee"` | ||||||
| 	ServiceExpiration types.Date      `json:"serviceExpiration"` | 	ServiceExpiration types.Date      `json:"serviceExpiration"` | ||||||
| 	CreatedAt         time.Time       `json:"createdAt"` | 	CreatedAt         types.DateTime  `json:"createdAt"` | ||||||
| 	CreatedBy         *string         `json:"createdBy"` | 	CreatedBy         *string         `json:"createdBy"` | ||||||
| 	LastModifiedAt    time.Time       `json:"lastModifiedAt"` | 	LastModifiedAt    types.DateTime  `json:"lastModifiedAt"` | ||||||
| 	LastModifiedBy    *string         `json:"lastModifiedBy"` | 	LastModifiedBy    *string         `json:"lastModifiedBy"` | ||||||
| 	DeletedAt         *time.Time      `json:"deletedAt"` | 	DeletedAt         *types.DateTime `json:"deletedAt"` | ||||||
| 	DeletedBy         *string         `json:"deletedBy"` | 	DeletedBy         *string         `json:"deletedBy"` | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -107,8 +107,8 @@ type UserWithDetail struct { | |||||||
| 	Phone             *string         `json:"phone"` | 	Phone             *string         `json:"phone"` | ||||||
| 	UnitServiceFee    decimal.Decimal `db:"unit_service_fee" json:"unitServiceFee"` | 	UnitServiceFee    decimal.Decimal `db:"unit_service_fee" json:"unitServiceFee"` | ||||||
| 	ServiceExpiration types.Date      `json:"serviceExpiration"` | 	ServiceExpiration types.Date      `json:"serviceExpiration"` | ||||||
| 	CreatedAt         time.Time       `json:"createdAt"` | 	CreatedAt         types.DateTime  `json:"createdAt"` | ||||||
| 	CreatedBy         *string         `json:"createdBy"` | 	CreatedBy         *string         `json:"createdBy"` | ||||||
| 	LastModifiedAt    time.Time       `json:"lastModifiedAt"` | 	LastModifiedAt    types.DateTime  `json:"lastModifiedAt"` | ||||||
| 	LastModifiedBy    *string         `json:"lastModifiedBy"` | 	LastModifiedBy    *string         `json:"lastModifiedBy"` | ||||||
| } | } | ||||||
|   | |||||||
| @@ -8,10 +8,8 @@ import ( | |||||||
| 	"electricity_bill_calc/logger" | 	"electricity_bill_calc/logger" | ||||||
| 	"electricity_bill_calc/model" | 	"electricity_bill_calc/model" | ||||||
| 	"electricity_bill_calc/tools" | 	"electricity_bill_calc/tools" | ||||||
| 	"electricity_bill_calc/tools/time" |  | ||||||
| 	"electricity_bill_calc/types" | 	"electricity_bill_calc/types" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	st "time" |  | ||||||
|  |  | ||||||
| 	"github.com/doug-martin/goqu/v9" | 	"github.com/doug-martin/goqu/v9" | ||||||
| 	_ "github.com/doug-martin/goqu/v9/dialect/postgres" | 	_ "github.com/doug-martin/goqu/v9/dialect/postgres" | ||||||
| @@ -33,13 +31,13 @@ var ChargeRepository = &_ChargeRepository{ | |||||||
| } | } | ||||||
|  |  | ||||||
| // 分页查询用户的充值记录 | // 分页查询用户的充值记录 | ||||||
| func (cr _ChargeRepository) FindCharges(page uint, beginTime, endTime *st.Time, keyword *string) ([]*model.UserChargeDetail, int64, error) { | func (cr _ChargeRepository) FindCharges(page uint, beginTime, endTime *types.Date, keyword *string) ([]*model.UserChargeDetail, int64, error) { | ||||||
| 	cr.log.Info("查询用户的充值记录。", zap.Timep("beginTime", beginTime), zap.Timep("endTime", endTime), zap.Stringp("keyword", keyword), zap.Uint("page", page)) | 	cr.log.Info("查询用户的充值记录。", logger.DateFieldp("beginTime", beginTime), logger.DateFieldp("endTime", endTime), zap.Stringp("keyword", keyword), zap.Uint("page", page)) | ||||||
| 	cacheConditions := []string{ | 	cacheConditions := []string{ | ||||||
| 		fmt.Sprintf("%d", page), | 		fmt.Sprintf("%d", page), | ||||||
| 		tools.DefaultTo(keyword, ""), | 		tools.DefaultTo(keyword, ""), | ||||||
| 		tools.CondFn(func(t *st.Time) bool { return t != nil }, beginTime, beginTime.Format("2006-01-02"), "UNDEF"), | 		tools.CondFn(func(t *types.Date) bool { return t != nil }, beginTime, beginTime.Format("2006-01-02"), "UNDEF"), | ||||||
| 		tools.CondFn(func(t *st.Time) bool { return t != nil }, endTime, endTime.Format("2006-01-02"), "UNDEF"), | 		tools.CondFn(func(t *types.Date) bool { return t != nil }, endTime, endTime.Format("2006-01-02"), "UNDEF"), | ||||||
| 	} | 	} | ||||||
| 	if charges, total, err := cache.RetrievePagedSearch[[]*model.UserChargeDetail]("charges", cacheConditions...); err == nil { | 	if charges, total, err := cache.RetrievePagedSearch[[]*model.UserChargeDetail]("charges", cacheConditions...); err == nil { | ||||||
| 		cr.log.Info("从缓存中获取用户的充值记录成功。", zap.Int("count", len(*charges)), zap.Int64("total", total)) | 		cr.log.Info("从缓存中获取用户的充值记录成功。", zap.Int("count", len(*charges)), zap.Int64("total", total)) | ||||||
| @@ -115,7 +113,7 @@ func (cr _ChargeRepository) CreateChargeRecord(tx pgx.Tx, ctx context.Context, u | |||||||
| 	createQuery, createArgs, _ := cr.ds. | 	createQuery, createArgs, _ := cr.ds. | ||||||
| 		Insert(goqu.T("user_charge")). | 		Insert(goqu.T("user_charge")). | ||||||
| 		Cols("user_id", "fee", "discount", "amount", "charge_to", "created_at"). | 		Cols("user_id", "fee", "discount", "amount", "charge_to", "created_at"). | ||||||
| 		Vals(goqu.Vals{uid, fee, discount, amount, chargeTo, time.Now()}). | 		Vals(goqu.Vals{uid, fee, discount, amount, chargeTo, types.Now()}). | ||||||
| 		Prepared(true).ToSQL() | 		Prepared(true).ToSQL() | ||||||
|  |  | ||||||
| 	rs, err := tx.Exec(ctx, createQuery, createArgs...) | 	rs, err := tx.Exec(ctx, createQuery, createArgs...) | ||||||
| @@ -130,7 +128,7 @@ func (cr _ChargeRepository) CreateChargeRecord(tx pgx.Tx, ctx context.Context, u | |||||||
| func (cr _ChargeRepository) CancelCharge(tx pgx.Tx, ctx context.Context, uid string, seq int64) (bool, error) { | func (cr _ChargeRepository) CancelCharge(tx pgx.Tx, ctx context.Context, uid string, seq int64) (bool, error) { | ||||||
| 	updateQuerySql, updateArgs, _ := cr.ds. | 	updateQuerySql, updateArgs, _ := cr.ds. | ||||||
| 		Update(goqu.T("user_charge")). | 		Update(goqu.T("user_charge")). | ||||||
| 		Set(goqu.Record{"cancelled": true, "cancelled_at": time.Now()}). | 		Set(goqu.Record{"cancelled": true, "cancelled_at": types.Now()}). | ||||||
| 		Where(goqu.I("user_id").Eq(uid), goqu.I("seq").Eq(seq)). | 		Where(goqu.I("user_id").Eq(uid), goqu.I("seq").Eq(seq)). | ||||||
| 		Prepared(true).ToSQL() | 		Prepared(true).ToSQL() | ||||||
|  |  | ||||||
|   | |||||||
| @@ -25,10 +25,10 @@ func (cs _ChargeService) RecordUserCharge(uid string, fee, discount, amount *dec | |||||||
| 	cs.log.Info( | 	cs.log.Info( | ||||||
| 		"创建一条新的用户充值记录。", | 		"创建一条新的用户充值记录。", | ||||||
| 		zap.String("uid", uid), | 		zap.String("uid", uid), | ||||||
| 		logger.DecimalField("fee", fee), | 		logger.DecimalFieldp("fee", fee), | ||||||
| 		logger.DecimalField("discount", discount), | 		logger.DecimalFieldp("discount", discount), | ||||||
| 		logger.DecimalField("amount", amount), | 		logger.DecimalFieldp("amount", amount), | ||||||
| 		logger.DateField("chargeTo", &chargeTo), | 		logger.DateField("chargeTo", chargeTo), | ||||||
| 		zap.Bool("extendExpriationIgnoringSettle", extendExpriationIgnoringSettle), | 		zap.Bool("extendExpriationIgnoringSettle", extendExpriationIgnoringSettle), | ||||||
| 	) | 	) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,7 +9,8 @@ import ( | |||||||
| 	"electricity_bill_calc/repository" | 	"electricity_bill_calc/repository" | ||||||
| 	"electricity_bill_calc/tools" | 	"electricity_bill_calc/tools" | ||||||
| 	"electricity_bill_calc/tools/serial" | 	"electricity_bill_calc/tools/serial" | ||||||
| 	"electricity_bill_calc/tools/time" | 	"electricity_bill_calc/types" | ||||||
|  | 	"time" | ||||||
|  |  | ||||||
| 	"github.com/fufuok/utils" | 	"github.com/fufuok/utils" | ||||||
| 	"github.com/google/uuid" | 	"github.com/google/uuid" | ||||||
| @@ -85,7 +86,7 @@ func (us _UserService) ProcessEnterpriseUserLogin(username, password string) (*m | |||||||
| 		Name:      user.Username, | 		Name:      user.Username, | ||||||
| 		Type:      user.UserType, | 		Type:      user.UserType, | ||||||
| 		Token:     token.String(), | 		Token:     token.String(), | ||||||
| 		ExpiresAt: time.Now().Add(config.ServiceSettings.MaxSessionLife), | 		ExpiresAt: types.Now().Add(config.ServiceSettings.MaxSessionLife), | ||||||
| 	} | 	} | ||||||
| 	if userDetail != nil && userDetail.Name != nil { | 	if userDetail != nil && userDetail.Name != nil { | ||||||
| 		userSession.Name = *userDetail.Name | 		userSession.Name = *userDetail.Name | ||||||
|   | |||||||
| @@ -4,9 +4,9 @@ import ( | |||||||
| 	"electricity_bill_calc/config" | 	"electricity_bill_calc/config" | ||||||
| 	"electricity_bill_calc/global" | 	"electricity_bill_calc/global" | ||||||
| 	"electricity_bill_calc/logger" | 	"electricity_bill_calc/logger" | ||||||
| 	"electricity_bill_calc/tools/time" | 	"electricity_bill_calc/types" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	stdTime "time" | 	"time" | ||||||
|  |  | ||||||
| 	"github.com/rueian/rueidis" | 	"github.com/rueian/rueidis" | ||||||
| 	"github.com/samber/lo" | 	"github.com/samber/lo" | ||||||
| @@ -18,7 +18,7 @@ var log = logger.Named("Algorithm", "Unique Serial") | |||||||
| // 在防止服务器时间回拨的情况下,生成一个用于生成唯一编号的精简时间戳,该时间戳的起始时间为`2022-02-22 22:22:22.000000 +0800`,时间戳精确到秒。 | // 在防止服务器时间回拨的情况下,生成一个用于生成唯一编号的精简时间戳,该时间戳的起始时间为`2022-02-22 22:22:22.000000 +0800`,时间戳精确到秒。 | ||||||
| func generateTimestamp() int64 { | func generateTimestamp() int64 { | ||||||
| 	for { | 	for { | ||||||
| 		timestamp := time.Timestamp() | 		timestamp := types.Timestamp() | ||||||
| 		cmds := make(rueidis.Commands, 0, 2) | 		cmds := make(rueidis.Commands, 0, 2) | ||||||
| 		cmds = append(cmds, global.Rd.B().Set().Key("LAST_TIMESTAMP").Value(fmt.Sprintf("%d", timestamp)).Nx().ExSeconds(1).Build()) | 		cmds = append(cmds, global.Rd.B().Set().Key("LAST_TIMESTAMP").Value(fmt.Sprintf("%d", timestamp)).Nx().ExSeconds(1).Build()) | ||||||
| 		cmds = append(cmds, global.Rd.B().Get().Key("LAST_TIMESTAMP").Build()) | 		cmds = append(cmds, global.Rd.B().Get().Key("LAST_TIMESTAMP").Build()) | ||||||
| @@ -26,14 +26,14 @@ func generateTimestamp() int64 { | |||||||
| 		store_res, err := lo.Last(results) | 		store_res, err := lo.Last(results) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Error("从Redis缓存中获取上一次的时间戳失败。", zap.Error(err)) | 			log.Error("从Redis缓存中获取上一次的时间戳失败。", zap.Error(err)) | ||||||
| 			stdTime.Sleep(1 * stdTime.Second) | 			time.Sleep(1 * time.Second) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		if stored_timestamp, err := store_res.AsInt64(); err == nil && timestamp >= stored_timestamp { | 		if stored_timestamp, err := store_res.AsInt64(); err == nil && timestamp >= stored_timestamp { | ||||||
| 			return timestamp | 			return timestamp | ||||||
| 		} else { | 		} else { | ||||||
| 			log.Error("转换从Redis缓存中获取的时间戳失败。", zap.Error(err)) | 			log.Error("转换从Redis缓存中获取的时间戳失败。", zap.Error(err)) | ||||||
| 			stdTime.Sleep(1 * stdTime.Second) | 			time.Sleep(1 * time.Second) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -50,14 +50,14 @@ func GenerateUniqueSerial() int64 { | |||||||
| 		store_res, err := lo.Last(results) | 		store_res, err := lo.Last(results) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Error("从Redis缓存中获取上一次的序列号失败。", zap.Error(err)) | 			log.Error("从Redis缓存中获取上一次的序列号失败。", zap.Error(err)) | ||||||
| 			stdTime.Sleep(1 * stdTime.Second) | 			time.Sleep(1 * time.Second) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		if stored_serial, err := store_res.AsInt64(); err == nil { | 		if stored_serial, err := store_res.AsInt64(); err == nil { | ||||||
| 			return (timestamp << 20) | ((config.ServiceSettings.HostSerial & 0xffff) << 16) | (stored_serial & 0xffff_ffff) | 			return (timestamp << 20) | ((config.ServiceSettings.HostSerial & 0xffff) << 16) | (stored_serial & 0xffff_ffff) | ||||||
| 		} else { | 		} else { | ||||||
| 			log.Error("转换从Redis缓存中获取的序列号失败。", zap.Error(err)) | 			log.Error("转换从Redis缓存中获取的序列号失败。", zap.Error(err)) | ||||||
| 			stdTime.Sleep(1 * stdTime.Second) | 			time.Sleep(1 * time.Second) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -1,31 +0,0 @@ | |||||||
| package time |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"time" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| var Loc *time.Location = time.FixedZone("+0800", 8*60*60) |  | ||||||
|  |  | ||||||
| func Now() time.Time { |  | ||||||
| 	return time.Now().In(Loc) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func Time(year int, month time.Month, date, hours, min, sec, nsec int) time.Time { |  | ||||||
| 	return time.Date(year, month, date, hours, min, sec, nsec, Loc) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func Timestamp() int64 { |  | ||||||
| 	startline := time.Date(2022, 2, 22, 22, 22, 22, 0, Loc).Unix() |  | ||||||
| 	return Now().Unix() - startline |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func DifferenceInMonth(t1, t2 time.Time) int { |  | ||||||
| 	var differYear, differMonth int |  | ||||||
| 	differYear = t1.Year() - t2.Year() |  | ||||||
| 	differMonth = int(t1.Month() - t2.Month()) |  | ||||||
| 	return differYear*12 + differMonth |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func IsNextMonth(origin, t time.Time) bool { |  | ||||||
| 	return DifferenceInMonth(t, origin) == 1 |  | ||||||
| } |  | ||||||
| @@ -70,6 +70,14 @@ func DefaultStrTo[T any](format string, originValue *T, defaultStr string) strin | |||||||
| 	return fmt.Sprintf(format, originValue) | 	return fmt.Sprintf(format, originValue) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // 判断指定字符串指针是否为`nil`或者字符串长度为空,如果是则返回给定的默认字符串,否则返回指针所指内容的字符串形式。 | ||||||
|  | func DefaultOrEmptyStr(originValue *string, defaultStr string) string { | ||||||
|  | 	if originValue == nil || len(*originValue) == 0 { | ||||||
|  | 		return defaultStr | ||||||
|  | 	} | ||||||
|  | 	return *originValue | ||||||
|  | } | ||||||
|  |  | ||||||
| // 判断指定表达式的值,根据表达式的值返回指定的值。相当于其他语言中的三目运算符。 | // 判断指定表达式的值,根据表达式的值返回指定的值。相当于其他语言中的三目运算符。 | ||||||
| func Cond[T any](expr bool, trueValue, falseValue T) T { | func Cond[T any](expr bool, trueValue, falseValue T) T { | ||||||
| 	if expr { | 	if expr { | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								vo/user.go
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								vo/user.go
									
									
									
									
									
								
							| @@ -2,9 +2,8 @@ package vo | |||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"electricity_bill_calc/model" | 	"electricity_bill_calc/model" | ||||||
| 	"electricity_bill_calc/tools/time" |  | ||||||
| 	"electricity_bill_calc/types" | 	"electricity_bill_calc/types" | ||||||
| 	st "time" | 	"time" | ||||||
|  |  | ||||||
| 	"github.com/shopspring/decimal" | 	"github.com/shopspring/decimal" | ||||||
| ) | ) | ||||||
| @@ -38,10 +37,10 @@ func (u MGTAndOPSAccountCreationForm) IntoUserDetail() *model.UserDetail { | |||||||
| 		Contact:           u.Contact, | 		Contact:           u.Contact, | ||||||
| 		Phone:             u.Phone, | 		Phone:             u.Phone, | ||||||
| 		UnitServiceFee:    decimal.Zero, | 		UnitServiceFee:    decimal.Zero, | ||||||
| 		ServiceExpiration: types.NewDate(2099, st.December, 31), | 		ServiceExpiration: types.NewDate(2099, time.December, 31), | ||||||
| 		CreatedAt:         time.Now(), | 		CreatedAt:         types.Now(), | ||||||
| 		CreatedBy:         nil, | 		CreatedBy:         nil, | ||||||
| 		LastModifiedAt:    time.Now(), | 		LastModifiedAt:    types.Now(), | ||||||
| 		LastModifiedBy:    nil, | 		LastModifiedBy:    nil, | ||||||
| 		DeletedAt:         nil, | 		DeletedAt:         nil, | ||||||
| 		DeletedBy:         nil, | 		DeletedBy:         nil, | ||||||
| @@ -82,10 +81,10 @@ func (u EnterpriseAccountCreationForm) IntoUserDetail() (*model.UserDetail, erro | |||||||
| 		Contact:           u.Contact, | 		Contact:           u.Contact, | ||||||
| 		Phone:             u.Phone, | 		Phone:             u.Phone, | ||||||
| 		UnitServiceFee:    unitServiceFee, | 		UnitServiceFee:    unitServiceFee, | ||||||
| 		ServiceExpiration: types.NewDate(2000, st.January, 1), | 		ServiceExpiration: types.NewDate(2000, time.January, 1), | ||||||
| 		CreatedAt:         time.Now(), | 		CreatedAt:         types.Now(), | ||||||
| 		CreatedBy:         nil, | 		CreatedBy:         nil, | ||||||
| 		LastModifiedAt:    time.Now(), | 		LastModifiedAt:    types.Now(), | ||||||
| 		LastModifiedBy:    nil, | 		LastModifiedBy:    nil, | ||||||
| 		DeletedAt:         nil, | 		DeletedAt:         nil, | ||||||
| 		DeletedBy:         nil, | 		DeletedBy:         nil, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user