119 lines
3.9 KiB
Go
119 lines
3.9 KiB
Go
|
package controller
|
|||
|
|
|||
|
import (
|
|||
|
"context"
|
|||
|
"regexp"
|
|||
|
"strconv"
|
|||
|
"strings"
|
|||
|
|
|||
|
"github.com/gogf/gf/v2/database/gdb"
|
|||
|
"github.com/gogf/gf/v2/frame/g"
|
|||
|
"github.com/tiger1103/gfast/v3/api/v1/common/coryCommon"
|
|||
|
busFolderFile "github.com/tiger1103/gfast/v3/internal/app/system/logic/busFolderFile"
|
|||
|
ct "github.com/tiger1103/gfast/v3/internal/app/system/logic/context"
|
|||
|
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/dao"
|
|||
|
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/model"
|
|||
|
"github.com/tiger1103/gfast/v3/library/liberr"
|
|||
|
)
|
|||
|
|
|||
|
// CommmonUpdateFile 修改施工人员图片/文件信息
|
|||
|
func CommmonUpdateFile(ctx context.Context, filesListReq []*model.BusConstructionUserFileListRes, id int64, wxOrPc string, openid string, projectId int64) (err error) {
|
|||
|
err = g.Try(ctx, func(ctx context.Context) {
|
|||
|
// 4、批量修改身份证等图片数据
|
|||
|
if filesListReq != nil && id != 0 {
|
|||
|
listReq := filesListReq
|
|||
|
for i := range listReq {
|
|||
|
//根据id+图片类型插入数据,如果数据存在则修改
|
|||
|
//if wxOrPc != "1" {
|
|||
|
// var str = ""
|
|||
|
// busfile := strings.Split(listReq[i].Path, ",")
|
|||
|
// for _, imgData := range busfile {
|
|||
|
// str = str + strings.Replace(imgData, "file", "wxfile", 1) + ","
|
|||
|
// }
|
|||
|
// listReq[i].Path = str[0 : len(str)-1]
|
|||
|
//}
|
|||
|
_, err = dao.BusConstructionUserFile.Ctx(ctx).WherePri(listReq[i].Id).Update(listReq[i])
|
|||
|
// 5、将图片信息添加到图库中
|
|||
|
pe := strings.Split(listReq[i].Path, ",")
|
|||
|
zjId := strconv.FormatUint(ct.New().GetLoginUser(ctx).Id, 10)
|
|||
|
if wxOrPc != "1" {
|
|||
|
zjId = openid
|
|||
|
for i, imgData := range pe {
|
|||
|
pe[i] = strings.Replace(imgData, "file", "wxfile", 1)
|
|||
|
}
|
|||
|
}
|
|||
|
// 判断是否是图片,不是就不允许进入图库
|
|||
|
for i, imgData := range pe {
|
|||
|
re := regexp.MustCompile(`(?i)\.(` + coryCommon.PictureSuffix + `)$`)
|
|||
|
match := re.FindString(imgData)
|
|||
|
if match != "" {
|
|||
|
err = busFolderFile.New().AllPicture(
|
|||
|
ctx,
|
|||
|
pe,
|
|||
|
3,
|
|||
|
dao.BusConstructionUserFile.Table(),
|
|||
|
listReq[i].Id,
|
|||
|
wxOrPc,
|
|||
|
zjId,
|
|||
|
"",
|
|||
|
projectId,
|
|||
|
)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
liberr.ErrIsNil(ctx, err)
|
|||
|
})
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// @Title BatchUpdateTheOpenidsOfIndividualTables 2024/4/26 15:07:00
|
|||
|
// @Description 批量更新各个表的openid (原因是最开始账号的openid是微信开发生成的,如果当前账号进入过了小程序那就根据小程序的微信openid来)
|
|||
|
// @Auth Cory
|
|||
|
// @param openid ---> "openid"
|
|||
|
// @Return error ---> "错误信息"
|
|||
|
func BatchUpdateTheOpenidsOfIndividualTables(ctx context.Context, openid string) (err error) {
|
|||
|
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
|||
|
err = g.Try(ctx, func(ctx context.Context) {
|
|||
|
tableNmaes := []string{
|
|||
|
"bus_attendance",
|
|||
|
"bus_complaint_box",
|
|||
|
"bus_constructiom_user_signature",
|
|||
|
"bus_construction_blacklist",
|
|||
|
"bus_question_offline",
|
|||
|
"bus_question_save",
|
|||
|
"bus_question_save_pdf",
|
|||
|
"bus_reissue_a_card",
|
|||
|
"bus_violation_record",
|
|||
|
"sys_project_team_member",
|
|||
|
"user_registration",
|
|||
|
"bus_askforleave",
|
|||
|
}
|
|||
|
// 1、批量修改对应表字段
|
|||
|
for i := range tableNmaes {
|
|||
|
err = updateFunc(ctx, tableNmaes[i], openid)
|
|||
|
if err != nil {
|
|||
|
liberr.ErrIsNil(ctx, err)
|
|||
|
return
|
|||
|
}
|
|||
|
}
|
|||
|
// 2、站班会不一样,单独写sql sys_project_team_squad
|
|||
|
sql := `UPDATE sys_project_team_squad set participant_id = REPLACE(participant_id,participant_id,` + "'" + openid + "'" + `) WHERE participant_id like '%` + openid + `%'`
|
|||
|
_, err = g.DB().Exec(ctx, sql)
|
|||
|
liberr.ErrIsNil(ctx, err)
|
|||
|
_, err = g.DB().Model("sys_project_team_squad").Ctx(ctx).Unscoped().Where("compere_id", openid).Update(g.Map{"compere_id": openid})
|
|||
|
liberr.ErrIsNil(ctx, err)
|
|||
|
return
|
|||
|
})
|
|||
|
return err
|
|||
|
})
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
func updateFunc(ctx context.Context, tableName string, openid string) (err error) {
|
|||
|
op := "openid"
|
|||
|
_, err = g.DB().Model(tableName).Ctx(ctx).Unscoped().Where(op, openid).Update(g.Map{op: openid})
|
|||
|
return
|
|||
|
}
|