diff --git a/app/admin/apis/member_balance.go b/app/admin/apis/member_balance.go new file mode 100644 index 0000000..71516af --- /dev/null +++ b/app/admin/apis/member_balance.go @@ -0,0 +1,191 @@ +package apis + +import ( + "fmt" + + "github.com/gin-gonic/gin" + "github.com/go-admin-team/go-admin-core/sdk/api" + "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" + _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" + + "go-admin/app/admin/models" + "go-admin/app/admin/service" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" +) + +type MemberBalance struct { + api.Api +} + +// GetPage 获取用户余额列表 +// @Summary 获取用户余额列表 +// @Description 获取用户余额列表 +// @Tags 用户余额 +// @Param pageSize query int false "页条数" +// @Param pageIndex query int false "页码" +// @Success 200 {object} response.Response{data=response.Page{list=[]models.MemberBalance}} "{"code": 200, "data": [...]}" +// @Router /api/v1/member-balance [get] +// @Security Bearer +func (e MemberBalance) GetPage(c *gin.Context) { + req := dto.MemberBalanceGetPageReq{} + s := service.MemberBalance{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + p := actions.GetPermissionFromContext(c) + list := make([]models.MemberBalance, 0) + var count int64 + + err = s.GetPage(&req, p, &list, &count) + if err != nil { + e.Error(500, err, fmt.Sprintf("获取用户余额失败,\r\n失败信息 %s", err.Error())) + return + } + + e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功") +} + +// Get 获取用户余额 +// @Summary 获取用户余额 +// @Description 获取用户余额 +// @Tags 用户余额 +// @Param id path int false "id" +// @Success 200 {object} response.Response{data=models.MemberBalance} "{"code": 200, "data": [...]}" +// @Router /api/v1/member-balance/{id} [get] +// @Security Bearer +func (e MemberBalance) Get(c *gin.Context) { + req := dto.MemberBalanceGetReq{} + s := service.MemberBalance{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + var object models.MemberBalance + + p := actions.GetPermissionFromContext(c) + err = s.Get(&req, p, &object) + if err != nil { + e.Error(500, err, fmt.Sprintf("获取用户余额失败,\r\n失败信息 %s", err.Error())) + return + } + + e.OK( object, "查询成功") +} + +// Insert 创建用户余额 +// @Summary 创建用户余额 +// @Description 创建用户余额 +// @Tags 用户余额 +// @Accept application/json +// @Product application/json +// @Param data body dto.MemberBalanceInsertReq true "data" +// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}" +// @Router /api/v1/member-balance [post] +// @Security Bearer +func (e MemberBalance) Insert(c *gin.Context) { + req := dto.MemberBalanceInsertReq{} + s := service.MemberBalance{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + // 设置创建人 + req.SetCreateBy(user.GetUserId(c)) + + err = s.Insert(&req) + if err != nil { + e.Error(500, err, fmt.Sprintf("创建用户余额失败,\r\n失败信息 %s", err.Error())) + return + } + + e.OK(req.GetId(), "创建成功") +} + +// Update 修改用户余额 +// @Summary 修改用户余额 +// @Description 修改用户余额 +// @Tags 用户余额 +// @Accept application/json +// @Product application/json +// @Param id path int true "id" +// @Param data body dto.MemberBalanceUpdateReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}" +// @Router /api/v1/member-balance/{id} [put] +// @Security Bearer +func (e MemberBalance) Update(c *gin.Context) { + req := dto.MemberBalanceUpdateReq{} + s := service.MemberBalance{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + req.SetUpdateBy(user.GetUserId(c)) + p := actions.GetPermissionFromContext(c) + + err = s.Update(&req, p) + if err != nil { + e.Error(500, err, fmt.Sprintf("修改用户余额失败,\r\n失败信息 %s", err.Error())) + return + } + e.OK( req.GetId(), "修改成功") +} + +// Delete 删除用户余额 +// @Summary 删除用户余额 +// @Description 删除用户余额 +// @Tags 用户余额 +// @Param data body dto.MemberBalanceDeleteReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}" +// @Router /api/v1/member-balance [delete] +// @Security Bearer +func (e MemberBalance) Delete(c *gin.Context) { + s := service.MemberBalance{} + req := dto.MemberBalanceDeleteReq{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + // req.SetUpdateBy(user.GetUserId(c)) + p := actions.GetPermissionFromContext(c) + + err = s.Remove(&req, p) + if err != nil { + e.Error(500, err, fmt.Sprintf("删除用户余额失败,\r\n失败信息 %s", err.Error())) + return + } + e.OK( req.GetId(), "删除成功") +} diff --git a/app/admin/apis/member_balance_log.go b/app/admin/apis/member_balance_log.go new file mode 100644 index 0000000..43c71b0 --- /dev/null +++ b/app/admin/apis/member_balance_log.go @@ -0,0 +1,193 @@ +package apis + +import ( + "fmt" + + "github.com/gin-gonic/gin" + "github.com/go-admin-team/go-admin-core/sdk/api" + "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" + _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" + + "go-admin/app/admin/models" + "go-admin/app/admin/service" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" +) + +type MemberBalanceLog struct { + api.Api +} + +// GetPage 获取用户余额变更记录列表 +// @Summary 获取用户余额变更记录列表 +// @Description 获取用户余额变更记录列表 +// @Tags 用户余额变更记录 +// @Param changeSource query string false "变更来源 (member_change_source)" +// @Param changeType query string false "变更类别 1-收入 2-支出" +// @Param pageSize query int false "页条数" +// @Param pageIndex query int false "页码" +// @Success 200 {object} response.Response{data=response.Page{list=[]models.MemberBalanceLog}} "{"code": 200, "data": [...]}" +// @Router /api/v1/member-balance-log [get] +// @Security Bearer +func (e MemberBalanceLog) GetPage(c *gin.Context) { + req := dto.MemberBalanceLogGetPageReq{} + s := service.MemberBalanceLog{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + p := actions.GetPermissionFromContext(c) + list := make([]models.MemberBalanceLog, 0) + var count int64 + + err = s.GetPage(&req, p, &list, &count) + if err != nil { + e.Error(500, err, fmt.Sprintf("获取用户余额变更记录失败,\r\n失败信息 %s", err.Error())) + return + } + + e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功") +} + +// Get 获取用户余额变更记录 +// @Summary 获取用户余额变更记录 +// @Description 获取用户余额变更记录 +// @Tags 用户余额变更记录 +// @Param id path int false "id" +// @Success 200 {object} response.Response{data=models.MemberBalanceLog} "{"code": 200, "data": [...]}" +// @Router /api/v1/member-balance-log/{id} [get] +// @Security Bearer +func (e MemberBalanceLog) Get(c *gin.Context) { + req := dto.MemberBalanceLogGetReq{} + s := service.MemberBalanceLog{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + var object models.MemberBalanceLog + + p := actions.GetPermissionFromContext(c) + err = s.Get(&req, p, &object) + if err != nil { + e.Error(500, err, fmt.Sprintf("获取用户余额变更记录失败,\r\n失败信息 %s", err.Error())) + return + } + + e.OK( object, "查询成功") +} + +// Insert 创建用户余额变更记录 +// @Summary 创建用户余额变更记录 +// @Description 创建用户余额变更记录 +// @Tags 用户余额变更记录 +// @Accept application/json +// @Product application/json +// @Param data body dto.MemberBalanceLogInsertReq true "data" +// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}" +// @Router /api/v1/member-balance-log [post] +// @Security Bearer +func (e MemberBalanceLog) Insert(c *gin.Context) { + req := dto.MemberBalanceLogInsertReq{} + s := service.MemberBalanceLog{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + // 设置创建人 + req.SetCreateBy(user.GetUserId(c)) + + err = s.Insert(&req) + if err != nil { + e.Error(500, err, fmt.Sprintf("创建用户余额变更记录失败,\r\n失败信息 %s", err.Error())) + return + } + + e.OK(req.GetId(), "创建成功") +} + +// Update 修改用户余额变更记录 +// @Summary 修改用户余额变更记录 +// @Description 修改用户余额变更记录 +// @Tags 用户余额变更记录 +// @Accept application/json +// @Product application/json +// @Param id path int true "id" +// @Param data body dto.MemberBalanceLogUpdateReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}" +// @Router /api/v1/member-balance-log/{id} [put] +// @Security Bearer +func (e MemberBalanceLog) Update(c *gin.Context) { + req := dto.MemberBalanceLogUpdateReq{} + s := service.MemberBalanceLog{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + req.SetUpdateBy(user.GetUserId(c)) + p := actions.GetPermissionFromContext(c) + + err = s.Update(&req, p) + if err != nil { + e.Error(500, err, fmt.Sprintf("修改用户余额变更记录失败,\r\n失败信息 %s", err.Error())) + return + } + e.OK( req.GetId(), "修改成功") +} + +// Delete 删除用户余额变更记录 +// @Summary 删除用户余额变更记录 +// @Description 删除用户余额变更记录 +// @Tags 用户余额变更记录 +// @Param data body dto.MemberBalanceLogDeleteReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}" +// @Router /api/v1/member-balance-log [delete] +// @Security Bearer +func (e MemberBalanceLog) Delete(c *gin.Context) { + s := service.MemberBalanceLog{} + req := dto.MemberBalanceLogDeleteReq{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + // req.SetUpdateBy(user.GetUserId(c)) + p := actions.GetPermissionFromContext(c) + + err = s.Remove(&req, p) + if err != nil { + e.Error(500, err, fmt.Sprintf("删除用户余额变更记录失败,\r\n失败信息 %s", err.Error())) + return + } + e.OK( req.GetId(), "删除成功") +} diff --git a/app/admin/apis/member_renwa_log.go b/app/admin/apis/member_renwa_log.go new file mode 100644 index 0000000..31821b9 --- /dev/null +++ b/app/admin/apis/member_renwa_log.go @@ -0,0 +1,191 @@ +package apis + +import ( + "fmt" + + "github.com/gin-gonic/gin" + "github.com/go-admin-team/go-admin-core/sdk/api" + "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" + _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" + + "go-admin/app/admin/models" + "go-admin/app/admin/service" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" +) + +type MemberRenwaLog struct { + api.Api +} + +// GetPage 获取会员续期记录列表 +// @Summary 获取会员续期记录列表 +// @Description 获取会员续期记录列表 +// @Tags 会员续期记录 +// @Param pageSize query int false "页条数" +// @Param pageIndex query int false "页码" +// @Success 200 {object} response.Response{data=response.Page{list=[]models.MemberRenwaLog}} "{"code": 200, "data": [...]}" +// @Router /api/v1/member-renwa-log [get] +// @Security Bearer +func (e MemberRenwaLog) GetPage(c *gin.Context) { + req := dto.MemberRenwaLogGetPageReq{} + s := service.MemberRenwaLog{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + p := actions.GetPermissionFromContext(c) + list := make([]models.MemberRenwaLog, 0) + var count int64 + + err = s.GetPage(&req, p, &list, &count) + if err != nil { + e.Error(500, err, fmt.Sprintf("获取会员续期记录失败,\r\n失败信息 %s", err.Error())) + return + } + + e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功") +} + +// Get 获取会员续期记录 +// @Summary 获取会员续期记录 +// @Description 获取会员续期记录 +// @Tags 会员续期记录 +// @Param id path int false "id" +// @Success 200 {object} response.Response{data=models.MemberRenwaLog} "{"code": 200, "data": [...]}" +// @Router /api/v1/member-renwa-log/{id} [get] +// @Security Bearer +func (e MemberRenwaLog) Get(c *gin.Context) { + req := dto.MemberRenwaLogGetReq{} + s := service.MemberRenwaLog{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + var object models.MemberRenwaLog + + p := actions.GetPermissionFromContext(c) + err = s.Get(&req, p, &object) + if err != nil { + e.Error(500, err, fmt.Sprintf("获取会员续期记录失败,\r\n失败信息 %s", err.Error())) + return + } + + e.OK( object, "查询成功") +} + +// Insert 创建会员续期记录 +// @Summary 创建会员续期记录 +// @Description 创建会员续期记录 +// @Tags 会员续期记录 +// @Accept application/json +// @Product application/json +// @Param data body dto.MemberRenwaLogInsertReq true "data" +// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}" +// @Router /api/v1/member-renwa-log [post] +// @Security Bearer +func (e MemberRenwaLog) Insert(c *gin.Context) { + req := dto.MemberRenwaLogInsertReq{} + s := service.MemberRenwaLog{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + // 设置创建人 + req.SetCreateBy(user.GetUserId(c)) + + err = s.Insert(&req) + if err != nil { + e.Error(500, err, fmt.Sprintf("创建会员续期记录失败,\r\n失败信息 %s", err.Error())) + return + } + + e.OK(req.GetId(), "创建成功") +} + +// Update 修改会员续期记录 +// @Summary 修改会员续期记录 +// @Description 修改会员续期记录 +// @Tags 会员续期记录 +// @Accept application/json +// @Product application/json +// @Param id path int true "id" +// @Param data body dto.MemberRenwaLogUpdateReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}" +// @Router /api/v1/member-renwa-log/{id} [put] +// @Security Bearer +func (e MemberRenwaLog) Update(c *gin.Context) { + req := dto.MemberRenwaLogUpdateReq{} + s := service.MemberRenwaLog{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + req.SetUpdateBy(user.GetUserId(c)) + p := actions.GetPermissionFromContext(c) + + err = s.Update(&req, p) + if err != nil { + e.Error(500, err, fmt.Sprintf("修改会员续期记录失败,\r\n失败信息 %s", err.Error())) + return + } + e.OK( req.GetId(), "修改成功") +} + +// Delete 删除会员续期记录 +// @Summary 删除会员续期记录 +// @Description 删除会员续期记录 +// @Tags 会员续期记录 +// @Param data body dto.MemberRenwaLogDeleteReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}" +// @Router /api/v1/member-renwa-log [delete] +// @Security Bearer +func (e MemberRenwaLog) Delete(c *gin.Context) { + s := service.MemberRenwaLog{} + req := dto.MemberRenwaLogDeleteReq{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + // req.SetUpdateBy(user.GetUserId(c)) + p := actions.GetPermissionFromContext(c) + + err = s.Remove(&req, p) + if err != nil { + e.Error(500, err, fmt.Sprintf("删除会员续期记录失败,\r\n失败信息 %s", err.Error())) + return + } + e.OK( req.GetId(), "删除成功") +} diff --git a/app/admin/apis/member_renwal_config.go b/app/admin/apis/member_renwal_config.go new file mode 100644 index 0000000..aa3e7ab --- /dev/null +++ b/app/admin/apis/member_renwal_config.go @@ -0,0 +1,193 @@ +package apis + +import ( + "fmt" + + "github.com/gin-gonic/gin" + "github.com/go-admin-team/go-admin-core/sdk/api" + "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" + _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" + + "go-admin/app/admin/models" + "go-admin/app/admin/service" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" +) + +type MemberRenwalConfig struct { + api.Api +} + +// GetPage 获取会员套餐管理列表 +// @Summary 获取会员套餐管理列表 +// @Description 获取会员套餐管理列表 +// @Tags 会员套餐管理 +// @Param packageName query string false "套餐名称" +// @Param status query string false "套餐状态(字典 rewal_status)" +// @Param pageSize query int false "页条数" +// @Param pageIndex query int false "页码" +// @Success 200 {object} response.Response{data=response.Page{list=[]models.MemberRenwalConfig}} "{"code": 200, "data": [...]}" +// @Router /api/v1/member-renwal-config [get] +// @Security Bearer +func (e MemberRenwalConfig) GetPage(c *gin.Context) { + req := dto.MemberRenwalConfigGetPageReq{} + s := service.MemberRenwalConfig{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + p := actions.GetPermissionFromContext(c) + list := make([]models.MemberRenwalConfig, 0) + var count int64 + + err = s.GetPage(&req, p, &list, &count) + if err != nil { + e.Error(500, err, fmt.Sprintf("获取会员套餐管理失败,\r\n失败信息 %s", err.Error())) + return + } + + e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功") +} + +// Get 获取会员套餐管理 +// @Summary 获取会员套餐管理 +// @Description 获取会员套餐管理 +// @Tags 会员套餐管理 +// @Param id path int false "id" +// @Success 200 {object} response.Response{data=models.MemberRenwalConfig} "{"code": 200, "data": [...]}" +// @Router /api/v1/member-renwal-config/{id} [get] +// @Security Bearer +func (e MemberRenwalConfig) Get(c *gin.Context) { + req := dto.MemberRenwalConfigGetReq{} + s := service.MemberRenwalConfig{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + var object models.MemberRenwalConfig + + p := actions.GetPermissionFromContext(c) + err = s.Get(&req, p, &object) + if err != nil { + e.Error(500, err, fmt.Sprintf("获取会员套餐管理失败,\r\n失败信息 %s", err.Error())) + return + } + + e.OK( object, "查询成功") +} + +// Insert 创建会员套餐管理 +// @Summary 创建会员套餐管理 +// @Description 创建会员套餐管理 +// @Tags 会员套餐管理 +// @Accept application/json +// @Product application/json +// @Param data body dto.MemberRenwalConfigInsertReq true "data" +// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}" +// @Router /api/v1/member-renwal-config [post] +// @Security Bearer +func (e MemberRenwalConfig) Insert(c *gin.Context) { + req := dto.MemberRenwalConfigInsertReq{} + s := service.MemberRenwalConfig{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + // 设置创建人 + req.SetCreateBy(user.GetUserId(c)) + + err = s.Insert(&req) + if err != nil { + e.Error(500, err, fmt.Sprintf("创建会员套餐管理失败,\r\n失败信息 %s", err.Error())) + return + } + + e.OK(req.GetId(), "创建成功") +} + +// Update 修改会员套餐管理 +// @Summary 修改会员套餐管理 +// @Description 修改会员套餐管理 +// @Tags 会员套餐管理 +// @Accept application/json +// @Product application/json +// @Param id path int true "id" +// @Param data body dto.MemberRenwalConfigUpdateReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}" +// @Router /api/v1/member-renwal-config/{id} [put] +// @Security Bearer +func (e MemberRenwalConfig) Update(c *gin.Context) { + req := dto.MemberRenwalConfigUpdateReq{} + s := service.MemberRenwalConfig{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + req.SetUpdateBy(user.GetUserId(c)) + p := actions.GetPermissionFromContext(c) + + err = s.Update(&req, p) + if err != nil { + e.Error(500, err, fmt.Sprintf("修改会员套餐管理失败,\r\n失败信息 %s", err.Error())) + return + } + e.OK( req.GetId(), "修改成功") +} + +// Delete 删除会员套餐管理 +// @Summary 删除会员套餐管理 +// @Description 删除会员套餐管理 +// @Tags 会员套餐管理 +// @Param data body dto.MemberRenwalConfigDeleteReq true "body" +// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}" +// @Router /api/v1/member-renwal-config [delete] +// @Security Bearer +func (e MemberRenwalConfig) Delete(c *gin.Context) { + s := service.MemberRenwalConfig{} + req := dto.MemberRenwalConfigDeleteReq{} + err := e.MakeContext(c). + MakeOrm(). + Bind(&req). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + // req.SetUpdateBy(user.GetUserId(c)) + p := actions.GetPermissionFromContext(c) + + err = s.Remove(&req, p) + if err != nil { + e.Error(500, err, fmt.Sprintf("删除会员套餐管理失败,\r\n失败信息 %s", err.Error())) + return + } + e.OK( req.GetId(), "删除成功") +} diff --git a/app/admin/fronted/member_renwal_config.go b/app/admin/fronted/member_renwal_config.go new file mode 100644 index 0000000..ebc48c4 --- /dev/null +++ b/app/admin/fronted/member_renwal_config.go @@ -0,0 +1,37 @@ +package fronted + +import ( + "go-admin/app/admin/service/appservice" + statuscode "go-admin/common/status_code" + + "go-admin/common/service/sysservice/sysstatuscode" + + "github.com/gin-gonic/gin" + "github.com/go-admin-team/go-admin-core/sdk/api" +) + +type MemberRenwalConfig struct { + api.Api +} + +// 获取已激活的续费套餐 +func (e MemberRenwalConfig) GetActiveList(c *gin.Context) { + s := appservice.MemberRenwalConfigAppService{} + + err := e.MakeContext(c). + MakeOrm(). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + data, code := s.GetList() + + if code != statuscode.OK { + e.Error(code, nil, sysstatuscode.GetStatusCodeDescription(c, code)) + } + + e.OK(data, "success") +} diff --git a/app/admin/models/member_balance.go b/app/admin/models/member_balance.go new file mode 100644 index 0000000..964cc67 --- /dev/null +++ b/app/admin/models/member_balance.go @@ -0,0 +1,30 @@ +package models + +import ( + "go-admin/common/models" + + "github.com/shopspring/decimal" +) + +type MemberBalance struct { + models.Model + + TotalAmont decimal.Decimal `json:"totalAmont" gorm:"type:decimal(18,6);comment:总余额"` + FreeAmount decimal.Decimal `json:"freeAmount" gorm:"type:decimal(18,6);comment:可用余额"` + FrozenAmount decimal.Decimal `json:"frozenAmount" gorm:"type:decimal(18,6);comment:冻结金额"` + models.ModelTime + models.ControlBy +} + +func (MemberBalance) TableName() string { + return "member_balance" +} + +func (e *MemberBalance) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *MemberBalance) GetId() interface{} { + return e.Id +} diff --git a/app/admin/models/member_balance_log.go b/app/admin/models/member_balance_log.go new file mode 100644 index 0000000..5a30605 --- /dev/null +++ b/app/admin/models/member_balance_log.go @@ -0,0 +1,34 @@ +package models + +import ( + + "go-admin/common/models" + +) + +type MemberBalanceLog struct { + models.Model + + UserId int `json:"userId" gorm:"type:bigint;comment:用户id"` + ChangeSource string `json:"changeSource" gorm:"type:varchar(50);comment:变更来源 (member_change_source)"` + ChangeType string `json:"changeType" gorm:"type:tinyint;comment:变更类别 1-收入 2-支出"` + Amount string `json:"amount" gorm:"type:decimal(18,6);comment:变更金额"` + BalanceBefore string `json:"balanceBefore" gorm:"type:decimal(18,6);comment:变更前余额"` + BalanceAfter string `json:"balanceAfter" gorm:"type:decimal(18,6);comment:变更后余额"` + Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"` + models.ModelTime + models.ControlBy +} + +func (MemberBalanceLog) TableName() string { + return "member_balance_log" +} + +func (e *MemberBalanceLog) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *MemberBalanceLog) GetId() interface{} { + return e.Id +} \ No newline at end of file diff --git a/app/admin/models/member_renwa_log.go b/app/admin/models/member_renwa_log.go new file mode 100644 index 0000000..fcc2b63 --- /dev/null +++ b/app/admin/models/member_renwa_log.go @@ -0,0 +1,37 @@ +package models + +import ( + "time" + + "go-admin/common/models" + +) + +type MemberRenwaLog struct { + models.Model + + RenwalId string `json:"renwalId" gorm:"type:bigint;comment:套餐id"` + RenwalName string `json:"renwalName" gorm:"type:varchar(255);comment:续期套餐名称"` + RenwalDuration string `json:"renwalDuration" gorm:"type:int;comment:续期时长(天数)"` + Status string `json:"status" gorm:"type:varchar(255);comment:订单状态(member_renwal_log_status)"` + PayableAmount string `json:"payableAmount" gorm:"type:decimal(18,6);comment:应付金额"` + ActualPaymentAmount string `json:"actualPaymentAmount" gorm:"type:decimal(18,6);comment:实付金额"` + FromAddress string `json:"fromAddress" gorm:"type:varchar(255);comment:付款地址"` + Coin string `json:"coin" gorm:"type:varchar(255);comment:代币"` + PaymentTime time.Time `json:"paymentTime" gorm:"type:datetime;comment:支付时间"` + models.ModelTime + models.ControlBy +} + +func (MemberRenwaLog) TableName() string { + return "member_renwa_log" +} + +func (e *MemberRenwaLog) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *MemberRenwaLog) GetId() interface{} { + return e.Id +} \ No newline at end of file diff --git a/app/admin/models/member_renwal_config.go b/app/admin/models/member_renwal_config.go new file mode 100644 index 0000000..7cb7808 --- /dev/null +++ b/app/admin/models/member_renwal_config.go @@ -0,0 +1,34 @@ +package models + +import ( + "go-admin/common/models" + + "github.com/shopspring/decimal" +) + +type MemberRenwalConfig struct { + models.Model + + PackageName string `json:"packageName" gorm:"type:varchar(255);comment:套餐名称"` + DurationDay int `json:"durationDay" gorm:"type:int;comment:续期时间(天)"` + OriginalPrice decimal.Decimal `json:"originalPrice" gorm:"type:decimal(18,6);comment:原始单价"` + DiscountPrice decimal.Decimal `json:"discountPrice" gorm:"type:decimal(18,6);comment:折扣价格"` + IsDefault int `json:"isDefault" gorm:"type:int;comment:是否默认套餐 0-无 1-是 2-否"` + Remark string `json:"remark" gorm:"type:varchar(255);comment:备注"` + Status string `json:"status" gorm:"type:varchar(255);comment:套餐状态(字典 rewal_status)"` + models.ModelTime + models.ControlBy +} + +func (MemberRenwalConfig) TableName() string { + return "member_renwal_config" +} + +func (e *MemberRenwalConfig) Generate() models.ActiveRecord { + o := *e + return &o +} + +func (e *MemberRenwalConfig) GetId() interface{} { + return e.Id +} diff --git a/app/admin/router/member_balance.go b/app/admin/router/member_balance.go new file mode 100644 index 0000000..3737c07 --- /dev/null +++ b/app/admin/router/member_balance.go @@ -0,0 +1,27 @@ +package router + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" + + "go-admin/app/admin/apis" + "go-admin/common/middleware" + "go-admin/common/actions" +) + +func init() { + routerCheckRole = append(routerCheckRole, registerMemberBalanceRouter) +} + +// registerMemberBalanceRouter +func registerMemberBalanceRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { + api := apis.MemberBalance{} + r := v1.Group("/member-balance").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) + { + r.GET("", actions.PermissionAction(), api.GetPage) + r.GET("/:id", actions.PermissionAction(), api.Get) + r.POST("", api.Insert) + r.PUT("/:id", actions.PermissionAction(), api.Update) + r.DELETE("", api.Delete) + } +} \ No newline at end of file diff --git a/app/admin/router/member_balance_log.go b/app/admin/router/member_balance_log.go new file mode 100644 index 0000000..a07ca64 --- /dev/null +++ b/app/admin/router/member_balance_log.go @@ -0,0 +1,27 @@ +package router + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" + + "go-admin/app/admin/apis" + "go-admin/common/middleware" + "go-admin/common/actions" +) + +func init() { + routerCheckRole = append(routerCheckRole, registerMemberBalanceLogRouter) +} + +// registerMemberBalanceLogRouter +func registerMemberBalanceLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { + api := apis.MemberBalanceLog{} + r := v1.Group("/member-balance-log").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) + { + r.GET("", actions.PermissionAction(), api.GetPage) + r.GET("/:id", actions.PermissionAction(), api.Get) + r.POST("", api.Insert) + r.PUT("/:id", actions.PermissionAction(), api.Update) + r.DELETE("", api.Delete) + } +} \ No newline at end of file diff --git a/app/admin/router/member_renwa_log.go b/app/admin/router/member_renwa_log.go new file mode 100644 index 0000000..b582086 --- /dev/null +++ b/app/admin/router/member_renwa_log.go @@ -0,0 +1,27 @@ +package router + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" + + "go-admin/app/admin/apis" + "go-admin/common/middleware" + "go-admin/common/actions" +) + +func init() { + routerCheckRole = append(routerCheckRole, registerMemberRenwaLogRouter) +} + +// registerMemberRenwaLogRouter +func registerMemberRenwaLogRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { + api := apis.MemberRenwaLog{} + r := v1.Group("/member-renwa-log").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) + { + r.GET("", actions.PermissionAction(), api.GetPage) + r.GET("/:id", actions.PermissionAction(), api.Get) + r.POST("", api.Insert) + r.PUT("/:id", actions.PermissionAction(), api.Update) + r.DELETE("", api.Delete) + } +} \ No newline at end of file diff --git a/app/admin/router/member_renwal_config.go b/app/admin/router/member_renwal_config.go new file mode 100644 index 0000000..06d9d6d --- /dev/null +++ b/app/admin/router/member_renwal_config.go @@ -0,0 +1,27 @@ +package router + +import ( + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" + + "go-admin/app/admin/apis" + "go-admin/common/middleware" + "go-admin/common/actions" +) + +func init() { + routerCheckRole = append(routerCheckRole, registerMemberRenwalConfigRouter) +} + +// registerMemberRenwalConfigRouter +func registerMemberRenwalConfigRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { + api := apis.MemberRenwalConfig{} + r := v1.Group("/member-renwal-config").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) + { + r.GET("", actions.PermissionAction(), api.GetPage) + r.GET("/:id", actions.PermissionAction(), api.Get) + r.POST("", api.Insert) + r.PUT("/:id", actions.PermissionAction(), api.Update) + r.DELETE("", api.Delete) + } +} \ No newline at end of file diff --git a/app/admin/service/appservice/member_renwal_config.go b/app/admin/service/appservice/member_renwal_config.go new file mode 100644 index 0000000..a922b50 --- /dev/null +++ b/app/admin/service/appservice/member_renwal_config.go @@ -0,0 +1,18 @@ +package appservice + +import ( + "go-admin/app/admin/models" + statuscode "go-admin/common/status_code" + + "github.com/go-admin-team/go-admin-core/sdk/service" +) + +type MemberRenwalConfigAppService struct { + service.Service +} + +func (e *MemberRenwalConfigAppService) GetList() ([]models.MemberRenwalConfig, int) { + result := make([]models.MemberRenwalConfig, 0) + + return result, statuscode.OK +} diff --git a/app/admin/service/dto/member_balance.go b/app/admin/service/dto/member_balance.go new file mode 100644 index 0000000..a571220 --- /dev/null +++ b/app/admin/service/dto/member_balance.go @@ -0,0 +1,92 @@ +package dto + +import ( + "go-admin/app/admin/models" + "go-admin/common/dto" + common "go-admin/common/models" + + "github.com/shopspring/decimal" +) + +type MemberBalanceGetPageReq struct { + dto.Pagination `search:"-"` + MemberBalanceOrder +} + +type MemberBalanceOrder struct { + Id string `form:"idOrder" search:"type:order;column:id;table:member_balance"` + TotalAmont string `form:"totalAmontOrder" search:"type:order;column:total_amont;table:member_balance"` + FreeAmount string `form:"freeAmountOrder" search:"type:order;column:free_amount;table:member_balance"` + FrozenAmount string `form:"frozenAmountOrder" search:"type:order;column:frozen_amount;table:member_balance"` + CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:member_balance"` + UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:member_balance"` + DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:member_balance"` + CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:member_balance"` + UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:member_balance"` +} + +func (m *MemberBalanceGetPageReq) GetNeedSearch() interface{} { + return *m +} + +type MemberBalanceInsertReq struct { + Id int `json:"-" comment:"主键"` // 主键 + TotalAmont decimal.Decimal `json:"totalAmont" comment:"总余额"` + FreeAmount decimal.Decimal `json:"freeAmount" comment:"可用余额"` + FrozenAmount decimal.Decimal `json:"frozenAmount" comment:"冻结金额"` + common.ControlBy +} + +func (s *MemberBalanceInsertReq) Generate(model *models.MemberBalance) { + if s.Id == 0 { + model.Model = common.Model{Id: s.Id} + } + model.TotalAmont = s.TotalAmont + model.FreeAmount = s.FreeAmount + model.FrozenAmount = s.FrozenAmount + model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的 +} + +func (s *MemberBalanceInsertReq) GetId() interface{} { + return s.Id +} + +type MemberBalanceUpdateReq struct { + Id int `uri:"id" comment:"主键"` // 主键 + TotalAmont decimal.Decimal `json:"totalAmont" comment:"总余额"` + FreeAmount decimal.Decimal `json:"freeAmount" comment:"可用余额"` + FrozenAmount decimal.Decimal `json:"frozenAmount" comment:"冻结金额"` + common.ControlBy +} + +func (s *MemberBalanceUpdateReq) Generate(model *models.MemberBalance) { + if s.Id == 0 { + model.Model = common.Model{Id: s.Id} + } + model.TotalAmont = s.TotalAmont + model.FreeAmount = s.FreeAmount + model.FrozenAmount = s.FrozenAmount + model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的 +} + +func (s *MemberBalanceUpdateReq) GetId() interface{} { + return s.Id +} + +// MemberBalanceGetReq 功能获取请求参数 +type MemberBalanceGetReq struct { + Id int `uri:"id"` +} + +func (s *MemberBalanceGetReq) GetId() interface{} { + return s.Id +} + +// MemberBalanceDeleteReq 功能删除请求参数 +type MemberBalanceDeleteReq struct { + Ids []int `json:"ids"` +} + +func (s *MemberBalanceDeleteReq) GetId() interface{} { + return s.Ids +} diff --git a/app/admin/service/dto/member_balance_log.go b/app/admin/service/dto/member_balance_log.go new file mode 100644 index 0000000..d2e5923 --- /dev/null +++ b/app/admin/service/dto/member_balance_log.go @@ -0,0 +1,113 @@ +package dto + +import ( + + "go-admin/app/admin/models" + "go-admin/common/dto" + common "go-admin/common/models" +) + +type MemberBalanceLogGetPageReq struct { + dto.Pagination `search:"-"` + ChangeSource string `form:"changeSource" search:"type:exact;column:change_source;table:member_balance_log" comment:"变更来源 (member_change_source)"` + ChangeType string `form:"changeType" search:"type:exact;column:change_type;table:member_balance_log" comment:"变更类别 1-收入 2-支出"` + MemberBalanceLogOrder +} + +type MemberBalanceLogOrder struct { + Id string `form:"idOrder" search:"type:order;column:id;table:member_balance_log"` + UserId string `form:"userIdOrder" search:"type:order;column:user_id;table:member_balance_log"` + ChangeSource string `form:"changeSourceOrder" search:"type:order;column:change_source;table:member_balance_log"` + ChangeType string `form:"changeTypeOrder" search:"type:order;column:change_type;table:member_balance_log"` + Amount string `form:"amountOrder" search:"type:order;column:amount;table:member_balance_log"` + BalanceBefore string `form:"balanceBeforeOrder" search:"type:order;column:balance_before;table:member_balance_log"` + BalanceAfter string `form:"balanceAfterOrder" search:"type:order;column:balance_after;table:member_balance_log"` + Remark string `form:"remarkOrder" search:"type:order;column:remark;table:member_balance_log"` + CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:member_balance_log"` + UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:member_balance_log"` + DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:member_balance_log"` + CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:member_balance_log"` + UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:member_balance_log"` + +} + +func (m *MemberBalanceLogGetPageReq) GetNeedSearch() interface{} { + return *m +} + +type MemberBalanceLogInsertReq struct { + Id int `json:"-" comment:"主键"` // 主键 + UserId int `json:"userId" comment:"用户id"` + ChangeSource string `json:"changeSource" comment:"变更来源 (member_change_source)"` + ChangeType string `json:"changeType" comment:"变更类别 1-收入 2-支出"` + Amount string `json:"amount" comment:"变更金额"` + BalanceBefore string `json:"balanceBefore" comment:"变更前余额"` + BalanceAfter string `json:"balanceAfter" comment:"变更后余额"` + Remark string `json:"remark" comment:"备注"` + common.ControlBy +} + +func (s *MemberBalanceLogInsertReq) Generate(model *models.MemberBalanceLog) { + if s.Id == 0 { + model.Model = common.Model{ Id: s.Id } + } + model.UserId = s.UserId + model.ChangeSource = s.ChangeSource + model.ChangeType = s.ChangeType + model.Amount = s.Amount + model.BalanceBefore = s.BalanceBefore + model.BalanceAfter = s.BalanceAfter + model.Remark = s.Remark + model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的 +} + +func (s *MemberBalanceLogInsertReq) GetId() interface{} { + return s.Id +} + +type MemberBalanceLogUpdateReq struct { + Id int `uri:"id" comment:"主键"` // 主键 + UserId int `json:"userId" comment:"用户id"` + ChangeSource string `json:"changeSource" comment:"变更来源 (member_change_source)"` + ChangeType string `json:"changeType" comment:"变更类别 1-收入 2-支出"` + Amount string `json:"amount" comment:"变更金额"` + BalanceBefore string `json:"balanceBefore" comment:"变更前余额"` + BalanceAfter string `json:"balanceAfter" comment:"变更后余额"` + Remark string `json:"remark" comment:"备注"` + common.ControlBy +} + +func (s *MemberBalanceLogUpdateReq) Generate(model *models.MemberBalanceLog) { + if s.Id == 0 { + model.Model = common.Model{ Id: s.Id } + } + model.UserId = s.UserId + model.ChangeSource = s.ChangeSource + model.ChangeType = s.ChangeType + model.Amount = s.Amount + model.BalanceBefore = s.BalanceBefore + model.BalanceAfter = s.BalanceAfter + model.Remark = s.Remark + model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的 +} + +func (s *MemberBalanceLogUpdateReq) GetId() interface{} { + return s.Id +} + +// MemberBalanceLogGetReq 功能获取请求参数 +type MemberBalanceLogGetReq struct { + Id int `uri:"id"` +} +func (s *MemberBalanceLogGetReq) GetId() interface{} { + return s.Id +} + +// MemberBalanceLogDeleteReq 功能删除请求参数 +type MemberBalanceLogDeleteReq struct { + Ids []int `json:"ids"` +} + +func (s *MemberBalanceLogDeleteReq) GetId() interface{} { + return s.Ids +} diff --git a/app/admin/service/dto/member_renwa_log.go b/app/admin/service/dto/member_renwa_log.go new file mode 100644 index 0000000..8d5694f --- /dev/null +++ b/app/admin/service/dto/member_renwa_log.go @@ -0,0 +1,122 @@ +package dto + +import ( + "time" + + "go-admin/app/admin/models" + "go-admin/common/dto" + common "go-admin/common/models" +) + +type MemberRenwaLogGetPageReq struct { + dto.Pagination `search:"-"` + MemberRenwaLogOrder +} + +type MemberRenwaLogOrder struct { + Id string `form:"idOrder" search:"type:order;column:id;table:member_renwa_log"` + RenwalId string `form:"renwalIdOrder" search:"type:order;column:renwal_id;table:member_renwa_log"` + RenwalName string `form:"renwalNameOrder" search:"type:order;column:renwal_name;table:member_renwa_log"` + RenwalDuration string `form:"renwalDurationOrder" search:"type:order;column:renwal_duration;table:member_renwa_log"` + Status string `form:"statusOrder" search:"type:order;column:status;table:member_renwa_log"` + PayableAmount string `form:"payableAmountOrder" search:"type:order;column:payable_amount;table:member_renwa_log"` + ActualPaymentAmount string `form:"actualPaymentAmountOrder" search:"type:order;column:actual_payment_amount;table:member_renwa_log"` + FromAddress string `form:"fromAddressOrder" search:"type:order;column:from_address;table:member_renwa_log"` + Coin string `form:"coinOrder" search:"type:order;column:coin;table:member_renwa_log"` + PaymentTime string `form:"paymentTimeOrder" search:"type:order;column:payment_time;table:member_renwa_log"` + CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:member_renwa_log"` + UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:member_renwa_log"` + DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:member_renwa_log"` + CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:member_renwa_log"` + UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:member_renwa_log"` + +} + +func (m *MemberRenwaLogGetPageReq) GetNeedSearch() interface{} { + return *m +} + +type MemberRenwaLogInsertReq struct { + Id int `json:"-" comment:"主键"` // 主键 + RenwalId string `json:"renwalId" comment:"套餐id"` + RenwalName string `json:"renwalName" comment:"续期套餐名称"` + RenwalDuration string `json:"renwalDuration" comment:"续期时长(天数)"` + Status string `json:"status" comment:"订单状态(member_renwal_log_status)"` + PayableAmount string `json:"payableAmount" comment:"应付金额"` + ActualPaymentAmount string `json:"actualPaymentAmount" comment:"实付金额"` + FromAddress string `json:"fromAddress" comment:"付款地址"` + Coin string `json:"coin" comment:"代币"` + PaymentTime time.Time `json:"paymentTime" comment:"支付时间"` + common.ControlBy +} + +func (s *MemberRenwaLogInsertReq) Generate(model *models.MemberRenwaLog) { + if s.Id == 0 { + model.Model = common.Model{ Id: s.Id } + } + model.RenwalId = s.RenwalId + model.RenwalName = s.RenwalName + model.RenwalDuration = s.RenwalDuration + model.Status = s.Status + model.PayableAmount = s.PayableAmount + model.ActualPaymentAmount = s.ActualPaymentAmount + model.FromAddress = s.FromAddress + model.Coin = s.Coin + model.PaymentTime = s.PaymentTime + model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的 +} + +func (s *MemberRenwaLogInsertReq) GetId() interface{} { + return s.Id +} + +type MemberRenwaLogUpdateReq struct { + Id int `uri:"id" comment:"主键"` // 主键 + RenwalId string `json:"renwalId" comment:"套餐id"` + RenwalName string `json:"renwalName" comment:"续期套餐名称"` + RenwalDuration string `json:"renwalDuration" comment:"续期时长(天数)"` + Status string `json:"status" comment:"订单状态(member_renwal_log_status)"` + PayableAmount string `json:"payableAmount" comment:"应付金额"` + ActualPaymentAmount string `json:"actualPaymentAmount" comment:"实付金额"` + FromAddress string `json:"fromAddress" comment:"付款地址"` + Coin string `json:"coin" comment:"代币"` + PaymentTime time.Time `json:"paymentTime" comment:"支付时间"` + common.ControlBy +} + +func (s *MemberRenwaLogUpdateReq) Generate(model *models.MemberRenwaLog) { + if s.Id == 0 { + model.Model = common.Model{ Id: s.Id } + } + model.RenwalId = s.RenwalId + model.RenwalName = s.RenwalName + model.RenwalDuration = s.RenwalDuration + model.Status = s.Status + model.PayableAmount = s.PayableAmount + model.ActualPaymentAmount = s.ActualPaymentAmount + model.FromAddress = s.FromAddress + model.Coin = s.Coin + model.PaymentTime = s.PaymentTime + model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的 +} + +func (s *MemberRenwaLogUpdateReq) GetId() interface{} { + return s.Id +} + +// MemberRenwaLogGetReq 功能获取请求参数 +type MemberRenwaLogGetReq struct { + Id int `uri:"id"` +} +func (s *MemberRenwaLogGetReq) GetId() interface{} { + return s.Id +} + +// MemberRenwaLogDeleteReq 功能删除请求参数 +type MemberRenwaLogDeleteReq struct { + Ids []int `json:"ids"` +} + +func (s *MemberRenwaLogDeleteReq) GetId() interface{} { + return s.Ids +} diff --git a/app/admin/service/dto/member_renwal_config.go b/app/admin/service/dto/member_renwal_config.go new file mode 100644 index 0000000..191a24c --- /dev/null +++ b/app/admin/service/dto/member_renwal_config.go @@ -0,0 +1,113 @@ +package dto + +import ( + "go-admin/app/admin/models" + "go-admin/common/dto" + common "go-admin/common/models" + + "github.com/shopspring/decimal" +) + +type MemberRenwalConfigGetPageReq struct { + dto.Pagination `search:"-"` + PackageName string `form:"packageName" search:"type:exact;column:package_name;table:member_renwal_config" comment:"套餐名称"` + Status string `form:"status" search:"type:exact;column:status;table:member_renwal_config" comment:"套餐状态(字典 rewal_status)"` + MemberRenwalConfigOrder +} + +type MemberRenwalConfigOrder struct { + Id string `form:"idOrder" search:"type:order;column:id;table:member_renwal_config"` + PackageName string `form:"packageNameOrder" search:"type:order;column:package_name;table:member_renwal_config"` + DurationDay string `form:"durationDayOrder" search:"type:order;column:duration_day;table:member_renwal_config"` + OriginalPrice string `form:"originalPriceOrder" search:"type:order;column:original_price;table:member_renwal_config"` + DiscountPrice string `form:"discountPriceOrder" search:"type:order;column:discount_price;table:member_renwal_config"` + IsDefault string `form:"isDefaultOrder" search:"type:order;column:is_default;table:member_renwal_config"` + Status string `form:"statusOrder" search:"type:order;column:status;table:member_renwal_config"` + CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:member_renwal_config"` + UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:member_renwal_config"` + DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:member_renwal_config"` + CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:member_renwal_config"` + UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:member_renwal_config"` +} + +func (m *MemberRenwalConfigGetPageReq) GetNeedSearch() interface{} { + return *m +} + +type MemberRenwalConfigInsertReq struct { + Id int `json:"-" comment:"主键"` // 主键 + PackageName string `json:"packageName" comment:"套餐名称"` + DurationDay int `json:"durationDay" comment:"续期时间(天)"` + OriginalPrice decimal.Decimal `json:"originalPrice" comment:"原始单价"` + DiscountPrice decimal.Decimal `json:"discountPrice" comment:"折扣价格"` + IsDefault int `json:"isDefault" comment:"是否默认套餐 0-无 1-是 2-否"` + Remark string `json:"remark" comment:"备注"` + Status string `json:"status" comment:"套餐状态(字典 rewal_status)"` + common.ControlBy +} + +func (s *MemberRenwalConfigInsertReq) Generate(model *models.MemberRenwalConfig) { + if s.Id == 0 { + model.Model = common.Model{Id: s.Id} + } + model.PackageName = s.PackageName + model.DurationDay = s.DurationDay + model.OriginalPrice = s.OriginalPrice + model.DiscountPrice = s.DiscountPrice + model.IsDefault = s.IsDefault + model.Remark = s.Remark + model.Status = s.Status + model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的 +} + +func (s *MemberRenwalConfigInsertReq) GetId() interface{} { + return s.Id +} + +type MemberRenwalConfigUpdateReq struct { + Id int `uri:"id" comment:"主键"` // 主键 + PackageName string `json:"packageName" comment:"套餐名称"` + DurationDay int `json:"durationDay" comment:"续期时间(天)"` + OriginalPrice decimal.Decimal `json:"originalPrice" comment:"原始单价"` + DiscountPrice decimal.Decimal `json:"discountPrice" comment:"折扣价格"` + IsDefault int `json:"isDefault" comment:"是否默认套餐 0-无 1-是 2-否"` + Remark string `json:"remark" comment:"备注"` + Status string `json:"status" comment:"套餐状态(字典 rewal_status)"` + common.ControlBy +} + +func (s *MemberRenwalConfigUpdateReq) Generate(model *models.MemberRenwalConfig) { + if s.Id == 0 { + model.Model = common.Model{Id: s.Id} + } + model.PackageName = s.PackageName + model.DurationDay = s.DurationDay + model.OriginalPrice = s.OriginalPrice + model.DiscountPrice = s.DiscountPrice + model.IsDefault = s.IsDefault + model.Status = s.Status + model.Remark = s.Remark + model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的 +} + +func (s *MemberRenwalConfigUpdateReq) GetId() interface{} { + return s.Id +} + +// MemberRenwalConfigGetReq 功能获取请求参数 +type MemberRenwalConfigGetReq struct { + Id int `uri:"id"` +} + +func (s *MemberRenwalConfigGetReq) GetId() interface{} { + return s.Id +} + +// MemberRenwalConfigDeleteReq 功能删除请求参数 +type MemberRenwalConfigDeleteReq struct { + Ids []int `json:"ids"` +} + +func (s *MemberRenwalConfigDeleteReq) GetId() interface{} { + return s.Ids +} diff --git a/app/admin/service/member_balance.go b/app/admin/service/member_balance.go new file mode 100644 index 0000000..61e1bb0 --- /dev/null +++ b/app/admin/service/member_balance.go @@ -0,0 +1,109 @@ +package service + +import ( + "errors" + + "github.com/go-admin-team/go-admin-core/sdk/service" + "gorm.io/gorm" + + "go-admin/app/admin/models" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" + cDto "go-admin/common/dto" +) + +type MemberBalance struct { + service.Service +} + +// GetPage 获取MemberBalance列表 +func (e *MemberBalance) GetPage(c *dto.MemberBalanceGetPageReq, p *actions.DataPermission, list *[]models.MemberBalance, count *int64) error { + var err error + var data models.MemberBalance + + err = e.Orm.Model(&data). + Scopes( + cDto.MakeCondition(c.GetNeedSearch()), + cDto.Paginate(c.GetPageSize(), c.GetPageIndex()), + actions.Permission(data.TableName(), p), + ). + Find(list).Limit(-1).Offset(-1). + Count(count).Error + if err != nil { + e.Log.Errorf("MemberBalanceService GetPage error:%s \r\n", err) + return err + } + return nil +} + +// Get 获取MemberBalance对象 +func (e *MemberBalance) Get(d *dto.MemberBalanceGetReq, p *actions.DataPermission, model *models.MemberBalance) error { + var data models.MemberBalance + + err := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ). + First(model, d.GetId()).Error + if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { + err = errors.New("查看对象不存在或无权查看") + e.Log.Errorf("Service GetMemberBalance error:%s \r\n", err) + return err + } + if err != nil { + e.Log.Errorf("db error:%s", err) + return err + } + return nil +} + +// Insert 创建MemberBalance对象 +func (e *MemberBalance) Insert(c *dto.MemberBalanceInsertReq) error { + var err error + var data models.MemberBalance + c.Generate(&data) + err = e.Orm.Create(&data).Error + if err != nil { + e.Log.Errorf("MemberBalanceService Insert error:%s \r\n", err) + return err + } + return nil +} + +// Update 修改MemberBalance对象 +func (e *MemberBalance) Update(c *dto.MemberBalanceUpdateReq, p *actions.DataPermission) error { + var err error + var data = models.MemberBalance{} + e.Orm.Scopes( + actions.Permission(data.TableName(), p), + ).First(&data, c.GetId()) + c.Generate(&data) + + db := e.Orm.Save(&data) + if err = db.Error; err != nil { + e.Log.Errorf("MemberBalanceService Save error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权更新该数据") + } + return nil +} + +// Remove 删除MemberBalance +func (e *MemberBalance) Remove(d *dto.MemberBalanceDeleteReq, p *actions.DataPermission) error { + var data models.MemberBalance + + db := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ).Delete(&data, d.GetId()) + if err := db.Error; err != nil { + e.Log.Errorf("Service RemoveMemberBalance error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权删除该数据") + } + return nil +} diff --git a/app/admin/service/member_balance_log.go b/app/admin/service/member_balance_log.go new file mode 100644 index 0000000..76abfd5 --- /dev/null +++ b/app/admin/service/member_balance_log.go @@ -0,0 +1,109 @@ +package service + +import ( + "errors" + + "github.com/go-admin-team/go-admin-core/sdk/service" + "gorm.io/gorm" + + "go-admin/app/admin/models" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" + cDto "go-admin/common/dto" +) + +type MemberBalanceLog struct { + service.Service +} + +// GetPage 获取MemberBalanceLog列表 +func (e *MemberBalanceLog) GetPage(c *dto.MemberBalanceLogGetPageReq, p *actions.DataPermission, list *[]models.MemberBalanceLog, count *int64) error { + var err error + var data models.MemberBalanceLog + + err = e.Orm.Model(&data). + Scopes( + cDto.MakeCondition(c.GetNeedSearch()), + cDto.Paginate(c.GetPageSize(), c.GetPageIndex()), + actions.Permission(data.TableName(), p), + ). + Find(list).Limit(-1).Offset(-1). + Count(count).Error + if err != nil { + e.Log.Errorf("MemberBalanceLogService GetPage error:%s \r\n", err) + return err + } + return nil +} + +// Get 获取MemberBalanceLog对象 +func (e *MemberBalanceLog) Get(d *dto.MemberBalanceLogGetReq, p *actions.DataPermission, model *models.MemberBalanceLog) error { + var data models.MemberBalanceLog + + err := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ). + First(model, d.GetId()).Error + if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { + err = errors.New("查看对象不存在或无权查看") + e.Log.Errorf("Service GetMemberBalanceLog error:%s \r\n", err) + return err + } + if err != nil { + e.Log.Errorf("db error:%s", err) + return err + } + return nil +} + +// Insert 创建MemberBalanceLog对象 +func (e *MemberBalanceLog) Insert(c *dto.MemberBalanceLogInsertReq) error { + var err error + var data models.MemberBalanceLog + c.Generate(&data) + err = e.Orm.Create(&data).Error + if err != nil { + e.Log.Errorf("MemberBalanceLogService Insert error:%s \r\n", err) + return err + } + return nil +} + +// Update 修改MemberBalanceLog对象 +func (e *MemberBalanceLog) Update(c *dto.MemberBalanceLogUpdateReq, p *actions.DataPermission) error { + var err error + var data = models.MemberBalanceLog{} + e.Orm.Scopes( + actions.Permission(data.TableName(), p), + ).First(&data, c.GetId()) + c.Generate(&data) + + db := e.Orm.Save(&data) + if err = db.Error; err != nil { + e.Log.Errorf("MemberBalanceLogService Save error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权更新该数据") + } + return nil +} + +// Remove 删除MemberBalanceLog +func (e *MemberBalanceLog) Remove(d *dto.MemberBalanceLogDeleteReq, p *actions.DataPermission) error { + var data models.MemberBalanceLog + + db := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ).Delete(&data, d.GetId()) + if err := db.Error; err != nil { + e.Log.Errorf("Service RemoveMemberBalanceLog error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权删除该数据") + } + return nil +} diff --git a/app/admin/service/member_renwa_log.go b/app/admin/service/member_renwa_log.go new file mode 100644 index 0000000..1449a4f --- /dev/null +++ b/app/admin/service/member_renwa_log.go @@ -0,0 +1,109 @@ +package service + +import ( + "errors" + + "github.com/go-admin-team/go-admin-core/sdk/service" + "gorm.io/gorm" + + "go-admin/app/admin/models" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" + cDto "go-admin/common/dto" +) + +type MemberRenwaLog struct { + service.Service +} + +// GetPage 获取MemberRenwaLog列表 +func (e *MemberRenwaLog) GetPage(c *dto.MemberRenwaLogGetPageReq, p *actions.DataPermission, list *[]models.MemberRenwaLog, count *int64) error { + var err error + var data models.MemberRenwaLog + + err = e.Orm.Model(&data). + Scopes( + cDto.MakeCondition(c.GetNeedSearch()), + cDto.Paginate(c.GetPageSize(), c.GetPageIndex()), + actions.Permission(data.TableName(), p), + ). + Find(list).Limit(-1).Offset(-1). + Count(count).Error + if err != nil { + e.Log.Errorf("MemberRenwaLogService GetPage error:%s \r\n", err) + return err + } + return nil +} + +// Get 获取MemberRenwaLog对象 +func (e *MemberRenwaLog) Get(d *dto.MemberRenwaLogGetReq, p *actions.DataPermission, model *models.MemberRenwaLog) error { + var data models.MemberRenwaLog + + err := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ). + First(model, d.GetId()).Error + if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { + err = errors.New("查看对象不存在或无权查看") + e.Log.Errorf("Service GetMemberRenwaLog error:%s \r\n", err) + return err + } + if err != nil { + e.Log.Errorf("db error:%s", err) + return err + } + return nil +} + +// Insert 创建MemberRenwaLog对象 +func (e *MemberRenwaLog) Insert(c *dto.MemberRenwaLogInsertReq) error { + var err error + var data models.MemberRenwaLog + c.Generate(&data) + err = e.Orm.Create(&data).Error + if err != nil { + e.Log.Errorf("MemberRenwaLogService Insert error:%s \r\n", err) + return err + } + return nil +} + +// Update 修改MemberRenwaLog对象 +func (e *MemberRenwaLog) Update(c *dto.MemberRenwaLogUpdateReq, p *actions.DataPermission) error { + var err error + var data = models.MemberRenwaLog{} + e.Orm.Scopes( + actions.Permission(data.TableName(), p), + ).First(&data, c.GetId()) + c.Generate(&data) + + db := e.Orm.Save(&data) + if err = db.Error; err != nil { + e.Log.Errorf("MemberRenwaLogService Save error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权更新该数据") + } + return nil +} + +// Remove 删除MemberRenwaLog +func (e *MemberRenwaLog) Remove(d *dto.MemberRenwaLogDeleteReq, p *actions.DataPermission) error { + var data models.MemberRenwaLog + + db := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ).Delete(&data, d.GetId()) + if err := db.Error; err != nil { + e.Log.Errorf("Service RemoveMemberRenwaLog error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权删除该数据") + } + return nil +} diff --git a/app/admin/service/member_renwal_config.go b/app/admin/service/member_renwal_config.go new file mode 100644 index 0000000..09f4e83 --- /dev/null +++ b/app/admin/service/member_renwal_config.go @@ -0,0 +1,109 @@ +package service + +import ( + "errors" + + "github.com/go-admin-team/go-admin-core/sdk/service" + "gorm.io/gorm" + + "go-admin/app/admin/models" + "go-admin/app/admin/service/dto" + "go-admin/common/actions" + cDto "go-admin/common/dto" +) + +type MemberRenwalConfig struct { + service.Service +} + +// GetPage 获取MemberRenwalConfig列表 +func (e *MemberRenwalConfig) GetPage(c *dto.MemberRenwalConfigGetPageReq, p *actions.DataPermission, list *[]models.MemberRenwalConfig, count *int64) error { + var err error + var data models.MemberRenwalConfig + + err = e.Orm.Model(&data). + Scopes( + cDto.MakeCondition(c.GetNeedSearch()), + cDto.Paginate(c.GetPageSize(), c.GetPageIndex()), + actions.Permission(data.TableName(), p), + ). + Find(list).Limit(-1).Offset(-1). + Count(count).Error + if err != nil { + e.Log.Errorf("MemberRenwalConfigService GetPage error:%s \r\n", err) + return err + } + return nil +} + +// Get 获取MemberRenwalConfig对象 +func (e *MemberRenwalConfig) Get(d *dto.MemberRenwalConfigGetReq, p *actions.DataPermission, model *models.MemberRenwalConfig) error { + var data models.MemberRenwalConfig + + err := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ). + First(model, d.GetId()).Error + if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { + err = errors.New("查看对象不存在或无权查看") + e.Log.Errorf("Service GetMemberRenwalConfig error:%s \r\n", err) + return err + } + if err != nil { + e.Log.Errorf("db error:%s", err) + return err + } + return nil +} + +// Insert 创建MemberRenwalConfig对象 +func (e *MemberRenwalConfig) Insert(c *dto.MemberRenwalConfigInsertReq) error { + var err error + var data models.MemberRenwalConfig + c.Generate(&data) + err = e.Orm.Create(&data).Error + if err != nil { + e.Log.Errorf("MemberRenwalConfigService Insert error:%s \r\n", err) + return err + } + return nil +} + +// Update 修改MemberRenwalConfig对象 +func (e *MemberRenwalConfig) Update(c *dto.MemberRenwalConfigUpdateReq, p *actions.DataPermission) error { + var err error + var data = models.MemberRenwalConfig{} + e.Orm.Scopes( + actions.Permission(data.TableName(), p), + ).First(&data, c.GetId()) + c.Generate(&data) + + db := e.Orm.Save(&data) + if err = db.Error; err != nil { + e.Log.Errorf("MemberRenwalConfigService Save error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权更新该数据") + } + return nil +} + +// Remove 删除MemberRenwalConfig +func (e *MemberRenwalConfig) Remove(d *dto.MemberRenwalConfigDeleteReq, p *actions.DataPermission) error { + var data models.MemberRenwalConfig + + db := e.Orm.Model(&data). + Scopes( + actions.Permission(data.TableName(), p), + ).Delete(&data, d.GetId()) + if err := db.Error; err != nil { + e.Log.Errorf("Service RemoveMemberRenwalConfig error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权删除该数据") + } + return nil +} diff --git a/cmd/migrate/migration/version-local/doc.go b/cmd/migrate/migration/version-local/doc.go deleted file mode 100644 index 2cec8bc..0000000 --- a/cmd/migrate/migration/version-local/doc.go +++ /dev/null @@ -1,8 +0,0 @@ -package version_local - -func init() { -} - -/** -开发者项目的迁移脚本放在这个目录里,init写法参考version目录里的migrate或者自动生成 -*/ diff --git a/cmd/migrate/server.go b/cmd/migrate/server.go index b1667ca..6c888be 100644 --- a/cmd/migrate/server.go +++ b/cmd/migrate/server.go @@ -3,21 +3,22 @@ package migrate import ( "bytes" "fmt" - "github.com/go-admin-team/go-admin-core/sdk" - "github.com/go-admin-team/go-admin-core/sdk/pkg" "strconv" "text/template" "time" + "github.com/go-admin-team/go-admin-core/sdk" + "github.com/go-admin-team/go-admin-core/sdk/pkg" + "github.com/go-admin-team/go-admin-core/config/source/file" "github.com/spf13/cobra" - "github.com/go-admin-team/go-admin-core/sdk/config" "go-admin/cmd/migrate/migration" _ "go-admin/cmd/migrate/migration/version" - _ "go-admin/cmd/migrate/migration/version-local" "go-admin/common/database" "go-admin/common/models" + + "github.com/go-admin-team/go-admin-core/sdk/config" ) var ( diff --git a/exchange-single b/exchange-single new file mode 100644 index 0000000..3b907ad Binary files /dev/null and b/exchange-single differ