初始
This commit is contained in:
@ -0,0 +1,322 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2023-08-30 15:24:06
|
||||
// 生成路径: internal/app/wxApplet/logic/sys_project_team_squad.go
|
||||
// 生成人:gfast
|
||||
// desc:站班会
|
||||
// company:云南奇讯科技有限公司
|
||||
// ==========================================================================
|
||||
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
busFolderFile "github.com/tiger1103/gfast/v3/internal/app/system/logic/busFolderFile"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/dao"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/model"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/model/do"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/service"
|
||||
"github.com/tiger1103/gfast/v3/library/liberr"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterSysProjectTeamSquad(New())
|
||||
}
|
||||
|
||||
func New() *sSysProjectTeamSquad {
|
||||
return &sSysProjectTeamSquad{}
|
||||
}
|
||||
|
||||
type sSysProjectTeamSquad struct{}
|
||||
|
||||
func (s *sSysProjectTeamSquad) SelectByOpenidTeamSquadSearch(ctx context.Context, req *wxApplet.SelectByOpenidTeamSquadSearchReq) (listRes *wxApplet.SelectByOpenidTeamSquadSearchRes, err error) {
|
||||
listRes = new(wxApplet.SelectByOpenidTeamSquadSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.SysProjectTeamSquad.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin("bus_construction_user as b on a.compere_id = b.openid").
|
||||
Fields(
|
||||
"DISTINCT a.id as s,a.*," +
|
||||
"CASE WHEN b.user_name IS NULL OR b.user_name = '' THEN b.nick_name ELSE b.user_name END AS compere_name")
|
||||
if req.Openid != "" {
|
||||
m = m.Where("a."+dao.SysProjectTeamSquad.Columns().CompereId, req.Openid)
|
||||
}
|
||||
//创建时间模糊查询
|
||||
if req.MeetingDate != "" {
|
||||
m = m.Where("a."+dao.SysProjectTeamSquad.Columns().MeetingDate+" like ?", "%"+req.MeetingDate+"%")
|
||||
}
|
||||
if len(req.DateRange) != 0 {
|
||||
m = m.Where("a."+dao.SysProjectTeamSquad.Columns().CreatedAt+" >=? AND "+"a."+dao.SysProjectTeamSquad.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
|
||||
}
|
||||
array, err := m.Array()
|
||||
listRes.Total = len(array)
|
||||
liberr.ErrIsNil(ctx, err, "获取总行数失败")
|
||||
if req.PageNum == 0 {
|
||||
req.PageNum = 1
|
||||
}
|
||||
listRes.CurrentPage = req.PageNum
|
||||
if req.PageSize == 0 {
|
||||
req.PageSize = consts.PageSize
|
||||
}
|
||||
order := "id desc"
|
||||
if req.OrderBy != "" {
|
||||
order = req.OrderBy
|
||||
}
|
||||
var res []*model.SysProjectTeamSquadInfoRes
|
||||
err = m.Fields(wxApplet.SysProjectTeamSquadSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.SysProjectTeamSquadListRes, len(res))
|
||||
for k, v := range res {
|
||||
////单独获取参与人的名称
|
||||
//str := ""
|
||||
//split := strings.Split(v.ParticipantId, ",")
|
||||
//for i := range split {
|
||||
// str = str + "'" + split[i] + "',"
|
||||
// if i == len(split)-1 {
|
||||
// str = str + "'" + split[i] + "'"
|
||||
// } else {
|
||||
// str = str + "'" + split[i] + "',"
|
||||
// }
|
||||
//}
|
||||
//name, _ := dao.BusConstructionUser.Ctx(ctx).
|
||||
// Where("openid in (" + str + ")").
|
||||
// Fields("GROUP_CONCAT(CASE WHEN user_name IS NULL OR user_name = '' THEN nick_name ELSE user_name END) AS participant_name").Value()
|
||||
listRes.List[k] = &model.SysProjectTeamSquadListRes{
|
||||
Id: v.Id,
|
||||
TeamId: v.TeamId,
|
||||
MeetingDate: v.MeetingDate,
|
||||
CompereId: v.CompereId,
|
||||
ParticipantId: v.ParticipantId,
|
||||
Content: v.Content,
|
||||
Picture: v.Picture,
|
||||
CreatedAt: v.CreatedAt,
|
||||
TeamName: v.TeamName,
|
||||
LabourserviceName: v.LabourserviceName,
|
||||
CompereName: v.CompereName,
|
||||
//ParticipantName: name.String(),
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeamSquad) List(ctx context.Context, req *wxApplet.SysProjectTeamSquadSearchReq) (listRes *wxApplet.SysProjectTeamSquadSearchRes, err error) {
|
||||
listRes = new(wxApplet.SysProjectTeamSquadSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.SysProjectTeamSquad.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin("bus_construction_user as b on a.compere_id = b.openid").
|
||||
Fields(
|
||||
"DISTINCT a.id as s,a.*," +
|
||||
"CASE WHEN b.user_name IS NULL OR b.user_name = '' THEN b.nick_name ELSE b.user_name END AS compere_name")
|
||||
|
||||
if req.ProjectId != "" {
|
||||
m = m.Where("a."+dao.SysProjectTeamSquad.Columns().ProjectId, req.ProjectId)
|
||||
}
|
||||
//创建时间模糊查询
|
||||
if req.MeetingDate != "" {
|
||||
m = m.Where("a."+dao.SysProjectTeamSquad.Columns().MeetingDate+" like ?", "%"+req.MeetingDate+"%")
|
||||
}
|
||||
////创建时间模糊查询
|
||||
//if req.CreatedAt != "" {
|
||||
// date := tool.New().GetFormattedDate(gconv.Time(req.CreatedAt))
|
||||
// m = m.Where("a."+dao.SysProjectTeamSquad.Columns().CreatedAt+" like ?", "%"+date+"%")
|
||||
//}
|
||||
if len(req.DateRange) != 0 {
|
||||
m = m.Where("a."+dao.SysProjectTeamSquad.Columns().CreatedAt+" >=? AND "+"a."+dao.SysProjectTeamSquad.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
|
||||
}
|
||||
array, err := m.Array()
|
||||
listRes.Total = len(array)
|
||||
liberr.ErrIsNil(ctx, err, "获取总行数失败")
|
||||
if req.PageNum == 0 {
|
||||
req.PageNum = 1
|
||||
}
|
||||
listRes.CurrentPage = req.PageNum
|
||||
if req.PageSize == 0 {
|
||||
req.PageSize = consts.PageSize
|
||||
}
|
||||
order := "id desc"
|
||||
if req.OrderBy != "" {
|
||||
order = req.OrderBy
|
||||
}
|
||||
var res []*model.SysProjectTeamSquadInfoRes
|
||||
err = m.Fields(wxApplet.SysProjectTeamSquadSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.SysProjectTeamSquadListRes, len(res))
|
||||
for k, v := range res {
|
||||
////单独获取参与人的名称
|
||||
//str := ""
|
||||
//split := strings.Split(v.ParticipantId, ",")
|
||||
//for i := range split {
|
||||
// str = str + "'" + split[i] + "',"
|
||||
// if i == len(split)-1 {
|
||||
// str = str + "'" + split[i] + "'"
|
||||
// } else {
|
||||
// str = str + "'" + split[i] + "',"
|
||||
// }
|
||||
//}
|
||||
//name, _ := dao.BusConstructionUser.Ctx(ctx).
|
||||
// Where("openid in (" + str + ")").
|
||||
// Fields("GROUP_CONCAT(CASE WHEN user_name IS NULL OR user_name = '' THEN nick_name ELSE user_name END) AS participant_name").Value()
|
||||
listRes.List[k] = &model.SysProjectTeamSquadListRes{
|
||||
Id: v.Id,
|
||||
TeamId: v.TeamId,
|
||||
MeetingDate: v.MeetingDate,
|
||||
CompereId: v.CompereId,
|
||||
ParticipantId: v.ParticipantId,
|
||||
Content: v.Content,
|
||||
Picture: v.Picture,
|
||||
CreatedAt: v.CreatedAt,
|
||||
TeamName: v.TeamName,
|
||||
LabourserviceName: v.LabourserviceName,
|
||||
CompereName: v.CompereName,
|
||||
//ParticipantName: name.String(),
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeamSquad) GetById(ctx context.Context, id int64) (res *model.SysProjectTeamSquadInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.SysProjectTeamSquad.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin("bus_construction_user as b on a.compere_id = b.openid").
|
||||
Fields(
|
||||
"a.*,"+
|
||||
"CASE WHEN b.user_name IS NULL OR b.user_name = '' THEN b.nick_name ELSE b.user_name END AS compere_name").
|
||||
Where("a."+dao.SysProjectTeamSquad.Columns().Id, id).Scan(&res)
|
||||
//单独获取参与人的名称
|
||||
str := ""
|
||||
split := strings.Split(res.ParticipantId, ",")
|
||||
for i := range split {
|
||||
str = str + "'" + split[i] + "',"
|
||||
if i == len(split)-1 {
|
||||
str = str + "'" + split[i] + "'"
|
||||
} else {
|
||||
str = str + "'" + split[i] + "',"
|
||||
}
|
||||
}
|
||||
name, _ := dao.BusConstructionUser.Ctx(ctx).
|
||||
Where("openid in (" + str + ")").
|
||||
Fields("GROUP_CONCAT(CASE WHEN user_name IS NULL OR user_name = '' THEN nick_name ELSE user_name END) AS participant_name").Value()
|
||||
res.ParticipantName = name.String()
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeamSquad) Add(ctx context.Context, req *wxApplet.SysProjectTeamSquadAddReq) (err error) {
|
||||
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
||||
//err = g.Try(ctx, func(ctx context.Context) {
|
||||
//1、校验当前人是否在此班组下
|
||||
count, err := dao.SysProjectTeamMember.Ctx(ctx).Where("team_id", req.TeamId).Where("openid", req.CompereId).Count()
|
||||
if count == 0 {
|
||||
err = errors.New("操作人与班组有误!")
|
||||
}
|
||||
splitStr := strings.Split(req.Picture, ",")
|
||||
req.Picture = ""
|
||||
for _, img := range splitStr {
|
||||
req.Picture = req.Picture + strings.ReplaceAll(img, "/file", "/wxfile") + ","
|
||||
}
|
||||
req.Picture = strings.TrimRight(req.Picture, ",")
|
||||
//2、数据组装
|
||||
value, err := dao.SysProjectTeam.Ctx(ctx).WherePri(req.TeamId).Fields("project_id").Value()
|
||||
squad := do.SysProjectTeamSquad{
|
||||
TeamId: req.TeamId,
|
||||
ProjectId: value,
|
||||
MeetingDate: req.MeetingDate,
|
||||
CompereId: req.CompereId,
|
||||
ParticipantId: req.ParticipantId,
|
||||
Content: req.Content,
|
||||
Picture: req.Picture,
|
||||
}
|
||||
//3、填充 班组名称、劳务公司名称
|
||||
var wxUserEntity *model.BusConstructionUserInfoRes
|
||||
dao.BusConstructionUser.Ctx(ctx).Where("openid", req.CompereId).Scan(&wxUserEntity)
|
||||
if wxUserEntity != nil {
|
||||
//获取班组名称
|
||||
var spt *model.SysProjectTeamInfoRes
|
||||
err := dao.SysProjectTeam.Ctx(ctx).WherePri(req.TeamId).Scan(&spt)
|
||||
if err != nil || spt == nil {
|
||||
err = errors.New("代码错误,请联系管理员!")
|
||||
//return
|
||||
}
|
||||
//bzName, _ := dao.SysProjectTeam.Ctx(ctx).WherePri(req.TeamId).Fields("name").Value()
|
||||
//获取劳务名称
|
||||
lwName, _ := dao.BusLabourservice.Ctx(ctx).WherePri(wxUserEntity.LabourserviceId).Fields("name").Value()
|
||||
squad.ProjectId = spt.ProjectId
|
||||
squad.TeamName = spt.Name
|
||||
squad.LabourserviceName = lwName.String()
|
||||
}
|
||||
//4、新增数据
|
||||
dataInfo, err := dao.SysProjectTeamSquad.Ctx(ctx).Insert(squad)
|
||||
id, err := dataInfo.LastInsertId()
|
||||
|
||||
////百度转高德
|
||||
//split := strings.Split(req.LongitudeAndLatitude, ",")
|
||||
//lon, err := strconv.ParseFloat(split[0], 64)
|
||||
//lat, err := strconv.ParseFloat(split[1], 64)
|
||||
//gcj021, gcj022 := coryCommon.BD09toGCJ02(lon, lat)
|
||||
//req.LongitudeAndLatitude = fmt.Sprintf("%.2f", gcj021) + "," + fmt.Sprintf("%.2f", gcj022)
|
||||
////逆编码
|
||||
//var res *coryCommon.InverseGeocodingRep
|
||||
//we := coryCommon.InverseGeocoding(req.LongitudeAndLatitude)
|
||||
//bodyData := []byte(we)
|
||||
//err = json.Unmarshal(bodyData, &res)
|
||||
//if err != nil {
|
||||
// fmt.Println("Failed to parse JSON data:", err)
|
||||
// return err
|
||||
//}
|
||||
////s2 := squad.TeamName.(string)
|
||||
//site := res.Regeocode.FormattedAddress
|
||||
//v, err := dao.BusConstructionUser.Ctx(ctx).Where("openid", req.CompereId).Fields("IFNULL(user_name,nick_name) as bzzName").Value()
|
||||
//meetingDate := req.MeetingDate.Format("Y-m-d")
|
||||
//给图片添加水印
|
||||
//go coryCommon.MultiPicture(req.Picture, v.String(), meetingDate, site, squad.TeamName.(string), squad.LabourserviceName.(string))
|
||||
//5、将图片信息添加到图库中
|
||||
pe := strings.Split(req.Picture, ",")
|
||||
err = busFolderFile.New().AllPicture(ctx,
|
||||
pe,
|
||||
2,
|
||||
dao.SysProjectTeamSquad.Table(),
|
||||
id,
|
||||
"2",
|
||||
req.CompereId,
|
||||
"",
|
||||
value.Int64(),
|
||||
)
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
return err
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeamSquad) Edit(ctx context.Context, req *wxApplet.SysProjectTeamSquadEditReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.SysProjectTeamSquad.Ctx(ctx).WherePri(req.Id).Update(do.SysProjectTeamSquad{})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeamSquad) Delete(ctx context.Context, ids []int64) (err error) {
|
||||
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
//删除图库
|
||||
err = busFolderFile.New().AllDelete(
|
||||
ctx,
|
||||
dao.SysProjectTeamSquad.Table(),
|
||||
ids,
|
||||
)
|
||||
//删除站班会
|
||||
_, err = dao.SysProjectTeamSquad.Ctx(ctx).Delete(dao.SysProjectTeamSquad.Columns().Id+" in (?)", ids)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return err
|
||||
})
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user