Browse Source

云打包

master
huangjiajun 1 month ago
parent
commit
fded6cc25b
25 changed files with 3954 additions and 734 deletions
  1. +66
    -0
      app/hdl/cloud_bundle/hdl_base.go
  2. +35
    -0
      app/hdl/cloud_bundle/hdl_img_base.go
  3. +81
    -0
      app/hdl/cloud_bundle/hdl_list.go
  4. +35
    -0
      app/hdl/cloud_bundle/hdl_version_info.go
  5. +4
    -0
      app/hdl/comm/hdl_comm.go
  6. +1
    -1
      app/hdl/financial_center/hdl_withdraw.go
  7. +25
    -0
      app/hdl/hdl_config.go
  8. +22
    -6
      app/hdl/notice/hdl_aliyun_sms.go
  9. +28
    -30
      app/md/financial_center/md_withdraw.go
  10. +87
    -0
      app/md/md_cloud_bundle.go
  11. +5
    -0
      app/md/md_cofig.go
  12. +5
    -0
      app/md/md_comm.go
  13. +22
    -8
      app/md/md_notice.go
  14. +22
    -1
      app/router/router.go
  15. +63
    -0
      app/svc/cloud_bundle/svc_base.go
  16. +33
    -0
      app/svc/cloud_bundle/svc_img_base.go
  17. +129
    -0
      app/svc/cloud_bundle/svc_list.go
  18. +56
    -0
      app/svc/cloud_bundle/svc_version_info.go
  19. +62
    -24
      app/svc/notice/svc_aliyun_sms.go
  20. +12
    -6
      app/svc/notice/svc_notice.go
  21. +10
    -6
      app/svc/svc_comm.go
  22. +1252
    -317
      docs/docs.go
  23. +1251
    -315
      docs/swagger.json
  24. +647
    -19
      docs/swagger.yaml
  25. +1
    -1
      go.mod

+ 66
- 0
app/hdl/cloud_bundle/hdl_base.go View File

@@ -0,0 +1,66 @@
package cloud_bundle

import (
"applet/app/e"
"applet/app/hdl/comm"
"applet/app/svc"
"applet/app/svc/cloud_bundle"
"github.com/gin-gonic/gin"
"strings"
)

// Base
// @Summary 打包机使用-云打包基本信息
// @Tags 打包机使用
// @Description 打包机使用-云打包基本信息
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Success 200 {object} md.CloudBundleBaseResp "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/base [get]
func Base(c *gin.Context) {
cloud_bundle.Base(c)
}

// UpdateState
// @Summary 打包机使用-云打包更新状态等
// @Tags 打包机使用
// @Description 打包机使用-云打包更新状态
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.CloudBundleUpdateStateReq true "(分页信息必填)"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/del [post]
func UpdateState(c *gin.Context) {
cloud_bundle.UpdateState(c)
}

// Upload
// @Summary 打包机使用-云打包-上传许可链接(获取)
// @Tags 打包机使用
// @Description 打包机使用-云打包-上传许可链接(获取)
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body comm.ImgReqUploadReq true "签名上传url"
// @Success 200 {string} "许可链接"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/upload [POST]
func Upload(c *gin.Context) {
var args comm.ImgReqUploadReq
err := c.ShouldBindJSON(&args)
if err != nil {
err = svc.HandleValidateErr(err)
err1 := err.(e.E)
e.OutErr(c, err1.Code, err1.Error())
return
}
if strings.Contains(args.FileName, ".apk") == false && strings.Contains(args.FileName, ".ipa") == false {
e.OutErr(c, 400, e.NewErr(400, "请上传APK 或IPA格式"))
return
}
comm.CommOss(c, args)
}

+ 35
- 0
app/hdl/cloud_bundle/hdl_img_base.go View File

@@ -0,0 +1,35 @@
package cloud_bundle

import (
"applet/app/svc/cloud_bundle"
"github.com/gin-gonic/gin"
)

// ImgBase
// @Summary 基本配置-云打包-图片配置
// @Tags 基本配置
// @Description 基本配置-图片配置
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Success 200 {object} md.CloudBundleImgResp "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/img/base [get]
func ImgBase(c *gin.Context) {
cloud_bundle.ImgBase(c)
}

// ImgBaseSave
// @Summary 基本配置-图片配置
// @Tags 基本配置
// @Description 基本配置-图片配置
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.CloudBundleImgResp true "(分页信息必填)"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/img/base/save [post]
func ImgBaseSave(c *gin.Context) {
cloud_bundle.ImgBaseSave(c)
}

+ 81
- 0
app/hdl/cloud_bundle/hdl_list.go View File

@@ -0,0 +1,81 @@
package cloud_bundle

import (
"applet/app/svc/cloud_bundle"
"github.com/gin-gonic/gin"
)

// List
// @Summary 基本设置-云打包版本列表
// @Tags 基本设置
// @Description 基本设置-云打包版本列表
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.CloudBundleReq true "(分页信息必填)"
// @Success 200 {object} md.CloudBundleResp "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/list [post]
func List(c *gin.Context) {
cloud_bundle.List(c)
}

// Build
// @Summary 基本设置-云打包操作
// @Tags 基本设置
// @Description 基本设置-云打包操作
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.CloudBundleBuildReq true "(分页信息必填)"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/build [post]
func Build(c *gin.Context) {
cloud_bundle.Build(c)
}

// Del
// @Summary 基本设置-云打包删除
// @Tags 基本设置
// @Description 基本设置-云打包删除
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.ArticleDelReq true "(分页信息必填)"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/del [post]
func Del(c *gin.Context) {
cloud_bundle.Del(c)
}

// AuditSet
// @Summary 基本设置-云打包-设置为审核模板
// @Tags 基本设置
// @Description 基本设置-云打包-设置为审核模板
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.CommReq true "(分页信息必填)"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/audit/set [post]
func AuditSet(c *gin.Context) {
cloud_bundle.AuditSet(c)
}

// AuditClear
// @Summary 基本设置-云打包-清除审核模板
// @Tags 基本设置
// @Description 基本设置-云打包-清除审核模板
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.AuditClearReq true "(分页信息必填)"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/audit/clear [post]
func AuditClear(c *gin.Context) {
cloud_bundle.AuditClear(c)
}

+ 35
- 0
app/hdl/cloud_bundle/hdl_version_info.go View File

@@ -0,0 +1,35 @@
package cloud_bundle

import (
"applet/app/svc/cloud_bundle"
"github.com/gin-gonic/gin"
)

// VersionBase
// @Summary 基本配置-云打包-图片配置
// @Tags 基本配置
// @Description 基本配置-图片配置
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Success 200 {object} md.CloudBundleVersionResp "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/version/base [get]
func VersionBase(c *gin.Context) {
cloud_bundle.VersionBase(c)
}

