MCPcopy Index your code
hub / github.com/TruthHun/BookStack / Qrcode

Method Qrcode

controllers/SettingController.go:154–228  ·  view source on GitHub ↗

二维码

()

Source from the content-addressed store, hash-verified

152
153// 二维码
154func (this *SettingController) Qrcode() {
155
156 if this.Ctx.Input.IsPost() {
157 file, moreFile, err := this.GetFile("qrcode")
158 alipay := true
159 if this.GetString("paytype") == "wxpay" {
160 alipay = false
161 }
162 if err != nil {
163 beego.Error(err.Error())
164 this.JsonResult(500, "读取文件异常")
165 }
166 defer file.Close()
167 ext := filepath.Ext(moreFile.Filename)
168
169 if !strings.EqualFold(ext, ".png") && !strings.EqualFold(ext, ".jpg") && !strings.EqualFold(ext, ".gif") && !strings.EqualFold(ext, ".jpeg") {
170 this.JsonResult(500, "不支持的图片格式")
171 }
172
173 savePath := fmt.Sprintf("uploads/qrcode/%v/%v%v", this.Member.MemberId, time.Now().Unix(), ext)
174 os.MkdirAll(filepath.Dir(savePath), 0777)
175 if err = this.SaveToFile("qrcode", savePath); err != nil {
176 this.JsonResult(1, "二维码保存失败", savePath)
177 }
178 url := ""
179 switch utils.StoreType {
180 case utils.StoreOss:
181 if err := store.ModelStoreOss.MoveToOss(savePath, savePath, true, false); err != nil {
182 beego.Error(err.Error())
183 } else {
184 url = strings.TrimRight(beego.AppConfig.String("oss::Domain"), "/ ") + "/" + savePath
185 }
186 case utils.StoreLocal:
187 if err := store.ModelStoreLocal.MoveToStore(savePath, savePath); err != nil {
188 beego.Error(err.Error())
189 } else {
190 url = "/" + savePath
191 }
192 }
193
194 var member models.Member
195 o := orm.NewOrm()
196 o.QueryTable("md_members").Filter("member_id", this.Member.MemberId).Filter("member_id", this.Member.MemberId).One(&member, "member_id", "wxpay", "alipay")
197 if member.MemberId > 0 {
198 dels := []string{}
199
200 if alipay {
201 dels = append(dels, member.Alipay)
202 member.Alipay = savePath
203 } else {
204 dels = append(dels, member.Wxpay)
205 member.Wxpay = savePath
206 }
207 if _, err := o.Update(&member, "wxpay", "alipay"); err == nil {
208 switch utils.StoreType {
209 case utils.StoreOss:
210 go store.ModelStoreOss.DelFromOss(dels...)
211 case utils.StoreLocal:

Callers

nothing calls this directly

Calls 8

JsonResultMethod · 0.80
MoveToOssMethod · 0.80
MoveToStoreMethod · 0.80
DelFromOssMethod · 0.80
DelFilesMethod · 0.80
GetQrcodeByUidMethod · 0.80
appendFunction · 0.50
UpdateMethod · 0.45

Tested by

no test coverage detected