@@ -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) | |||||
} |
@@ -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) | |||||
} |
@@ -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) | |||||
} |
@@ -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) | |||||
} |
@@ -125,6 +125,7 @@ type ImgReqUploadResp struct { | |||||
// @Accept json | // @Accept json | ||||
// @Produce json | // @Produce json | ||||
// @param Authorization header string true "验证参数Bearer和token空格拼接" | // @param Authorization header string true "验证参数Bearer和token空格拼接" | ||||
// @Param req body comm.ImgReqUploadReq true "签名上传url" | |||||
// @Success 200 {string} "许可链接" | // @Success 200 {string} "许可链接" | ||||
// @Failure 400 {object} md.Response "具体错误" | // @Failure 400 {object} md.Response "具体错误" | ||||
// @Router /api/comm/getOssUrl [POST] | // @Router /api/comm/getOssUrl [POST] | ||||
@@ -137,6 +138,9 @@ func GetOssUrl(c *gin.Context) { | |||||
e.OutErr(c, err1.Code, err1.Error()) | e.OutErr(c, err1.Code, err1.Error()) | ||||
return | return | ||||
} | } | ||||
CommOss(c, args) | |||||
} | |||||
func CommOss(c *gin.Context, args ImgReqUploadReq) { | |||||
redisConn := cache.GetPool().Get() | redisConn := cache.GetPool().Get() | ||||
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn) | sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn) | ||||
sysCfgs, err := sysCfgDb.SysCfgGetAll() | sysCfgs, err := sysCfgDb.SysCfgGetAll() | ||||
@@ -65,7 +65,7 @@ func GetWithdrawSetting(c *gin.Context) { | |||||
return | return | ||||
} | } | ||||
} | } | ||||
var frequency md.WithdrawFrequencySettingStruct | |||||
var frequency md2.WithdrawFrequencySettingStruct | |||||
utils.Unserialize([]byte(setting.FrequencySet), &frequency) | utils.Unserialize([]byte(setting.FrequencySet), &frequency) | ||||
resp := md.GetWithdrawSettingResp{ | resp := md.GetWithdrawSettingResp{ | ||||
Id: setting.Id, | Id: setting.Id, | ||||
@@ -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 | |||||
} |
@@ -20,18 +20,19 @@ func AliyunSmsFilePhone(c *gin.Context) { | |||||
notice.AliyunSmsFilePhone(c) | notice.AliyunSmsFilePhone(c) | ||||
} | } | ||||
// AliyunSmsBase | |||||
// @Summary 消息中心-短信推送记录-通知模板 | |||||
// AliyunSmsList | |||||
// @Summary 消息中心-短信推送记录-通知模板(跟app推送记录的通知模板一样的效果) | |||||
// @Tags 消息中心 | // @Tags 消息中心 | ||||
// @Description 短信推送记录-通知模板 | // @Description 短信推送记录-通知模板 | ||||
// @Accept json | // @Accept json | ||||
// @Produce json | // @Produce json | ||||
// @param Authorization header string true "验证参数Bearer和token空格拼接" | // @param Authorization header string true "验证参数Bearer和token空格拼接" | ||||
// @Param req body md.NoticeAliyunSmsListReq true "(分页信息必填)" | |||||
// @Success 200 {object} md.NoticeAliyunSmsListResp "具体数据" | // @Success 200 {object} md.NoticeAliyunSmsListResp "具体数据" | ||||
// @Failure 400 {object} md.Response "具体错误" | // @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 | // AliyunSmsSave | ||||
@@ -41,7 +42,7 @@ func AliyunSmsBase(c *gin.Context) { | |||||
// @Accept json | // @Accept json | ||||
// @Produce json | // @Produce json | ||||
// @param Authorization header string true "验证参数Bearer和token空格拼接" | // @param Authorization header string true "验证参数Bearer和token空格拼接" | ||||
// @Param req body string true "数组 把列表的数组传过来" | |||||
// @Param req body md.NoticeAliyunSmsSaveReq true "参数" | |||||
// @Success 200 {string} "具体数据" | // @Success 200 {string} "具体数据" | ||||
// @Failure 400 {object} md.Response "具体错误" | // @Failure 400 {object} md.Response "具体错误" | ||||
// @Router /api/notice/aliyunSms/save [post] | // @Router /api/notice/aliyunSms/save [post] | ||||
@@ -49,6 +50,21 @@ func AliyunSmsSave(c *gin.Context) { | |||||
notice.AliyunSmsSave(c) | 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 | // AliyunSmsSaleBase | ||||
// @Summary 消息中心-短信推送记录-营销短信-通知模板 | // @Summary 消息中心-短信推送记录-营销短信-通知模板 | ||||
// @Tags 消息中心 | // @Tags 消息中心 | ||||
@@ -1,5 +1,7 @@ | |||||
package md | package md | ||||
import "code.fnuoos.com/EggPlanet/egg_system_rules.git/rule/egg_energy/md" | |||||
type Paginate struct { | type Paginate struct { | ||||
Limit int `json:"limit"` // 每页大小 | Limit int `json:"limit"` // 每页大小 | ||||
Page int `json:"page"` // 页数 | Page int `json:"page"` // 页数 | ||||
@@ -7,39 +9,35 @@ type Paginate struct { | |||||
} | } | ||||
type GetWithdrawSettingResp 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 { | 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 { | type GetWithdrawApplyListReq struct { | ||||
Uid string `json:"uid"` // 用户 ID | Uid string `json:"uid"` // 用户 ID | ||||
@@ -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"` | |||||
} |
@@ -0,0 +1,5 @@ | |||||
package md | |||||
type ConfigResp struct { | |||||
OssUrl string `json:"oss_url" example:"阿里云图片链接"` | |||||
} |
@@ -0,0 +1,5 @@ | |||||
package md | |||||
type CommReq struct { | |||||
Id string `json:"id"` | |||||
} |
@@ -15,12 +15,20 @@ type NoticeList struct { | |||||
Title string `json:"title"` | Title string `json:"title"` | ||||
Content string `json:"content"` | Content string `json:"content"` | ||||
Type string `json:"type"` | 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 { | type NoticeSaveReq struct { | ||||
Id string `json:"id"` | Id string `json:"id"` | ||||
Title string `json:"title"` | Title string `json:"title"` | ||||
Content string `json:"content"` | Content string `json:"content"` | ||||
Type string `json:"type"` | 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 { | type NoticeDelReq struct { | ||||
Id []string `json:"id"` | Id []string `json:"id"` | ||||
@@ -65,16 +73,22 @@ type NoticeAliyunSmsListResp struct { | |||||
List []NoticeAliyunSmsList `json:"list"` | List []NoticeAliyunSmsList `json:"list"` | ||||
} | } | ||||
type NoticeAliyunSmsList struct { | 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 { | 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 { | type NoticeAliyunSmsDelReq struct { | ||||
Id []string `json:"id"` | Id []string `json:"id"` | ||||
@@ -5,6 +5,7 @@ import ( | |||||
"applet/app/hdl" | "applet/app/hdl" | ||||
"applet/app/hdl/advertising" | "applet/app/hdl/advertising" | ||||
"applet/app/hdl/article" | "applet/app/hdl/article" | ||||
"applet/app/hdl/cloud_bundle" | |||||
"applet/app/hdl/comm" | "applet/app/hdl/comm" | ||||
"applet/app/hdl/financial_center" | "applet/app/hdl/financial_center" | ||||
"applet/app/hdl/im" | "applet/app/hdl/im" | ||||
@@ -61,8 +62,15 @@ func Init() *gin.Engine { | |||||
func route(r *gin.RouterGroup) { | func route(r *gin.RouterGroup) { | ||||
r.GET("/test", hdl.Demo) | r.GET("/test", hdl.Demo) | ||||
r.POST("/login", hdl.Login) | 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验证 | r.Use(mw.Auth) // 以下接口需要JWT验证 | ||||
rComm(r.Group("/comm")) | rComm(r.Group("/comm")) | ||||
r.GET("/config", hdl.Config) | |||||
rIm(r.Group("/im")) | rIm(r.Group("/im")) | ||||
r.Use(mw.CheckPermission) // 检测权限 | r.Use(mw.CheckPermission) // 检测权限 | ||||
rInstitutionalManagement(r.Group("/institutionalManagement")) | rInstitutionalManagement(r.Group("/institutionalManagement")) | ||||
@@ -74,6 +82,7 @@ func route(r *gin.RouterGroup) { | |||||
rNotice(r.Group("/notice")) | rNotice(r.Group("/notice")) | ||||
rArticle(r.Group("/article")) | rArticle(r.Group("/article")) | ||||
rUserFeedback(r.Group("/userFeedback")) | rUserFeedback(r.Group("/userFeedback")) | ||||
rCloudBundle(r.Group("/cloudBundle")) //云打包 | |||||
} | } | ||||
func rSettCenter(r *gin.RouterGroup) { //设置中心 | func rSettCenter(r *gin.RouterGroup) { //设置中心 | ||||
@@ -110,8 +119,9 @@ func rNotice(r *gin.RouterGroup) { | |||||
rAliyunSms := r.Group("/aliyunSms") //阿里云短信 | rAliyunSms := r.Group("/aliyunSms") //阿里云短信 | ||||
{ | { | ||||
rAliyunSms.POST("/file/phone", notice.AliyunSmsFilePhone) | rAliyunSms.POST("/file/phone", notice.AliyunSmsFilePhone) | ||||
rAliyunSms.GET("/base", notice.AliyunSmsBase) | |||||
rAliyunSms.POST("/list", notice.AliyunSmsList) | |||||
rAliyunSms.POST("/save", notice.AliyunSmsSave) | rAliyunSms.POST("/save", notice.AliyunSmsSave) | ||||
rAliyunSms.POST("/del", notice.AliyunSmsDel) | |||||
rAliyunSms.GET("/sale/base", notice.AliyunSmsSaleBase) | rAliyunSms.GET("/sale/base", notice.AliyunSmsSaleBase) | ||||
rAliyunSms.POST("/sale/save", notice.AliyunSmsSaleSave) | rAliyunSms.POST("/sale/save", notice.AliyunSmsSaleSave) | ||||
rAliyunSms.POST("/push/list", notice.AliyunSmsPushList) | rAliyunSms.POST("/push/list", notice.AliyunSmsPushList) | ||||
@@ -148,6 +158,17 @@ func rUserFeedback(r *gin.RouterGroup) { //用户反馈 | |||||
rContent.POST("/del", user_feedback.Del) | 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) { //制度管理 | func rInstitutionalManagement(r *gin.RouterGroup) { //制度管理 | ||||
rPublicPlatoon := r.Group("/publicPlatoon") //公排设置 | rPublicPlatoon := r.Group("/publicPlatoon") //公排设置 | ||||
{ | { | ||||
@@ -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 | |||||
} |
@@ -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 | |||||
} |
@@ -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 | |||||
} |
@@ -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 | |||||
} |
@@ -8,7 +8,6 @@ import ( | |||||
"applet/app/utils/cache" | "applet/app/utils/cache" | ||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | "code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | ||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/model" | "code.fnuoos.com/EggPlanet/egg_models.git/src/model" | ||||
"encoding/json" | |||||
"github.com/360EntSecGroup-Skylar/excelize" | "github.com/360EntSecGroup-Skylar/excelize" | ||||
"github.com/gin-gonic/gin" | "github.com/gin-gonic/gin" | ||||
"time" | "time" | ||||
@@ -42,43 +41,82 @@ func AliyunSmsFilePhone(c *gin.Context) { | |||||
e.OutSuc(c, res, nil) | e.OutSuc(c, res, nil) | ||||
return | 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), ¬ice) | |||||
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 | return | ||||
} | } | ||||
func AliyunSmsSave(c *gin.Context) { | func AliyunSmsSave(c *gin.Context) { | ||||
var req []map[string]string | |||||
var req *md.NoticeAliyunSmsSaveReq | |||||
if err := c.ShouldBindJSON(&req); err != nil { | if err := c.ShouldBindJSON(&req); err != nil { | ||||
e.OutErr(c, e.ERR_INVALID_ARGS, err) | e.OutErr(c, e.ERR_INVALID_ARGS, err) | ||||
return | 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) | e.OutSuc(c, "success", nil) | ||||
return | return | ||||
} | } | ||||
func AliyunSmsSaleBase(c *gin.Context) { | func AliyunSmsSaleBase(c *gin.Context) { | ||||
redisConn := cache.GetPool().Get() | redisConn := cache.GetPool().Get() | ||||
@@ -31,18 +31,21 @@ func List(c *gin.Context) { | |||||
{"name": "升级后等级", "value": "{升级后等级}"}, | {"name": "升级后等级", "value": "{升级后等级}"}, | ||||
} | } | ||||
resp.SelectData = []map[string]string{ | resp.SelectData = []map[string]string{ | ||||
{"name": "签到提醒", "value": "sign"}, | |||||
{"name": "X小时未签到提醒", "value": "sign"}, | |||||
{"name": "提现到账提醒", "value": "withdraw"}, | {"name": "提现到账提醒", "value": "withdraw"}, | ||||
{"name": "X天未登录提醒", "value": "login"}, | |||||
{"name": "X小时未登录提醒", "value": "login"}, | |||||
{"name": "升级提醒", "value": "update"}, | {"name": "升级提醒", "value": "update"}, | ||||
} | } | ||||
if notice != nil { | if notice != nil { | ||||
for _, v := range *notice { | for _, v := range *notice { | ||||
tmp := md.NoticeList{ | 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) | noticeList = append(noticeList, tmp) | ||||
} | } | ||||
@@ -74,6 +77,9 @@ func Save(c *gin.Context) { | |||||
data.Content = req.Content | data.Content = req.Content | ||||
data.Type = req.Type | data.Type = req.Type | ||||
data.Title = req.Title | 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) | db.Db.Where("id=?", data.Id).Update(data) | ||||
e.OutSuc(c, "success", nil) | e.OutSuc(c, "success", nil) | ||||
return | return | ||||
@@ -10,16 +10,20 @@ import ( | |||||
func GetOssUrl(img string) string { | func GetOssUrl(img string) string { | ||||
redisConn := cache.GetPool().Get() | redisConn := cache.GetPool().Get() | ||||
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn) | 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 != "" { | 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 | 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 { | func GetSysCfgStr(key string) string { | ||||
redisConn := cache.GetPool().Get() | redisConn := cache.GetPool().Get() | ||||
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn) | sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn) | ||||
@@ -11,15 +11,6 @@ definitions: | |||||
description: 总数据量 | description: 总数据量 | ||||
type: integer | type: integer | ||||
type: object | 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: | applet_app_md_im.GetBasicResp: | ||||
properties: | properties: | ||||
chat_sensitive_words: | chat_sensitive_words: | ||||
@@ -203,6 +194,18 @@ definitions: | |||||
example: oss上传文件类型选项,以逗号分割 | example: oss上传文件类型选项,以逗号分割 | ||||
type: string | type: string | ||||
type: object | 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: | md.ActivePointsWalletNode: | ||||
properties: | properties: | ||||
amount: | amount: | ||||
@@ -663,6 +666,12 @@ definitions: | |||||
title: | title: | ||||
type: string | type: string | ||||
type: object | type: object | ||||
md.AuditClearReq: | |||||
properties: | |||||
os: | |||||
example: 1-安卓 2-ios | |||||
type: string | |||||
type: object | |||||
md.BalanceDetailNode: | md.BalanceDetailNode: | ||||
properties: | properties: | ||||
after_amount: | after_amount: | ||||
@@ -731,6 +740,172 @@ definitions: | |||||
description: 微信号 | description: 微信号 | ||||
type: string | type: string | ||||
type: object | 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: | md.DailyActivityAnalysisTopData: | ||||
properties: | properties: | ||||
activity_count: | activity_count: | ||||
@@ -1688,7 +1863,7 @@ definitions: | |||||
type: string | type: string | ||||
frequency_set: | frequency_set: | ||||
allOf: | allOf: | ||||
- $ref: '#/definitions/applet_app_md_financial_center.WithdrawFrequencySettingStruct' | |||||
- $ref: '#/definitions/md.WithdrawFrequencySettingStruct' | |||||
description: 频率设置(0:日 1:周 2:月 3:年) | description: 频率设置(0:日 1:周 2:月 3:年) | ||||
id: | id: | ||||
type: integer | type: integer | ||||
@@ -1795,6 +1970,17 @@ definitions: | |||||
total: | total: | ||||
type: integer | type: integer | ||||
type: object | 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: | md.LevelListNode: | ||||
properties: | properties: | ||||
count: | count: | ||||
@@ -2156,9 +2342,20 @@ definitions: | |||||
md.NoticeAliyunSmsList: | md.NoticeAliyunSmsList: | ||||
properties: | properties: | ||||
content: | content: | ||||
example: 这是 填短信模板id | |||||
type: string | |||||
day: | |||||
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写 | |||||
sign是未签到 login是未登录)' | |||||
type: string | type: string | ||||
id: | id: | ||||
type: string | type: string | ||||
is_show: | |||||
type: string | |||||
notice_day: | |||||
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写 | |||||
sign是未签到 login是未登录)' | |||||
type: string | |||||
title: | title: | ||||
type: string | type: string | ||||
type: | type: | ||||
@@ -2192,8 +2389,18 @@ definitions: | |||||
properties: | properties: | ||||
content: | content: | ||||
type: string | type: string | ||||
day: | |||||
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写 | |||||
sign是未签到 login是未登录)' | |||||
type: string | |||||
id: | id: | ||||
type: string | type: string | ||||
is_show: | |||||
type: string | |||||
notice_day: | |||||
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写 | |||||
sign是未签到 login是未登录)' | |||||
type: string | |||||
title: | title: | ||||
type: string | type: string | ||||
type: | type: | ||||
@@ -2210,8 +2417,18 @@ definitions: | |||||
properties: | properties: | ||||
content: | content: | ||||
type: string | type: string | ||||
day: | |||||
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写 | |||||
sign是未签到 login是未登录)' | |||||
type: string | |||||
id: | id: | ||||
type: string | type: string | ||||
is_show: | |||||
type: string | |||||
notice_day: | |||||
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写 | |||||
sign是未签到 login是未登录)' | |||||
type: string | |||||
title: | title: | ||||
type: string | type: string | ||||
type: | type: | ||||
@@ -2297,8 +2514,18 @@ definitions: | |||||
properties: | properties: | ||||
content: | content: | ||||
type: string | type: string | ||||
day: | |||||
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 X小时,type=sign/login 的时候要显示前面的话填写 | |||||
sign是未签到 login是未登录)' | |||||
type: string | |||||
id: | id: | ||||
type: string | type: string | ||||
is_show: | |||||
type: string | |||||
notice_day: | |||||
example: ' xxx小时(未签到/未登录) 隔 xx小时通知一次 (这里是 隔 xx小时,type=sign/login 的时候要显示前面的话填写 | |||||
sign是未签到 login是未登录)' | |||||
type: string | |||||
title: | title: | ||||
type: string | type: string | ||||
type: | type: | ||||
@@ -2963,7 +3190,7 @@ definitions: | |||||
properties: | properties: | ||||
frequency_set: | frequency_set: | ||||
allOf: | allOf: | ||||
- $ref: '#/definitions/applet_app_md_financial_center.WithdrawFrequencySettingStruct' | |||||
- $ref: '#/definitions/md.WithdrawFrequencySettingStruct' | |||||
description: 频率设置(num 个 duration) (duration (0.天 1.小时 2.周 3.月 4.年)) | description: 频率设置(num 个 duration) (duration (0.天 1.小时 2.周 3.月 4.年)) | ||||
id: | id: | ||||
type: integer | type: integer | ||||
@@ -3777,6 +4004,15 @@ definitions: | |||||
example: 货币类型名称 | example: 货币类型名称 | ||||
type: string | type: string | ||||
type: object | type: object | ||||
md.WithdrawFrequencySettingStruct: | |||||
properties: | |||||
duration: | |||||
description: 周期 (0.天 1.小时 2.周 3.月 4.年) | |||||
type: integer | |||||
num: | |||||
description: 周期数 | |||||
type: integer | |||||
type: object | |||||
model.EggEnergyUserEggIndexWeight: | model.EggEnergyUserEggIndexWeight: | ||||
properties: | properties: | ||||
account_balance_exchange_egg_energy_nums: | account_balance_exchange_egg_energy_nums: | ||||
@@ -4333,6 +4569,329 @@ paths: | |||||
summary: 文章资讯-文章列表-文章保存 | summary: 文章资讯-文章列表-文章保存 | ||||
tags: | 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: | /api/comm/getOssUrl: | ||||
post: | post: | ||||
consumes: | consumes: | ||||
@@ -4344,6 +4903,12 @@ paths: | |||||
name: Authorization | name: Authorization | ||||
required: true | required: true | ||||
type: string | type: string | ||||
- description: 签名上传url | |||||
in: body | |||||
name: req | |||||
required: true | |||||
schema: | |||||
$ref: '#/definitions/comm.ImgReqUploadReq' | |||||
produces: | produces: | ||||
- application/json | - application/json | ||||
responses: | responses: | ||||
@@ -4358,6 +4923,31 @@ paths: | |||||
summary: 通用请求-对象存储-上传许可链接(获取) | summary: 通用请求-对象存储-上传许可链接(获取) | ||||
tags: | 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: | /api/demo: | ||||
post: | post: | ||||
consumes: | consumes: | ||||
@@ -4368,7 +4958,8 @@ paths: | |||||
in: body | in: body | ||||
name: req | name: req | ||||
required: true | required: true | ||||
schema: {} | |||||
schema: | |||||
type: object | |||||
produces: | produces: | ||||
- application/json | - application/json | ||||
responses: | responses: | ||||
@@ -6969,29 +7560,35 @@ paths: | |||||
summary: 制度中心-会员中心-用户管理-会员明细概况(获取) | summary: 制度中心-会员中心-用户管理-会员明细概况(获取) | ||||
tags: | tags: | ||||
- 会员中心 | - 会员中心 | ||||
/api/notice/aliyunSms/base: | |||||
get: | |||||
/api/notice/aliyunSms/del: | |||||
post: | |||||
consumes: | consumes: | ||||
- application/json | - application/json | ||||
description: 短信推送记录-通知模板 | |||||
description: 短信推送记录-通知模板删除 | |||||
parameters: | parameters: | ||||
- description: 验证参数Bearer和token空格拼接 | - description: 验证参数Bearer和token空格拼接 | ||||
in: header | in: header | ||||
name: Authorization | name: Authorization | ||||
required: true | required: true | ||||
type: string | type: string | ||||
- description: (分页信息必填) | |||||
in: body | |||||
name: req | |||||
required: true | |||||
schema: | |||||
$ref: '#/definitions/md.NoticeDelReq' | |||||
produces: | produces: | ||||
- application/json | - application/json | ||||
responses: | responses: | ||||
"200": | "200": | ||||
description: 具体数据 | description: 具体数据 | ||||
schema: | schema: | ||||
$ref: '#/definitions/md.NoticeAliyunSmsListResp' | |||||
type: string | |||||
"400": | "400": | ||||
description: 具体错误 | description: 具体错误 | ||||
schema: | schema: | ||||
$ref: '#/definitions/md.Response' | $ref: '#/definitions/md.Response' | ||||
summary: 消息中心-短信推送记录-通知模板 | |||||
summary: 消息中心-短信推送记录-通知模板删除 | |||||
tags: | tags: | ||||
- 消息中心 | - 消息中心 | ||||
/api/notice/aliyunSms/file/phone: | /api/notice/aliyunSms/file/phone: | ||||
@@ -7024,6 +7621,37 @@ paths: | |||||
summary: 消息中心-短信推送记录-通知模板 | summary: 消息中心-短信推送记录-通知模板 | ||||
tags: | 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: | /api/notice/aliyunSms/push/list: | ||||
post: | post: | ||||
consumes: | consumes: | ||||
@@ -7153,12 +7781,12 @@ paths: | |||||
name: Authorization | name: Authorization | ||||
required: true | required: true | ||||
type: string | type: string | ||||
- description: 数组 把列表的数组传过来 | |||||
- description: 参数 | |||||
in: body | in: body | ||||
name: req | name: req | ||||
required: true | required: true | ||||
schema: | schema: | ||||
type: string | |||||
$ref: '#/definitions/md.NoticeAliyunSmsSaveReq' | |||||
produces: | produces: | ||||
- application/json | - application/json | ||||
responses: | responses: | ||||
@@ -33,7 +33,7 @@ require ( | |||||
) | ) | ||||
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/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_es.git v1.0.1-0.20241118083738-0f22da9ba0be | ||||
code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 | code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 | ||||