// VersionBaseSave
// @Summary 基本配置-图片配置
// @Tags 基本配置
// @Description 基本配置-图片配置
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.CloudBundleVersion true "(分页信息必填)"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/cloudBundle/version/base/save [post]
func VersionBaseSave(c *gin.Context) {
cloud_bundle.VersionBaseSave(c)
}

+ 4
- 0
app/hdl/comm/hdl_comm.go View File

@@ -125,6 +125,7 @@ type ImgReqUploadResp struct {
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body comm.ImgReqUploadReq true "签名上传url"
// @Success 200 {string} "许可链接"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/comm/getOssUrl [POST]
@@ -137,6 +138,9 @@ func GetOssUrl(c *gin.Context) {
e.OutErr(c, err1.Code, err1.Error())
return
}
CommOss(c, args)
}
func CommOss(c *gin.Context, args ImgReqUploadReq) {
redisConn := cache.GetPool().Get()
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn)
sysCfgs, err := sysCfgDb.SysCfgGetAll()


+ 1
- 1
app/hdl/financial_center/hdl_withdraw.go View File

@@ -65,7 +65,7 @@ func GetWithdrawSetting(c *gin.Context) {
return
}
}
var frequency md.WithdrawFrequencySettingStruct
var frequency md2.WithdrawFrequencySettingStruct
utils.Unserialize([]byte(setting.FrequencySet), &frequency)
resp := md.GetWithdrawSettingResp{
Id: setting.Id,


+ 25
- 0
app/hdl/hdl_config.go View File

@@ -0,0 +1,25 @@
package hdl

import (
"applet/app/e"
"applet/app/md"
"applet/app/svc"
"github.com/gin-gonic/gin"
)

// Config
// @Summary 基本配置
// @Tags 基本配置
// @Description 基本配置
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Success 200 {object} md.ConfigResp "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/config [get]
func Config(c *gin.Context) {
res := md.ConfigResp{}
res.OssUrl = svc.GetOssDomain()
e.OutSuc(c, res, nil)
return
}

+ 22
- 6
app/hdl/notice/hdl_aliyun_sms.go View File

@@ -20,18 +20,19 @@ func AliyunSmsFilePhone(c *gin.Context) {
notice.AliyunSmsFilePhone(c)
}

// AliyunSmsBase
// @Summary 消息中心-短信推送记录-通知模板
// AliyunSmsList
// @Summary 消息中心-短信推送记录-通知模板(跟app推送记录的通知模板一样的效果)
// @Tags 消息中心
// @Description 短信推送记录-通知模板
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.NoticeAliyunSmsListReq true "(分页信息必填)"
// @Success 200 {object} md.NoticeAliyunSmsListResp "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/notice/aliyunSms/base [get]
func AliyunSmsBase(c *gin.Context) {
notice.AliyunSmsBase(c)
// @Router /api/notice/aliyunSms/list [get]
func AliyunSmsList(c *gin.Context) {
notice.AliyunSmsList(c)
}

// AliyunSmsSave
@@ -41,7 +42,7 @@ func AliyunSmsBase(c *gin.Context) {
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body string true "数组 把列表的数组传过来"
// @Param req body md.NoticeAliyunSmsSaveReq true "参数"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/notice/aliyunSms/save [post]
@@ -49,6 +50,21 @@ func AliyunSmsSave(c *gin.Context) {
notice.AliyunSmsSave(c)
}

// AliyunSmsDel
// @Summary 消息中心-短信推送记录-通知模板删除
// @Tags 消息中心
// @Description 短信推送记录-通知模板删除
// @Accept json
// @Produce json
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Param req body md.NoticeDelReq true "(分页信息必填)"
// @Success 200 {string} "具体数据"
// @Failure 400 {object} md.Response "具体错误"
// @Router /api/notice/aliyunSms/del [post]
func AliyunSmsDel(c *gin.Context) {
notice.AliyunSmsDel(c)
}

// AliyunSmsSaleBase
// @Summary 消息中心-短信推送记录-营销短信-通知模板
// @Tags 消息中心


+ 28
- 30
app/md/financial_center/md_withdraw.go View File

@@ -1,5 +1,7 @@
package md

import "code.fnuoos.com/EggPlanet/egg_system_rules.git/rule/egg_energy/md"

type Paginate struct {
Limit int `json:"limit"` // 每页大小
Page int `json:"page"` // 页数
@@ -7,39 +9,35 @@ type Paginate struct {
}

type GetWithdrawSettingResp struct {
Id int64 `json:"id"`
FrequencySet WithdrawFrequencySettingStruct `json:"frequency_set"` // 频率设置(0:日 1:周 2:月 3:年)
WithdrawType int `json:"withdraw_type"` // 提现方式(1:支付宝 2:微信)
VipLevelLimit int `json:"vip_level_limit"` // 提现等级限制
IsRealName int `json:"is_real_name"` // 是否实名(0:否 1:是)
WithdrawNumsLimit int `json:"withdraw_nums_limit"` // 提现次数限制(对应上方设置周期,0为不限制,失败、驳回不计数 )
WithdrawAmountLimit string `json:"withdraw_amount_limit"` // 提现金额限制(0为不限制,大于等于该金额才可以申请提现 )
WithdrawMultipleLimit string `json:"withdraw_multiple_limit"` // 提现倍数限制(0为不限制,金额限制倍数才可以申请提现 )
IsSupportDecimalPoint int `json:"is_support_decimal_point"` // 是否支持小数点(0:否 1:是)
IsAuto int `json:"is_auto"` // 是否开启自动提现(0:否 1:是)
WithdrawTimeInterval string `json:"withdraw_time_interval"` // 提现时段
WithdrawFeeSet string `json:"withdraw_fee_set"` // 提现手续费设置
CreateAt string `json:"create_at"` // 申请时间
UpdateAt string `json:"update_at"` // 处理时间
Id int64 `json:"id"`
FrequencySet md.WithdrawFrequencySettingStruct `json:"frequency_set"` // 频率设置(0:日 1:周 2:月 3:年)
WithdrawType int `json:"withdraw_type"` // 提现方式(1:支付宝 2:微信)
VipLevelLimit int `json:"vip_level_limit"` // 提现等级限制
IsRealName int `json:"is_real_name"` // 是否实名(0:否 1:是)
WithdrawNumsLimit int `json:"withdraw_nums_limit"` // 提现次数限制(对应上方设置周期,0为不限制,失败、驳回不计数 )
WithdrawAmountLimit string `json:"withdraw_amount_limit"` // 提现金额限制(0为不限制,大于等于该金额才可以申请提现 )
WithdrawMultipleLimit string `json:"withdraw_multiple_limit"` // 提现倍数限制(0为不限制,金额限制倍数才可以申请提现 )
IsSupportDecimalPoint int `json:"is_support_decimal_point"` // 是否支持小数点(0:否 1:是)
IsAuto int `json:"is_auto"` // 是否开启自动提现(0:否 1:是)
WithdrawTimeInterval string `json:"withdraw_time_interval"` // 提现时段
WithdrawFeeSet string `json:"withdraw_fee_set"` // 提现手续费设置
CreateAt string `json:"create_at"` // 申请时间
UpdateAt string `json:"update_at"` // 处理时间
}

type UpdateWithdrawSettingReq struct {
Id int64 `json:"id,required"`
FrequencySet WithdrawFrequencySettingStruct `json:"frequency_set"` // 频率设置(num 个 duration) (duration (0.天 1.小时 2.周 3.月 4.年))
WithdrawType int `json:"withdraw_type"` // 提现方式(1:支付宝 2:微信)
VipLevelLimit int `json:"vip_level_limit"` // 提现等级限制
IsRealName int `json:"is_real_name"` // 是否实名(0:否 1:是)
WithdrawNumsLimit int `json:"withdraw_nums_limit"` // 提现次数限制(对应上方设置周期,0为不限制,失败、驳回不计数 )
WithdrawAmountLimit string `json:"withdraw_amount_limit"` // 提现金额限制(0为不限制,大于等于该金额才可以申请提现 )
WithdrawMultipleLimit string `json:"withdraw_multiple_limit"` // 提现倍数限制(0为不限制,金额限制倍数才可以申请提现 )
IsSupportDecimalPoint int `json:"is_support_decimal_point"` // 是否支持小数点(0:否 1:是)
IsAuto int `json:"is_auto"` // 是否开启自动提现(0:否 1:是)
WithdrawTimeInterval string `json:"withdraw_time_interval"` // 提现时段
WithdrawFeeSet string `json:"withdraw_fee_set"` // 提现手续费设置
}
type WithdrawFrequencySettingStruct struct { //swag 生成不了,把这个挪出来了
Duration int `json:"duration"` // 周期 (0.天 1.小时 2.周 3.天 4.月 5.年)
Num int `json:"num"` // 周期数
Id int64 `json:"id,required"`
FrequencySet md.WithdrawFrequencySettingStruct `json:"frequency_set"` // 频率设置(num 个 duration) (duration (0.天 1.小时 2.周 3.月 4.年))
WithdrawType int `json:"withdraw_type"` // 提现方式(1:支付宝 2:微信)
VipLevelLimit int `json:"vip_level_limit"` // 提现等级限制
IsRealName int `json:"is_real_name"` // 是否实名(0:否 1:是)
WithdrawNumsLimit int `json:"withdraw_nums_limit"` // 提现次数限制(对应上方设置周期,0为不限制,失败、驳回不计数 )
WithdrawAmountLimit string `json:"withdraw_amount_limit"` // 提现金额限制(0为不限制,大于等于该金额才可以申请提现 )
WithdrawMultipleLimit string `json:"withdraw_multiple_limit"` // 提现倍数限制(0为不限制,金额限制倍数才可以申请提现 )
IsSupportDecimalPoint int `json:"is_support_decimal_point"` // 是否支持小数点(0:否 1:是)
IsAuto int `json:"is_auto"` // 是否开启自动提现(0:否 1:是)
WithdrawTimeInterval string `json:"withdraw_time_interval"` // 提现时段
WithdrawFeeSet string `json:"withdraw_fee_set"` // 提现手续费设置
}
type GetWithdrawApplyListReq struct {
Uid string `json:"uid"` // 用户 ID


+ 87
- 0
app/md/md_cloud_bundle.go View File

@@ -0,0 +1,87 @@
package md

type CloudBundleReq struct {
Page string `json:"page,required"` // 页数
Limit string `json:"limit,required"` // 每页大小
}
type CloudBundleResp struct {
Total int64 `json:"total"`
List []CloudBundleList `json:"list"`
LastBit string `json:"last_bit"`
LastIsCombine string `json:"last_is_combine"`
LastAndroid string `json:"last_android"`
ListIos string `json:"list_ios"`
}
type CloudBundleList struct {
Id string `json:"id"`
BuildId string `json:"build_id"`
Version string `json:"version"`
Os string `json:"os"`
State string `json:"state"`
Memo string `json:"memo"`
Src string `json:"src"`
Bit string `json:"bit"`
ApplyAt string `json:"apply_at"`
FinishAt string `json:"finish_at"`
IsCombine string `json:"is_combine"`
IsAuditing string `json:"is_auditing"`
}
type CloudBundleBuildReq struct {
Memo string `json:"memo"`
Version string `json:"version"`
Os string `json:"os"`
Bit []string `json:"bit"`
IsCombine string `json:"isCombine"`
}
type CloudBundleBase struct {
AndroidLogo string `json:"android_logo"`
AndroidStartImg []map[string]string `json:"android_start_img"`
IosLogo string `json:"ios_logo"`
IosStartImg []map[string]string `json:"ios_start_img"`
}
type CloudBundleBaseResp struct {
AndroidLogo string `json:"android_logo"`
AndroidStartImg []map[string]string `json:"android_start_img"`
IosLogo string `json:"ios_logo"`
IosStartImg []map[string]string `json:"ios_start_img"`
}
type CloudBundleUpdateStateReq struct {
Id string `json:"id"`
State string `json:"state"`
Src string `json:"src"`
BuildId string `json:"build_id"`
BuildNumber string `json:"build_number"`
ErrorMsg string `json:"error_msg"`
}
type CloudBundleImgResp struct {
AndroidLogo string `json:"android_logo"`
AndroidLogoUrl string `json:"android_logo_url"`
AndroidStartImg []map[string]string `json:"android_start_img"`
IosLogo string `json:"ios_logo"`
IosLogoUrl string `json:"ios_logo_url"`
IosStartImg []map[string]string `json:"ios_start_img"`
Guide []Guide `json:"guide"`
}

type Guide struct {
BgImage string `json:"bg_image"`
BgImageUrl string `json:"bg_image_url"`
ContentImage string `json:"content_image"`
ContentImageUrl string `json:"content_image_url"`
}
type AuditClearReq struct {
Os string `json:"os" example:"1-安卓 2-ios"`
}
type CloudBundleVersion struct {
Type string `json:"type"`
Img string `json:"img"`
ImgUrl string `json:"img_url"`
Name string `json:"name"`
Version string `json:"version"`
Url string `json:"url"`
Content string `json:"content"`
IsMust string `json:"is_must"`
}
type CloudBundleVersionResp struct {
Version []CloudBundleVersion `json:"version"`
}

+ 5
- 0
app/md/md_cofig.go View File

@@ -0,0 +1,5 @@
package md

type ConfigResp struct {
OssUrl string `json:"oss_url" example:"阿里云图片链接"`
}

+ 5
- 0
app/md/md_comm.go View File

@@ -0,0 +1,5 @@
package md

type CommReq struct {
Id string `json:"id"`
}

+ 22
- 8
app/md/md_notice.go View File

@@ -15,12 +15,20 @@ type NoticeList struct {
Title string `json:"title"`
Content string `json:"content"`
Type string `json:"type"`
IsShow string `json:"is_show"`

Day string `json:"day" example:" xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写 sign是未签到 login是未登录)"`
NoticeDay string `json:"notice_day" example:" xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写 sign是未签到 login是未登录)"`
}
type NoticeSaveReq struct {
Id string `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Type string `json:"type"`
IsShow string `json:"is_show"`

Day string `json:"day" example:" xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写 sign是未签到 login是未登录)"`
NoticeDay string `json:"notice_day" example:" xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写 sign是未签到 login是未登录)"`
}
type NoticeDelReq struct {
Id []string `json:"id"`
@@ -65,16 +73,22 @@ type NoticeAliyunSmsListResp struct {
List []NoticeAliyunSmsList `json:"list"`
}
type NoticeAliyunSmsList struct {
Id string `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Type string `json:"type"`
Id string `json:"id"`
Title string `json:"title"`
Content string `json:"content" example:"这是 填短信模板id"`
Type string `json:"type"`
IsShow string `json:"is_show"`
Day string `json:"day" example:" xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写 sign是未签到 login是未登录)"`
NoticeDay string `json:"notice_day" example:" xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写 sign是未签到 login是未登录)"`
}
type NoticeAliyunSmsSaveReq struct {
Id string `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Type string `json:"type"`
Id string `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
IsShow string `json:"is_show"`
Type string `json:"type"`
Day string `json:"day" example:" xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写 sign是未签到 login是未登录)"`
NoticeDay string `json:"notice_day" example:" xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写 sign是未签到 login是未登录)"`
}
type NoticeAliyunSmsDelReq struct {
Id []string `json:"id"`


+ 22
- 1
app/router/router.go View File

@@ -5,6 +5,7 @@ import (
"applet/app/hdl"
"applet/app/hdl/advertising"
"applet/app/hdl/article"
"applet/app/hdl/cloud_bundle"
"applet/app/hdl/comm"
"applet/app/hdl/financial_center"
"applet/app/hdl/im"
@@ -61,8 +62,15 @@ func Init() *gin.Engine {
func route(r *gin.RouterGroup) {
r.GET("/test", hdl.Demo)
r.POST("/login", hdl.Login)
{
//打包机调用,不需要校验
r.GET("/cloudBundle/base", cloud_bundle.Base) //打包基本信息
r.GET("/cloudBundle/update/state", cloud_bundle.UpdateState) //打包更新状态
r.GET("/cloudBundle/upload", cloud_bundle.Upload) //打包 上传apk
}
r.Use(mw.Auth) // 以下接口需要JWT验证
rComm(r.Group("/comm"))
r.GET("/config", hdl.Config)
rIm(r.Group("/im"))
r.Use(mw.CheckPermission) // 检测权限
rInstitutionalManagement(r.Group("/institutionalManagement"))
@@ -74,6 +82,7 @@ func route(r *gin.RouterGroup) {
rNotice(r.Group("/notice"))
rArticle(r.Group("/article"))
rUserFeedback(r.Group("/userFeedback"))
rCloudBundle(r.Group("/cloudBundle")) //云打包
}

func rSettCenter(r *gin.RouterGroup) { //设置中心
@@ -110,8 +119,9 @@ func rNotice(r *gin.RouterGroup) {
rAliyunSms := r.Group("/aliyunSms") //阿里云短信
{
rAliyunSms.POST("/file/phone", notice.AliyunSmsFilePhone)
rAliyunSms.GET("/base", notice.AliyunSmsBase)
rAliyunSms.POST("/list", notice.AliyunSmsList)
rAliyunSms.POST("/save", notice.AliyunSmsSave)
rAliyunSms.POST("/del", notice.AliyunSmsDel)
rAliyunSms.GET("/sale/base", notice.AliyunSmsSaleBase)
rAliyunSms.POST("/sale/save", notice.AliyunSmsSaleSave)
rAliyunSms.POST("/push/list", notice.AliyunSmsPushList)
@@ -148,6 +158,17 @@ func rUserFeedback(r *gin.RouterGroup) { //用户反馈
rContent.POST("/del", user_feedback.Del)
}
}
func rCloudBundle(r *gin.RouterGroup) { //云打包
r.POST("/list", cloud_bundle.List)
r.POST("/build", cloud_bundle.Build)
r.POST("/del", cloud_bundle.Del)
r.POST("/audit/set", cloud_bundle.AuditSet)
r.POST("/audit/clear", cloud_bundle.AuditClear)
r.GET("/img/base", cloud_bundle.ImgBase)
r.POST("/img/base/save", cloud_bundle.ImgBaseSave)
r.GET("/version/base", cloud_bundle.VersionBase)
r.POST("/version/base/save", cloud_bundle.VersionBaseSave)
}
func rInstitutionalManagement(r *gin.RouterGroup) { //制度管理
rPublicPlatoon := r.Group("/publicPlatoon") //公排设置
{


+ 63
- 0
app/svc/cloud_bundle/svc_base.go View File

@@ -0,0 +1,63 @@
package cloud_bundle

import (
"applet/app/db"
"applet/app/e"
"applet/app/md"
"applet/app/svc"
"applet/app/utils"
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement"
"encoding/json"
"github.com/gin-gonic/gin"
)

func Base(c *gin.Context) {
appCloudBundleData := svc.GetSysCfgStr("app_cloud_bundle_data")
tmp := md.CloudBundleBase{}
json.Unmarshal([]byte(appCloudBundleData), &tmp)
for k, v := range tmp.AndroidStartImg {
tmp.AndroidStartImg[k]["img"] = svc.GetOssUrl(v["img"])
}
for k, v := range tmp.IosStartImg {
tmp.IosStartImg[k]["img"] = svc.GetOssUrl(v["img"])
}
var res = md.CloudBundleBaseResp{
AndroidLogo: svc.GetOssUrl(tmp.AndroidLogo),
AndroidStartImg: tmp.IosStartImg,
IosLogo: svc.GetOssUrl(tmp.IosLogo),
IosStartImg: tmp.IosStartImg,
}
e.OutSuc(c, res, nil)
return
}
func UpdateState(c *gin.Context) {
var req *md.CloudBundleUpdateStateReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
NewCloudBundleDb := implement.NewCloudBundleDb(db.Db)
data, _ := NewCloudBundleDb.GetCloudBundle(req.Id)
if data == nil {
e.OutErr(c, 400, e.NewErr(400, "记录不存在"))
return
}
if req.State != "" {
data.State = utils.StrToInt(req.State)
}
if req.ErrorMsg != "" {
data.ErrorMsg = req.ErrorMsg
}
if req.Src != "" {
data.Src = req.Src
}
if req.BuildNumber != "" {
data.BuildNumber = req.BuildNumber
}
if req.BuildId != "" {
data.BuildId = req.BuildId
}
db.Db.Where("id=?", data.Id).Cols("build_id,build_number,error_msg,state,src").Update(data)
e.OutSuc(c, "success", nil)
return
}

+ 33
- 0
app/svc/cloud_bundle/svc_img_base.go View File

@@ -0,0 +1,33 @@
package cloud_bundle

import (
"applet/app/db"
"applet/app/e"
"applet/app/md"
"applet/app/svc"
"applet/app/utils"
"applet/app/utils/cache"
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement"
"encoding/json"
"github.com/gin-gonic/gin"
)

func ImgBase(c *gin.Context) {
appCloudBundleData := svc.GetSysCfgStr("app_cloud_bundle_data")
res := md.CloudBundleImgResp{}
json.Unmarshal([]byte(appCloudBundleData), &res)
e.OutSuc(c, res, nil)
return
}
func ImgBaseSave(c *gin.Context) {
var req md.CloudBundleImgResp
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
conn := cache.GetPool().Get()
cfgDb := implement.NewSysCfgDb(db.Db, conn)
cfgDb.SysCfgUpdate("app_cloud_bundle_data", utils.SerializeStr(req))
e.OutSuc(c, "success", nil)
return
}

+ 129
- 0
app/svc/cloud_bundle/svc_list.go View File

@@ -0,0 +1,129 @@
package cloud_bundle

import (
"applet/app/db"
"applet/app/e"
"applet/app/md"
"applet/app/svc"
"applet/app/utils"
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement"
"code.fnuoos.com/EggPlanet/egg_models.git/src/model"
"github.com/gin-gonic/gin"
"strings"
"time"
)

func List(c *gin.Context) {
var req *md.CloudBundleReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
var resp md.CloudBundleResp
noticeList := make([]md.CloudBundleList, 0)
NewCloudBundleDb := implement.NewCloudBundleDb(db.Db)
notice, total, _ := NewCloudBundleDb.FindCloudBundleAndTotal(req.Page, req.Limit)
resp.Total = total
if notice != nil {
for _, v := range *notice {
tmp := md.CloudBundleList{
Id: utils.IntToStr(v.Id),
BuildId: v.BuildId,
Version: "v" + v.Version,
Os: utils.IntToStr(v.Os),
State: utils.IntToStr(v.State),
Memo: v.Memo,
Src: svc.GetOssUrl(v.Src),
Bit: v.Bit,
IsCombine: v.IsCombine,
FinishAt: "--",
IsAuditing: utils.IntToStr(v.IsAuditing),
}
if v.ApplyAt > 0 {
tmp.ApplyAt = time.Unix(int64(v.ApplyAt), 0).Format("2006-01-02 15:04:05")
}
if v.FinishAt > 0 && v.State == 999 {
tmp.FinishAt = time.Unix(int64(v.FinishAt), 0).Format("2006-01-02 15:04:05")
}
noticeList = append(noticeList, tmp)
}
}
lastAndroid, _ := NewCloudBundleDb.GetCloudBundleLast("1")
resp.LastBit = "64"
resp.LastIsCombine = "0"
if lastAndroid != nil {
resp.LastAndroid = "v" + lastAndroid.Version
resp.LastBit = lastAndroid.Bit
resp.LastIsCombine = lastAndroid.IsCombine
}
lastIos, _ := NewCloudBundleDb.GetCloudBundleLast("2")
if lastIos != nil {
resp.ListIos = "v" + lastIos.Version
}
resp.List = noticeList
e.OutSuc(c, resp, nil)
return
}
func Build(c *gin.Context) {
var req *md.CloudBundleBuildReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
count, _ := db.Db.Where("os=? and version=?", req.Os, req.Version).Count(&model.CloudBundle{})
if count > 0 {
e.OutErr(c, 400, e.NewErr(400, "版本已存在"))
return
}
tmp := model.CloudBundle{
Os: utils.StrToInt(req.Os),
Version: req.Version,
ApplyAt: int(time.Now().Unix()),
Memo: req.Memo,
AppletId: 0,
IsCombine: req.IsCombine,
NewBit: strings.Join(req.Bit, ","),
}
tmp.Bit = strings.Join(req.Bit, ",")
if req.IsCombine != "1" {
for _, v := range req.Bit {
tmp.Bit = v
db.Db.Insert(&tmp)
}
} else {
db.Db.Insert(&tmp)
}
//TODO 调用打包机
e.OutSuc(c, "success", nil)
return
}
func Del(c *gin.Context) {
var req *md.ArticleDelReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
db.Db.In("id", req.Id).Delete(&model.CloudBundle{})
e.OutSuc(c, "success", nil)
return
}
func AuditSet(c *gin.Context) {
var req *md.CommReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
db.Db.Where("id=?", req.Id).Cols("is_auditing").Update(&model.CloudBundle{IsAuditing: 1})
e.OutSuc(c, "success", nil)
return
}
func AuditClear(c *gin.Context) {
var req *md.AuditClearReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
db.Db.Where("os=?", req.Os).Cols("is_auditing").Update(&model.CloudBundle{IsAuditing: 0})
e.OutSuc(c, "success", nil)
return
}

+ 56
- 0
app/svc/cloud_bundle/svc_version_info.go View File

@@ -0,0 +1,56 @@
package cloud_bundle

import (
"applet/app/db"
"applet/app/e"
"applet/app/md"
"applet/app/svc"
"applet/app/utils"
"applet/app/utils/cache"
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement"
"encoding/json"
"github.com/gin-gonic/gin"
)

func VersionBase(c *gin.Context) {
appCloudBundleData := svc.GetSysCfgStr("app_version")
tmp := make([]md.CloudBundleVersion, 0)
json.Unmarshal([]byte(appCloudBundleData), &tmp)
data := []md.CloudBundleVersion{
{Type: "station", Name: "本站"},
{Type: "yingyongbao", Name: "应用宝"},
{Type: "ios", Name: "IOS"},
{Type: "huawei", Name: "华为"},
{Type: "xiaomi", Name: "小米"},
{Type: "meizu", Name: "魅族"},
{Type: "vivo", Name: "VIVO"},
{Type: "oppo", Name: "OPPO"},
}
for k, v := range data {
data[k].Img = v.Type + "_icon.png"
data[k].ImgUrl = svc.GetOssUrl(v.Type + "_icon.png")
for _, v1 := range tmp {
if v1.Type == v.Type {
data[k].Version = v1.Version
data[k].Url = v1.Url
data[k].Content = v1.Content
data[k].IsMust = v1.IsMust
}
}
}
res := md.CloudBundleVersionResp{Version: data}
e.OutSuc(c, res, nil)
return
}
func VersionBaseSave(c *gin.Context) {
var req []md.CloudBundleVersion
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
conn := cache.GetPool().Get()
cfgDb := implement.NewSysCfgDb(db.Db, conn)
cfgDb.SysCfgUpdate("app_version", utils.SerializeStr(req))
e.OutSuc(c, "success", nil)
return
}

+ 62
- 24
app/svc/notice/svc_aliyun_sms.go View File

@@ -8,7 +8,6 @@ import (
"applet/app/utils/cache"
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement"
"code.fnuoos.com/EggPlanet/egg_models.git/src/model"
"encoding/json"
"github.com/360EntSecGroup-Skylar/excelize"
"github.com/gin-gonic/gin"
"time"
@@ -42,43 +41,82 @@ func AliyunSmsFilePhone(c *gin.Context) {
e.OutSuc(c, res, nil)
return
}
func AliyunSmsBase(c *gin.Context) {
SelectData := []map[string]string{
{"name": "签到提醒", "value": "sign", "temple_id": "", "is_show": "1"},
{"name": "注销提醒", "value": "user_delete", "temple_id": "", "is_show": "1"},
{"name": "提现到账提醒", "value": "withdraw", "temple_id": "", "is_show": "1"},
{"name": "X天未登录提醒", "value": "login", "temple_id": "", "is_show": "1"},
{"name": "升级提醒", "value": "update", "temple_id": "", "is_show": "1"},
func AliyunSmsList(c *gin.Context) {
var req *md.NoticeAliyunSmsListReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
redisConn := cache.GetPool().Get()
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn)
aliyunSmsNotice := sysCfgDb.SysCfgGetWithDb("aliyun_sms_notice")
notice := make([]map[string]string, 0)
json.Unmarshal([]byte(aliyunSmsNotice), &notice)
for k, v := range SelectData {
for _, v1 := range notice {
if v1["value"] == v["value"] {
SelectData[k]["temple_id"] = v1["temple_id"]
SelectData[k]["temple_id"] = v1["is_show"]
var resp md.NoticeAliyunSmsListResp
noticeList := make([]md.NoticeAliyunSmsList, 0)
NewJpushNoticeDb := implement.NewAliyunSmsNoticeDb(db.Db)
notice, total, _ := NewJpushNoticeDb.FindAliyunSmsNoticeAndTotal(req.Page, req.Limit, "")
resp.Total = total
resp.SelectData = []map[string]string{
{"name": "X小时未签到提醒", "value": "sign"},
{"name": "注销提醒", "value": "user_delete"},
{"name": "提现到账提醒", "value": "withdraw"},
{"name": "X小时未登录提醒", "value": "login"},
{"name": "升级提醒", "value": "update"},
}
if notice != nil {
for _, v := range *notice {
tmp := md.NoticeAliyunSmsList{
Id: utils.IntToStr(v.Id),
Title: v.Title,
Day: utils.IntToStr(v.Day),
NoticeDay: utils.IntToStr(v.NoticeDay),
Content: v.Content,
Type: v.Type,
IsShow: utils.IntToStr(v.IsShow),
}
noticeList = append(noticeList, tmp)
}
}
e.OutSuc(c, SelectData, nil)
resp.List = noticeList
e.OutSuc(c, resp, nil)
return
}
func AliyunSmsSave(c *gin.Context) {
var req []map[string]string
var req *md.NoticeAliyunSmsSaveReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
redisConn := cache.GetPool().Get()
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn)
sysCfgDb.SysCfgUpdate("aliyun_sms_notice", utils.SerializeStr(req))
var data = new(model.JpushNotice)
if utils.StrToInt(req.Id) > 0 {
NewJpushNoticeDb := implement.NewJpushNoticeDb(db.Db)
notice, _ := NewJpushNoticeDb.GetJpushNotice(req.Id)
if notice == nil {
e.OutErr(c, 400, e.NewErr(400, "记录不存在"))
return
}
data = notice
} else {
data.CreateAt = time.Now()
db.Db.Insert(data)
}
data.UpdateAt = time.Now()
data.Content = req.Content
data.Type = req.Type
data.Title = req.Title
data.Day = utils.StrToInt(req.Day)
data.NoticeDay = utils.StrToInt(req.NoticeDay)
data.IsShow = utils.StrToInt(req.IsShow)
db.Db.Where("id=?", data.Id).Update(data)
e.OutSuc(c, "success", nil)
return
}
func AliyunSmsDel(c *gin.Context) {
var req *md.NoticeDelReq
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
db.Db.In("id", req.Id).Delete(&model.AliyunSmsNotice{})
e.OutSuc(c, "success", nil)
return
}

func AliyunSmsSaleBase(c *gin.Context) {

redisConn := cache.GetPool().Get()


+ 12
- 6
app/svc/notice/svc_notice.go View File

@@ -31,18 +31,21 @@ func List(c *gin.Context) {
{"name": "升级后等级", "value": "{升级后等级}"},
}
resp.SelectData = []map[string]string{
{"name": "签到提醒", "value": "sign"},
{"name": "X小时未签到提醒", "value": "sign"},
{"name": "提现到账提醒", "value": "withdraw"},
{"name": "X未登录提醒", "value": "login"},
{"name": "X小时未登录提醒", "value": "login"},
{"name": "升级提醒", "value": "update"},
}
if notice != nil {
for _, v := range *notice {
tmp := md.NoticeList{
Id: utils.IntToStr(v.Id),
Title: v.Title,
Content: v.Content,
Type: v.Type,
Id: utils.IntToStr(v.Id),
Day: utils.IntToStr(v.Day),
NoticeDay: utils.IntToStr(v.NoticeDay),
IsShow: utils.IntToStr(v.IsShow),
Title: v.Title,
Content: v.Content,
Type: v.Type,
}
noticeList = append(noticeList, tmp)
}
@@ -74,6 +77,9 @@ func Save(c *gin.Context) {
data.Content = req.Content
data.Type = req.Type
data.Title = req.Title
data.Day = utils.StrToInt(req.Day)
data.NoticeDay = utils.StrToInt(req.NoticeDay)
data.IsShow = utils.StrToInt(req.IsShow)
db.Db.Where("id=?", data.Id).Update(data)
e.OutSuc(c, "success", nil)
return


+ 10
- 6
app/svc/svc_comm.go View File

@@ -10,16 +10,20 @@ import (
func GetOssUrl(img string) string {
redisConn := cache.GetPool().Get()
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn)
sysCfg := sysCfgDb.SysCfgFindWithDb("oss_domain")
sysCfg := sysCfgDb.SysCfgFindWithDb("oss_domain", "oss_bucket_scheme")
if strings.Contains(img, "http") == false && img != "" {
http := ""
if strings.Contains(sysCfg["oss_domain"], "http") == false {
http = "http://"
}
img = http + sysCfg["oss_domain"] + img
http := sysCfg["oss_bucket_scheme"]
img = http + "://" + sysCfg["oss_domain"] + "/" + img
}
return img
}
func GetOssDomain() string {
redisConn := cache.GetPool().Get()
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn)
sysCfg := sysCfgDb.SysCfgFindWithDb("oss_domain", "oss_bucket_scheme")
http := sysCfg["oss_bucket_scheme"]
return http + "://" + sysCfg["oss_domain"] + "/"
}
func GetSysCfgStr(key string) string {
redisConn := cache.GetPool().Get()
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn)


+ 1252
- 317
docs/docs.go
File diff suppressed because it is too large
View File


+ 1251
- 315
docs/swagger.json
File diff suppressed because it is too large
View File


+ 647
- 19
docs/swagger.yaml View File

@@ -11,15 +11,6 @@ definitions:
description: 总数据量
type: integer
type: object
applet_app_md_financial_center.WithdrawFrequencySettingStruct:
properties:
duration:
description: 周期 (0.天 1.小时 2.周 3.天 4.月 5.年)
type: integer
num:
description: 周期数
type: integer
type: object
applet_app_md_im.GetBasicResp:
properties:
chat_sensitive_words:
@@ -203,6 +194,18 @@ definitions:
example: oss上传文件类型选项,以逗号分割
type: string
type: object
comm.ImgReqUploadReq:
properties:
content_type:
example: image/jpeg
type: string
file_name:
example: 文件名
type: string
required:
- content_type
- file_name
type: object
md.ActivePointsWalletNode:
properties:
amount:
@@ -663,6 +666,12 @@ definitions:
title:
type: string
type: object
md.AuditClearReq:
properties:
os:
example: 1-安卓 2-ios
type: string
type: object
md.BalanceDetailNode:
properties:
after_amount:
@@ -731,6 +740,172 @@ definitions:
description: 微信号
type: string
type: object
md.CloudBundleBaseResp:
properties:
android_logo:
type: string
android_start_img:
items:
additionalProperties:
type: string
type: object
type: array
ios_logo:
type: string
ios_start_img:
items:
additionalProperties:
type: string
type: object
type: array
type: object
md.CloudBundleBuildReq:
properties:
bit:
items:
type: string
type: array
isCombine:
type: string
memo:
type: string
os:
type: string
version:
type: string
type: object
md.CloudBundleImgResp:
properties:
android_logo:
type: string
android_logo_url:
type: string
android_start_img:
items:
additionalProperties:
type: string
type: object
type: array
guide:
items:
$ref: '#/definitions/md.Guide'
type: array
ios_logo:
type: string
ios_logo_url:
type: string
ios_start_img:
items:
additionalProperties:
type: string
type: object
type: array
type: object
md.CloudBundleList:
properties:
apply_at:
type: string
bit:
type: string
build_id:
type: string
finish_at:
type: string
id:
type: string
is_auditing:
type: string
is_combine:
type: string
memo:
type: string
os:
type: string
src:
type: string
state:
type: string
version:
type: string
type: object
md.CloudBundleReq:
properties:
limit:
description: 每页大小
type: string
page:
description: 页数
type: string
type: object
md.CloudBundleResp:
properties:
last_android:
type: string
last_bit:
type: string
last_is_combine:
type: string
list:
items:
$ref: '#/definitions/md.CloudBundleList'
type: array
list_ios:
type: string
total:
type: integer
type: object
md.CloudBundleUpdateStateReq:
properties:
build_id:
type: string
build_number:
type: string
error_msg:
type: string
id:
type: string
src:
type: string
state:
type: string
type: object
md.CloudBundleVersion:
properties:
content:
type: string
img:
type: string
img_url:
type: string
is_must:
type: string
name:
type: string
type:
type: string
url:
type: string
version:
type: string
type: object
md.CloudBundleVersionResp:
properties:
version:
items:
$ref: '#/definitions/md.CloudBundleVersion'
type: array
type: object
md.CommReq:
properties:
id:
type: string
type: object
md.ConfigResp:
properties:
oss_url:
example: 阿里云图片链接
type: string
type: object
md.DailyActivityAnalysisTopData:
properties:
activity_count:
@@ -1688,7 +1863,7 @@ definitions:
type: string
frequency_set:
allOf:
- $ref: '#/definitions/applet_app_md_financial_center.WithdrawFrequencySettingStruct'
- $ref: '#/definitions/md.WithdrawFrequencySettingStruct'
description: 频率设置(0:日 1:周 2:月 3:年)
id:
type: integer
@@ -1795,6 +1970,17 @@ definitions:
total:
type: integer
type: object
md.Guide:
properties:
bg_image:
type: string
bg_image_url:
type: string
content_image:
type: string
content_image_url:
type: string
type: object
md.LevelListNode:
properties:
count:
@@ -2156,9 +2342,20 @@ definitions:
md.NoticeAliyunSmsList:
properties:
content:
example: 这是 填短信模板id
type: string
day:
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写
sign是未签到 login是未登录)'
type: string
id:
type: string
is_show:
type: string
notice_day:
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写
sign是未签到 login是未登录)'
type: string
title:
type: string
type:
@@ -2192,8 +2389,18 @@ definitions:
properties:
content:
type: string
day:
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写
sign是未签到 login是未登录)'
type: string
id:
type: string
is_show:
type: string
notice_day:
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写
sign是未签到 login是未登录)'
type: string
title:
type: string
type:
@@ -2210,8 +2417,18 @@ definitions:
properties:
content:
type: string
day:
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写
sign是未签到 login是未登录)'
type: string
id:
type: string
is_show:
type: string
notice_day:
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写
sign是未签到 login是未登录)'
type: string
title:
type: string
type:
@@ -2297,8 +2514,18 @@ definitions:
properties:
content:
type: string
day:
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写
sign是未签到 login是未登录)'
type: string
id:
type: string
is_show:
type: string
notice_day:
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写
sign是未签到 login是未登录)'
type: string
title:
type: string
type:
@@ -2963,7 +3190,7 @@ definitions:
properties:
frequency_set:
allOf:
- $ref: '#/definitions/applet_app_md_financial_center.WithdrawFrequencySettingStruct'
- $ref: '#/definitions/md.WithdrawFrequencySettingStruct'
description: 频率设置(num 个 duration) (duration (0.天 1.小时 2.周 3.月 4.年))
id:
type: integer
@@ -3777,6 +4004,15 @@ definitions:
example: 货币类型名称
type: string
type: object
md.WithdrawFrequencySettingStruct:
properties:
duration:
description: 周期 (0.天 1.小时 2.周 3.月 4.年)
type: integer
num:
description: 周期数
type: integer
type: object
model.EggEnergyUserEggIndexWeight:
properties:
account_balance_exchange_egg_energy_nums:
@@ -4333,6 +4569,329 @@ paths:
summary: 文章资讯-文章列表-文章保存
tags:
- 文章资讯
/api/cloudBundle/audit/clear:
post:
consumes:
- application/json
description: 基本设置-云打包-清除审核模板
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.AuditClearReq'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
type: string
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本设置-云打包-清除审核模板
tags:
- 基本设置
/api/cloudBundle/audit/set:
post:
consumes:
- application/json
description: 基本设置-云打包-设置为审核模板
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.CommReq'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
type: string
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本设置-云打包-设置为审核模板
tags:
- 基本设置
/api/cloudBundle/base:
get:
consumes:
- application/json
description: 打包机使用-云打包基本信息
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
$ref: '#/definitions/md.CloudBundleBaseResp'
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 打包机使用-云打包基本信息
tags:
- 打包机使用
/api/cloudBundle/build:
post:
consumes:
- application/json
description: 基本设置-云打包操作
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.CloudBundleBuildReq'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
type: string
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本设置-云打包操作
tags:
- 基本设置
/api/cloudBundle/del:
post:
consumes:
- application/json
description: 基本设置-云打包删除
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.ArticleDelReq'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
type: string
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本设置-云打包删除
tags:
- 基本设置
/api/cloudBundle/img/base:
get:
consumes:
- application/json
description: 基本配置-图片配置
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
$ref: '#/definitions/md.CloudBundleImgResp'
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本配置-云打包-图片配置
tags:
- 基本配置
/api/cloudBundle/img/base/save:
post:
consumes:
- application/json
description: 基本配置-图片配置
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.CloudBundleImgResp'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
type: string
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本配置-图片配置
tags:
- 基本配置
/api/cloudBundle/list:
post:
consumes:
- application/json
description: 基本设置-云打包版本列表
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.CloudBundleReq'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
$ref: '#/definitions/md.CloudBundleResp'
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本设置-云打包版本列表
tags:
- 基本设置
/api/cloudBundle/upload:
post:
consumes:
- application/json
description: 打包机使用-云打包-上传许可链接(获取)
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: 签名上传url
in: body
name: req
required: true
schema:
$ref: '#/definitions/comm.ImgReqUploadReq'
produces:
- application/json
responses:
"200":
description: 许可链接
schema:
type: string
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 打包机使用-云打包-上传许可链接(获取)
tags:
- 打包机使用
/api/cloudBundle/version/base:
get:
consumes:
- application/json
description: 基本配置-图片配置
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
$ref: '#/definitions/md.CloudBundleVersionResp'
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本配置-云打包-图片配置
tags:
- 基本配置
/api/cloudBundle/version/base/save:
post:
consumes:
- application/json
description: 基本配置-图片配置
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.CloudBundleVersion'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
type: string
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本配置-图片配置
tags:
- 基本配置
/api/comm/getOssUrl:
post:
consumes:
@@ -4344,6 +4903,12 @@ paths:
name: Authorization
required: true
type: string
- description: 签名上传url
in: body
name: req
required: true
schema:
$ref: '#/definitions/comm.ImgReqUploadReq'
produces:
- application/json
responses:
@@ -4358,6 +4923,31 @@ paths:
summary: 通用请求-对象存储-上传许可链接(获取)
tags:
- 对象存储
/api/config:
get:
consumes:
- application/json
description: 基本配置
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
$ref: '#/definitions/md.ConfigResp'
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 基本配置
tags:
- 基本配置
/api/demo:
post:
consumes:
@@ -4368,7 +4958,8 @@ paths:
in: body
name: req
required: true
schema: {}
schema:
type: object
produces:
- application/json
responses:
@@ -6969,29 +7560,35 @@ paths:
summary: 制度中心-会员中心-用户管理-会员明细概况(获取)
tags:
- 会员中心
/api/notice/aliyunSms/base:
get:
/api/notice/aliyunSms/del:
post:
consumes:
- application/json
description: 短信推送记录-通知模板
description: 短信推送记录-通知模板删除
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.NoticeDelReq'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
$ref: '#/definitions/md.NoticeAliyunSmsListResp'
type: string
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 消息中心-短信推送记录-通知模板
summary: 消息中心-短信推送记录-通知模板删除
tags:
- 消息中心
/api/notice/aliyunSms/file/phone:
@@ -7024,6 +7621,37 @@ paths:
summary: 消息中心-短信推送记录-通知模板
tags:
- 消息中心
/api/notice/aliyunSms/list:
get:
consumes:
- application/json
description: 短信推送记录-通知模板
parameters:
- description: 验证参数Bearer和token空格拼接
in: header
name: Authorization
required: true
type: string
- description: (分页信息必填)
in: body
name: req
required: true
schema:
$ref: '#/definitions/md.NoticeAliyunSmsListReq'
produces:
- application/json
responses:
"200":
description: 具体数据
schema:
$ref: '#/definitions/md.NoticeAliyunSmsListResp'
"400":
description: 具体错误
schema:
$ref: '#/definitions/md.Response'
summary: 消息中心-短信推送记录-通知模板(跟app推送记录的通知模板一样的效果)
tags:
- 消息中心
/api/notice/aliyunSms/push/list:
post:
consumes:
@@ -7153,12 +7781,12 @@ paths:
name: Authorization
required: true
type: string
- description: 数组 把列表的数组传过来
- description:
in: body
name: req
required: true
schema:
type: string
$ref: '#/definitions/md.NoticeAliyunSmsSaveReq'
produces:
- application/json
responses:


+ 1
- 1
go.mod View File

@@ -33,7 +33,7 @@ require (
)

require (
code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20241126123220-2fadc60eff6f
code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20241127063655-6ff35d2075d5
code.fnuoos.com/EggPlanet/egg_system_rules.git v0.0.4-0.20241126134228-b1047bfb8475
code.fnuoos.com/go_rely_warehouse/zyos_go_es.git v1.0.1-0.20241118083738-0f22da9ba0be
code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5


Loading…
Cancel
Save