初始
This commit is contained in:
406
internal/app/wxApplet/logic/busAskforleave/bus_askforleave.go
Normal file
406
internal/app/wxApplet/logic/busAskforleave/bus_askforleave.go
Normal file
@ -0,0 +1,406 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2025-03-27 14:14:25
|
||||
// 生成路径: internal/app/wxApplet/logic/bus_askforleave.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/gogf/gf/v2/os/gtime"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
sysDao "github.com/tiger1103/gfast/v3/internal/app/system/dao"
|
||||
logic "github.com/tiger1103/gfast/v3/internal/app/system/logic/busReissueACard"
|
||||
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/internal/app/wxApplet/model/do"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/service"
|
||||
"github.com/tiger1103/gfast/v3/library/liberr"
|
||||
"github.com/tiger1103/gfast/v3/third/todo"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterBusAskforleave(New())
|
||||
}
|
||||
|
||||
func New() *sBusAskforleave {
|
||||
return &sBusAskforleave{}
|
||||
}
|
||||
|
||||
type sBusAskforleave struct{}
|
||||
|
||||
func (s *sBusAskforleave) AppBzzAskForLeaveUpdate(ctx context.Context, req *wxApplet.AppBzzAskForLeaveUpdateReq) (err error) {
|
||||
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
// 获取当前数据的班组,然后根据班组获取到班组长的openid
|
||||
var aCard model.BusAskforleaveInfoRes
|
||||
err := dao.BusAskforleave.Ctx(ctx).WherePri(req.Id).Fields("id,openid,team_id,project_id").Scan(&aCard)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
fields, err := dao.SysProjectTeamMember.Ctx(ctx).
|
||||
Where("team_id", aCard.TeamId).
|
||||
Where("post_id", 10).
|
||||
Fields("openid").Value()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
if fields.String() == "" {
|
||||
err = errors.New("变更失败,申请人所在的班组未设置班组长")
|
||||
return
|
||||
}
|
||||
UpdateG2 := g.Map{"ganger": fields, "ganger_opinion": req.GangerOpinion, "ganger_explain": req.GangerExplain, "ganger_time": gtime.Now()}
|
||||
if req.GangerOpinion == "3" {
|
||||
UpdateG2["attendance_id"] = nil
|
||||
}
|
||||
// 变更班组长对补卡的状态,并且填写班组长的openid
|
||||
_, err = dao.BusAskforleave.Ctx(ctx).OmitEmpty().WherePri(req.Id).Update(UpdateG2)
|
||||
liberr.ErrIsNil(ctx, err, "变更班组长失败")
|
||||
// 标记特定的待办任务为已处理
|
||||
err = todo.MarkTaskAsProcessed(int(req.Id))
|
||||
// 然后将数据提交给管理员操作
|
||||
ids, err := logic.GetAdministrator(ctx, aCard.ProjectId)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
if len(ids) == 0 {
|
||||
liberr.ErrIsNil(ctx, errors.New("当前项目暂无后台管理人员可以进行审批,需要联系管理人员解决!"))
|
||||
return
|
||||
}
|
||||
var listReissueReminder []todo.ReissueReminder
|
||||
for i := range ids {
|
||||
listReissueReminder = append(listReissueReminder, todo.ReissueReminder{
|
||||
UserID: strconv.Itoa(int(ids[i])),
|
||||
Role: 0,
|
||||
ProjectID: int(aCard.ProjectId),
|
||||
CreatorID: aCard.Openid,
|
||||
TargetID: int(aCard.Id),
|
||||
})
|
||||
}
|
||||
err = todo.CreateAttendanceApprovalGroup(listReissueReminder, todo.ApprovalReminder)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
})
|
||||
return err
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusAskforleave) AppAskForLeaveInfo(ctx context.Context, req *wxApplet.AppAskForLeaveInfoReq) (res *wxApplet.AppAskForLeaveInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.BusAskforleave.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin(dao.BusConstructionUser.Table(), "b", "b.openid = a.openid").
|
||||
Fields("a.*,b.user_name").
|
||||
Where("a."+dao.BusAskforleave.Columns().Id, req.Id).
|
||||
Scan(&res)
|
||||
// 获取班组长的名称和管理员名称
|
||||
if res.Ganger != "" {
|
||||
var busUser *model.BusConstructionUserInfoRes
|
||||
err = dao.BusConstructionUser.Ctx(ctx).Where(dao.BusConstructionUser.Columns().Openid, res.Ganger).Fields("user_name").Scan(&busUser)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
res.GangerName = busUser.UserName
|
||||
}
|
||||
if res.Manager != "" {
|
||||
var busUser *model.BusConstructionUserInfoRes
|
||||
err = sysDao.SysUser.Ctx(ctx).Where(sysDao.SysUser.Columns().Id, res.Manager).Fields("user_nickname").Scan(&busUser)
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
res.ManagerName = busUser.UserName
|
||||
}
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusAskforleave) AppAskForLeaveListPage(ctx context.Context, req *wxApplet.AppAskForLeaveListPageReq) (listRes *wxApplet.AppAskForLeaveListPageRes, err error) {
|
||||
listRes = new(wxApplet.AppAskForLeaveListPageRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.BusAskforleave.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin(dao.BusConstructionUser.Table(), "b", "b.openid = a.openid")
|
||||
if req.Openid != "" {
|
||||
m = m.Where("a."+dao.BusAskforleave.Columns().Openid+" = ?", req.Openid)
|
||||
}
|
||||
if req.ProjectId != "" {
|
||||
m = m.Where("a."+dao.BusAskforleave.Columns().ProjectId+" = ?", gconv.Int64(req.ProjectId))
|
||||
}
|
||||
if req.TeamId != "" {
|
||||
m = m.Where("a."+dao.BusAskforleave.Columns().TeamId+" = ?", gconv.Int64(req.TeamId))
|
||||
}
|
||||
if len(req.DateRange) != 0 {
|
||||
m = m.Where("a."+dao.BusAskforleave.Columns().CreatedAt+" >=? AND "+"a."+dao.BusAskforleave.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
|
||||
}
|
||||
listRes.Total, err = m.Count()
|
||||
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.BusAskforleaveListAppRes
|
||||
err = m.Fields("a.*,b.user_name").Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = res
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusAskforleave) AppAskForLeaveAdd(ctx context.Context, req *wxApplet.AppAskForLeaveAddReq) (err error) {
|
||||
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
// 1、根据openid获取到当前小程序用户所在班组的班组长
|
||||
var busUser *model.BusConstructionUserInfoRes
|
||||
err := dao.BusConstructionUser.Ctx(ctx).Where(dao.BusConstructionUser.Columns().Openid, req.Openid).Fields("project_id,team_id").Scan(&busUser)
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
if busUser == nil || busUser.TeamId == 0 {
|
||||
liberr.ErrIsNil(ctx, err, "请先加入班组!")
|
||||
}
|
||||
//2、获取项目名称、班组名称
|
||||
columnsP := sysDao.SysProject.Columns()
|
||||
valueP, projectNameErr := sysDao.SysProject.Ctx(ctx).Where(columnsP.Id, busUser.ProjectId).Fields(columnsP.ProjectName).Value()
|
||||
liberr.ErrIsNil(ctx, projectNameErr, "获取项目失败")
|
||||
columnsT := dao.SysProjectTeam.Columns()
|
||||
valueT, teamNameErr := dao.SysProjectTeam.Ctx(ctx).Where(columnsT.Id, busUser.TeamId).Fields(columnsT.Name).Value()
|
||||
liberr.ErrIsNil(ctx, teamNameErr, "获取班组失败")
|
||||
// 判断当前请假的时间是否重复请假
|
||||
count, err := dao.BusAskforleave.Ctx(ctx).
|
||||
Where(dao.BusAskforleave.Columns().ProjectId, busUser.ProjectId).
|
||||
Where(dao.BusAskforleave.Columns().Openid, req.Openid).
|
||||
Where("("+
|
||||
"DATE_FORMAT(start_time,'%Y-%m-%d') BETWEEN DATE_FORMAT(?,'%Y-%m-%d') AND DATE_FORMAT(?,'%Y-%m-%d')"+
|
||||
" or "+
|
||||
"DATE_FORMAT(end_time,'%Y-%m-%d') BETWEEN DATE_FORMAT(?,'%Y-%m-%d') AND DATE_FORMAT(?,'%Y-%m-%d')"+
|
||||
")", req.StartTime, req.EndTime, req.StartTime, req.EndTime).Count()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
if count > 0 {
|
||||
liberr.ErrIsNil(ctx, errors.New("当前请假时间重复"))
|
||||
return
|
||||
}
|
||||
//3、插入请假数据
|
||||
info, err := dao.BusAskforleave.Ctx(ctx).Insert(do.BusAskforleave{
|
||||
ProjectId: busUser.ProjectId,
|
||||
ProjectName: valueP.String(),
|
||||
TeamId: busUser.TeamId,
|
||||
TeamName: valueT.String(),
|
||||
StartTime: req.StartTime,
|
||||
EndTime: req.EndTime,
|
||||
Argument: req.Argument,
|
||||
Openid: req.Openid,
|
||||
CreateBy: ct.New().GetLoginUser(ctx).Id,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
//4、发送审批
|
||||
keyId, _ := info.LastInsertId()
|
||||
openidVal, err := dao.SysProjectTeamMember.Ctx(ctx).
|
||||
Where(dao.SysProjectTeamMember.Columns().TeamId, busUser.TeamId).
|
||||
Where(dao.SysProjectTeamMember.Columns().PostId, 10).
|
||||
Fields(dao.SysProjectTeamMember.Columns().Openid).Value()
|
||||
if openidVal.String() == "" || err != nil {
|
||||
liberr.ErrIsNil(ctx, errors.New("当前班组未发现班组长职位"))
|
||||
return
|
||||
}
|
||||
var listReissueReminder []todo.ReissueReminder
|
||||
|
||||
listReissueReminder = append(listReissueReminder, todo.ReissueReminder{
|
||||
UserID: openidVal.String(),
|
||||
Role: 1,
|
||||
ProjectID: int(busUser.ProjectId),
|
||||
CreatorID: req.Openid,
|
||||
TargetID: int(keyId),
|
||||
})
|
||||
err = todo.CreateAttendanceApprovalGroup(listReissueReminder, todo.ApprovalReminder)
|
||||
//err = todo.CreateAskForLeaveReminder(openidVal.String(), int(busUser.ProjectId), req.Openid, int(keyId))
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
})
|
||||
return err
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *sBusAskforleave) List(ctx context.Context, req *wxApplet.BusAskforleaveSearchReq) (listRes *wxApplet.BusAskforleaveSearchRes, err error) {
|
||||
listRes = new(wxApplet.BusAskforleaveSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
values, err2 := dao.BusConstructionUser.Ctx(ctx).Where("user_name like ?", "%"+req.Name+"%").Fields("openid").Array()
|
||||
liberr.ErrIsNil(ctx, err2)
|
||||
m := dao.BusAskforleave.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin("bus_construction_user", "b", "a.openid=b.openid").
|
||||
//LeftJoin("sys_project", "c", "c.id=b.project_id").
|
||||
//LeftJoin("sys_project_team", "d", "d.id=b.team_id").
|
||||
Fields("a.*,b.user_name")
|
||||
if req.Name != "" {
|
||||
m = m.Where("a."+dao.BusAskforleave.Columns().Openid+" in (?)", values)
|
||||
}
|
||||
if req.ProjectId > 0 {
|
||||
m = m.Where("a.project_id", req.ProjectId)
|
||||
}
|
||||
if req.TeamId > 0 {
|
||||
m = m.Where("a.team_id", req.TeamId)
|
||||
}
|
||||
if req.ManagerOpinion != "" {
|
||||
m = m.Where("a."+dao.BusAskforleave.Columns().ManagerOpinion+" = ?", req.ManagerOpinion)
|
||||
}
|
||||
if len(req.LeaveDateRange) != 0 {
|
||||
m = m.Where("date(a.start_time) <= ? AND date(a.end_time) >= ?", req.LeaveDateRange[0], req.LeaveDateRange[1])
|
||||
}
|
||||
if len(req.DateRange) != 0 {
|
||||
m = m.Where("a."+dao.BusAskforleave.Columns().CreatedAt+" >=? AND "+"a."+dao.BusAskforleave.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
|
||||
}
|
||||
array, err := m.Array()
|
||||
liberr.ErrIsNil(ctx, err, "获取总行数失败")
|
||||
listRes.Total = len(array)
|
||||
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.BusAskforleaveInfoRes
|
||||
err = m.Fields(wxApplet.BusAskforleaveSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.BusAskforleaveListRes, len(res))
|
||||
for k, v := range res {
|
||||
cardMode := ""
|
||||
cardNumber := ""
|
||||
if v.GangerOpinion == "1" && v.ManagerOpinion == "1" {
|
||||
cardMode = "待审核"
|
||||
cardNumber = "1"
|
||||
}
|
||||
if v.GangerOpinion == "2" || v.ManagerOpinion == "2" {
|
||||
cardMode = "审核中"
|
||||
cardNumber = "2"
|
||||
}
|
||||
if v.GangerOpinion == "3" || v.ManagerOpinion == "3" {
|
||||
cardMode = "已拒绝"
|
||||
cardNumber = "3"
|
||||
}
|
||||
if v.GangerOpinion == "2" && v.ManagerOpinion == "2" {
|
||||
cardMode = "已同意"
|
||||
cardNumber = "4"
|
||||
}
|
||||
|
||||
listRes.List[k] = &model.BusAskforleaveListRes{
|
||||
Id: v.Id,
|
||||
ProjectId: v.ProjectId,
|
||||
ProjectName: v.ProjectName,
|
||||
TeamId: v.TeamId,
|
||||
TeamName: v.TeamName,
|
||||
StartTime: v.StartTime,
|
||||
EndTime: v.EndTime,
|
||||
Argument: v.Argument,
|
||||
Ganger: v.Ganger,
|
||||
GangerOpinion: v.GangerOpinion,
|
||||
GangerExplain: v.GangerExplain,
|
||||
GangerTime: v.GangerTime,
|
||||
Manager: v.Manager,
|
||||
ManagerOpinion: v.ManagerOpinion,
|
||||
ManagerExplain: v.ManagerExplain,
|
||||
ManagerTime: v.ManagerTime,
|
||||
CreateBy: v.CreateBy,
|
||||
UpdateBy: v.UpdateBy,
|
||||
CreatedAt: v.CreatedAt,
|
||||
Remark: v.Remark,
|
||||
CardMode: cardMode,
|
||||
CardNumber: cardNumber,
|
||||
UserName: v.UserName,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusAskforleave) GetById(ctx context.Context, id int64) (res *model.BusAskforleaveInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.BusAskforleave.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin("bus_construction_user", "b", "a.openid=b.openid").
|
||||
Fields("a.*,b.user_name").
|
||||
Where("a."+dao.BusAskforleave.Columns().Id, id).Scan(&res)
|
||||
if res != nil {
|
||||
cardMode := ""
|
||||
cardNumber := ""
|
||||
if res.GangerOpinion == "1" && res.ManagerOpinion == "1" {
|
||||
cardMode = "待审核"
|
||||
cardNumber = "1"
|
||||
}
|
||||
if res.GangerOpinion == "2" || res.ManagerOpinion == "2" {
|
||||
cardMode = "审核中"
|
||||
cardNumber = "2"
|
||||
}
|
||||
if res.GangerOpinion == "3" || res.ManagerOpinion == "3" {
|
||||
cardMode = "已拒绝"
|
||||
cardNumber = "3"
|
||||
}
|
||||
if res.GangerOpinion == "2" && res.ManagerOpinion == "2" {
|
||||
cardMode = "已同意"
|
||||
cardNumber = "4"
|
||||
}
|
||||
res.CardMode = cardMode
|
||||
res.CardNumber = cardNumber
|
||||
}
|
||||
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusAskforleave) Add(ctx context.Context, req *wxApplet.BusAskforleaveAddReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusAskforleave.Ctx(ctx).Insert(do.BusAskforleave{
|
||||
ProjectId: req.ProjectId,
|
||||
ProjectName: req.ProjectName,
|
||||
TeamId: req.TeamId,
|
||||
TeamName: req.TeamName,
|
||||
StartTime: req.StartTime,
|
||||
EndTime: req.EndTime,
|
||||
Argument: req.Argument,
|
||||
Ganger: req.Ganger,
|
||||
GangerOpinion: req.GangerOpinion,
|
||||
GangerExplain: req.GangerExplain,
|
||||
GangerTime: req.GangerTime,
|
||||
Manager: req.Manager,
|
||||
ManagerOpinion: req.ManagerOpinion,
|
||||
ManagerExplain: req.ManagerExplain,
|
||||
ManagerTime: req.ManagerTime,
|
||||
CreateBy: req.CreateBy,
|
||||
UpdateBy: req.UpdateBy,
|
||||
Remark: req.Remark,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusAskforleave) Edit(ctx context.Context, req *wxApplet.BusAskforleaveEditReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusAskforleave.Ctx(ctx).WherePri(req.Id).Update(do.BusAskforleave{
|
||||
ManagerOpinion: req.ManagerOpinion,
|
||||
ManagerExplain: req.ManagerExplain,
|
||||
UpdateBy: ct.New().GetLoginUser(ctx).Id,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
//批量同意
|
||||
err2 := todo.MarkTasksAsProcessedByUUID(req.Id)
|
||||
liberr.ErrIsNil(ctx, err2)
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusAskforleave) Delete(ctx context.Context, ids []int64) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusAskforleave.Ctx(ctx).Delete(dao.BusAskforleave.Columns().Id+" in (?)", ids)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
1560
internal/app/wxApplet/logic/busAttendance/bus_attendance.go
Normal file
1560
internal/app/wxApplet/logic/busAttendance/bus_attendance.go
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,112 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2023-08-07 11:17:50
|
||||
// 生成路径: internal/app/wxApplet/logic/bus_construction_project.go
|
||||
// 生成人:gfast
|
||||
// desc:施工人员对应项目
|
||||
// company:云南奇讯科技有限公司
|
||||
// ==========================================================================
|
||||
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
"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"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterBusConstructionProject(New())
|
||||
}
|
||||
|
||||
func New() *sBusConstructionProject {
|
||||
return &sBusConstructionProject{}
|
||||
}
|
||||
|
||||
type sBusConstructionProject struct{}
|
||||
|
||||
func (s *sBusConstructionProject) List(ctx context.Context, req *wxApplet.BusConstructionProjectSearchReq) (listRes *wxApplet.BusConstructionProjectSearchRes, err error) {
|
||||
listRes = new(wxApplet.BusConstructionProjectSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.BusConstructionProject.Ctx(ctx).WithAll()
|
||||
if req.Id != "" {
|
||||
m = m.Where(dao.BusConstructionProject.Columns().Id+" = ?", req.Id)
|
||||
}
|
||||
if req.ConstructionUserId != "" {
|
||||
m = m.Where(dao.BusConstructionProject.Columns().ConstructionUserId+" = ?", gconv.Int64(req.ConstructionUserId))
|
||||
}
|
||||
if req.ProjectId != "" {
|
||||
m = m.Where(dao.BusConstructionProject.Columns().ProjectId+" = ?", gconv.Int64(req.ProjectId))
|
||||
}
|
||||
listRes.Total, err = m.Count()
|
||||
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.BusConstructionProjectInfoRes
|
||||
err = m.Fields(wxApplet.BusConstructionProjectSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.BusConstructionProjectListRes, len(res))
|
||||
for k, v := range res {
|
||||
listRes.List[k] = &model.BusConstructionProjectListRes{
|
||||
Id: v.Id,
|
||||
ConstructionUserId: v.ConstructionUserId,
|
||||
ProjectId: v.ProjectId,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionProject) GetById(ctx context.Context, id uint64) (res *model.BusConstructionProjectInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.BusConstructionProject.Ctx(ctx).WithAll().Where(dao.BusConstructionProject.Columns().Id, id).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionProject) Add(ctx context.Context, req *wxApplet.BusConstructionProjectAddReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionProject.Ctx(ctx).Insert(do.BusConstructionProject{
|
||||
ConstructionUserId: req.ConstructionUserId,
|
||||
ProjectId: req.ProjectId,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionProject) Edit(ctx context.Context, req *wxApplet.BusConstructionProjectEditReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionProject.Ctx(ctx).WherePri(req.Id).Update(do.BusConstructionProject{
|
||||
ConstructionUserId: req.ConstructionUserId,
|
||||
ProjectId: req.ProjectId,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionProject) Delete(ctx context.Context, ids []uint64) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionProject.Ctx(ctx).Delete(dao.BusConstructionProject.Columns().Id+" in (?)", ids)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,124 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2023-08-07 11:17:55
|
||||
// 生成路径: internal/app/wxApplet/logic/bus_construction_user_file.go
|
||||
// 生成人:gfast
|
||||
// desc:微信用户的文件存储
|
||||
// company:云南奇讯科技有限公司
|
||||
// ==========================================================================
|
||||
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
"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"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterBusConstructionUserFile(New())
|
||||
}
|
||||
|
||||
func New() *sBusConstructionUserFile {
|
||||
return &sBusConstructionUserFile{}
|
||||
}
|
||||
|
||||
type sBusConstructionUserFile struct{}
|
||||
|
||||
func (s *sBusConstructionUserFile) List(ctx context.Context, req *wxApplet.BusConstructionUserFileSearchReq) (listRes *wxApplet.BusConstructionUserFileSearchRes, err error) {
|
||||
listRes = new(wxApplet.BusConstructionUserFileSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.BusConstructionUserFile.Ctx(ctx).WithAll()
|
||||
if req.Id != "" {
|
||||
m = m.Where(dao.BusConstructionUserFile.Columns().Id+" = ?", req.Id)
|
||||
}
|
||||
if req.UserId != "" {
|
||||
m = m.Where(dao.BusConstructionUserFile.Columns().UserId+" = ?", gconv.Int64(req.UserId))
|
||||
}
|
||||
if req.UserImgType != "" {
|
||||
m = m.Where(dao.BusConstructionUserFile.Columns().UserImgType+" = ?", req.UserImgType)
|
||||
}
|
||||
if req.Path != "" {
|
||||
m = m.Where(dao.BusConstructionUserFile.Columns().Path+" = ?", req.Path)
|
||||
}
|
||||
if len(req.DateRange) != 0 {
|
||||
m = m.Where(dao.BusConstructionUserFile.Columns().CreatedAt+" >=? AND "+dao.BusConstructionUserFile.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
|
||||
}
|
||||
listRes.Total, err = m.Count()
|
||||
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.BusConstructionUserFileInfoRes
|
||||
err = m.Fields(wxApplet.BusConstructionUserFileSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.BusConstructionUserFileListRes, len(res))
|
||||
for k, v := range res {
|
||||
listRes.List[k] = &model.BusConstructionUserFileListRes{
|
||||
Id: v.Id,
|
||||
UserId: v.UserId,
|
||||
UserImgType: v.UserImgType,
|
||||
Path: v.Path,
|
||||
CreatedAt: v.CreatedAt,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionUserFile) GetById(ctx context.Context, id int64) (res *model.BusConstructionUserFileInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.BusConstructionUserFile.Ctx(ctx).WithAll().Where(dao.BusConstructionUserFile.Columns().Id, id).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionUserFile) Add(ctx context.Context, req *wxApplet.BusConstructionUserFileAddReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionUserFile.Ctx(ctx).Insert(do.BusConstructionUserFile{
|
||||
UserId: req.UserId,
|
||||
UserImgType: req.UserImgType,
|
||||
Name: req.Name,
|
||||
Path: req.Path,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionUserFile) Edit(ctx context.Context, req *wxApplet.BusConstructionUserFileEditReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionUserFile.Ctx(ctx).WherePri(req.Id).Update(do.BusConstructionUserFile{
|
||||
UserId: req.UserId,
|
||||
UserImgType: req.UserImgType,
|
||||
Name: req.Name,
|
||||
Path: req.Path,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionUserFile) Delete(ctx context.Context, ids []int64) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionUserFile.Ctx(ctx).Delete(dao.BusConstructionUserFile.Columns().Id+" in (?)", ids)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
@ -0,0 +1,112 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2023-08-07 11:17:55
|
||||
// 生成路径: internal/app/wxApplet/logic/bus_construction_user_post.go
|
||||
// 生成人:gfast
|
||||
// desc:施工人员岗位
|
||||
// company:云南奇讯科技有限公司
|
||||
// ==========================================================================
|
||||
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
"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"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterBusConstructionUserPost(New())
|
||||
}
|
||||
|
||||
func New() *sBusConstructionUserPost {
|
||||
return &sBusConstructionUserPost{}
|
||||
}
|
||||
|
||||
type sBusConstructionUserPost struct{}
|
||||
|
||||
func (s *sBusConstructionUserPost) List(ctx context.Context, req *wxApplet.BusConstructionUserPostSearchReq) (listRes *wxApplet.BusConstructionUserPostSearchRes, err error) {
|
||||
listRes = new(wxApplet.BusConstructionUserPostSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.BusConstructionUserPost.Ctx(ctx).WithAll()
|
||||
if req.Id != "" {
|
||||
m = m.Where(dao.BusConstructionUserPost.Columns().Id+" = ?", req.Id)
|
||||
}
|
||||
if req.ConstructionUserId != "" {
|
||||
m = m.Where(dao.BusConstructionUserPost.Columns().ConstructionUserId+" = ?", gconv.Int64(req.ConstructionUserId))
|
||||
}
|
||||
if req.PostId != "" {
|
||||
m = m.Where(dao.BusConstructionUserPost.Columns().PostId+" = ?", gconv.Int64(req.PostId))
|
||||
}
|
||||
listRes.Total, err = m.Count()
|
||||
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.BusConstructionUserPostInfoRes
|
||||
err = m.Fields(wxApplet.BusConstructionUserPostSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.BusConstructionUserPostListRes, len(res))
|
||||
for k, v := range res {
|
||||
listRes.List[k] = &model.BusConstructionUserPostListRes{
|
||||
Id: v.Id,
|
||||
ConstructionUserId: v.ConstructionUserId,
|
||||
PostId: v.PostId,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionUserPost) GetById(ctx context.Context, id uint64) (res *model.BusConstructionUserPostInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.BusConstructionUserPost.Ctx(ctx).WithAll().Where(dao.BusConstructionUserPost.Columns().Id, id).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionUserPost) Add(ctx context.Context, req *wxApplet.BusConstructionUserPostAddReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionUserPost.Ctx(ctx).Insert(do.BusConstructionUserPost{
|
||||
ConstructionUserId: req.ConstructionUserId,
|
||||
PostId: req.PostId,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionUserPost) Edit(ctx context.Context, req *wxApplet.BusConstructionUserPostEditReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionUserPost.Ctx(ctx).WherePri(req.Id).Update(do.BusConstructionUserPost{
|
||||
ConstructionUserId: req.ConstructionUserId,
|
||||
PostId: req.PostId,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusConstructionUserPost) Delete(ctx context.Context, ids []uint64) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusConstructionUserPost.Ctx(ctx).Delete(dao.BusConstructionUserPost.Columns().Id+" in (?)", ids)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
@ -0,0 +1,218 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2023-08-14 11:24:31
|
||||
// 生成路径: internal/app/wxApplet/logic/bus_labourservice.go
|
||||
// 生成人:gfast
|
||||
// desc:劳务公司
|
||||
// company:云南奇讯科技有限公司
|
||||
// ==========================================================================
|
||||
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/tiger1103/gfast/v3/api/v1/common/coryCommon"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
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/internal/app/wxApplet/model/do"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/service"
|
||||
"github.com/tiger1103/gfast/v3/library/liberr"
|
||||
tool "github.com/tiger1103/gfast/v3/utility/coryUtils"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterBusLabourservice(New())
|
||||
}
|
||||
|
||||
func New() *sBusLabourservice {
|
||||
return &sBusLabourservice{}
|
||||
}
|
||||
|
||||
type sBusLabourservice struct{}
|
||||
|
||||
func (s *sBusLabourservice) PcAdd(ctx context.Context, req *wxApplet.BusPcAddReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, InsertErr := g.DB().Model("bus_labourservice_file").Data(&model.BusLabourserviceFileRes{
|
||||
Pid: req.Pid,
|
||||
Type: req.Type,
|
||||
Name: req.Name,
|
||||
Path: req.Path,
|
||||
}).Insert()
|
||||
liberr.ErrIsNil(ctx, InsertErr, "资料添加错误!")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusLabourservice) PcDel(ctx context.Context, req *wxApplet.BusPcDelReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := g.DB().Model("bus_labourservice_file").Where("id", req.Id).Safe()
|
||||
//1、查询数据
|
||||
path, err := m.Fields("path").Value()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
//2、删除数据
|
||||
_, err = m.Delete()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
//3、删除文件
|
||||
coryCommon.BatchFile(strings.Split(path.String(), ","))
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusLabourservice) PcFind(ctx context.Context, req *wxApplet.BusPcFindReq) (res *wxApplet.BusPcFindRes, err error) {
|
||||
res = new(wxApplet.BusPcFindRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
var fileRes []*model.BusLabourserviceFileRes
|
||||
err = g.DB().Model("bus_labourservice_file").Where("pid", req.Pid).Scan(&fileRes)
|
||||
res.List = fileRes
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusLabourservice) AppListOfParticipatingUnitsFunc(ctx context.Context, req *wxApplet.AppListOfParticipatingUnitsReq) (listRes *wxApplet.AppListOfParticipatingUnitsRes, err error) {
|
||||
listRes = new(wxApplet.AppListOfParticipatingUnitsRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.BusLabourservice.Ctx(ctx).WithAll()
|
||||
if req.FuzzyQuery != "" {
|
||||
m = m.Where(dao.BusLabourservice.Columns().Name+" like ?", "%"+req.FuzzyQuery+"%")
|
||||
}
|
||||
order := "name asc"
|
||||
var res []*model.BusLabourserviceInfoRes
|
||||
err = m.Fields(wxApplet.BusLabourserviceSearchRes{}).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.BusLabourserviceListRes, len(res))
|
||||
for k, v := range res {
|
||||
listRes.List[k] = &model.BusLabourserviceListRes{
|
||||
Id: v.Id,
|
||||
Name: v.Name,
|
||||
Principal: v.Principal,
|
||||
Phone: v.Phone,
|
||||
Custodian: v.Custodian,
|
||||
CustodianPhone: v.CustodianPhone,
|
||||
CreatedAt: v.CreatedAt,
|
||||
Remark: v.Remark,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusLabourservice) List(ctx context.Context, req *wxApplet.BusLabourserviceSearchReq) (listRes *wxApplet.BusLabourserviceSearchRes, err error) {
|
||||
listRes = new(wxApplet.BusLabourserviceSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.BusLabourservice.Ctx(ctx).WithAll()
|
||||
if req.Name != "" {
|
||||
m = m.Where(dao.BusLabourservice.Columns().Name+" like ?", "%"+req.Name+"%")
|
||||
}
|
||||
//创建时间模糊查询
|
||||
if req.CreatedAt != "" {
|
||||
date := tool.New().GetFormattedDate(gconv.Time(req.CreatedAt))
|
||||
m = m.Where(dao.BusLabourservice.Columns().CreatedAt+" like ?", "%"+date+"%")
|
||||
}
|
||||
if len(req.DateRange) != 0 {
|
||||
m = m.Where(dao.BusLabourservice.Columns().CreatedAt+" >=? AND "+dao.BusLabourservice.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
|
||||
}
|
||||
listRes.Total, err = m.Count()
|
||||
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.BusLabourserviceInfoRes
|
||||
err = m.Fields(wxApplet.BusLabourserviceSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.BusLabourserviceListRes, len(res))
|
||||
for k, v := range res {
|
||||
listRes.List[k] = &model.BusLabourserviceListRes{
|
||||
Id: v.Id,
|
||||
Name: v.Name,
|
||||
Principal: v.Principal,
|
||||
Phone: v.Phone,
|
||||
Custodian: v.Custodian,
|
||||
CustodianPhone: v.CustodianPhone,
|
||||
CreatedAt: v.CreatedAt,
|
||||
Remark: v.Remark,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusLabourservice) GetById(ctx context.Context, id int64) (res *model.BusLabourserviceInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.BusLabourservice.Ctx(ctx).WithAll().Where(dao.BusLabourservice.Columns().Id, id).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
//获取创建人 更新人
|
||||
by := coryCommon.New().CreateByOrUpdateBy(ctx, res)
|
||||
infoRes := by.(model.BusLabourserviceInfoRes)
|
||||
res = &infoRes
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sBusLabourservice) Add(ctx context.Context, req *wxApplet.BusLabourserviceAddReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
columns := dao.BusLabourservice.Columns()
|
||||
//1、判断劳务公司是否重复
|
||||
count, countErr := dao.BusLabourservice.Ctx(ctx).Where(columns.Name, req.Name).Count()
|
||||
liberr.ErrIsNil(ctx, countErr, "获取劳务信息失败!")
|
||||
if count > 0 {
|
||||
liberr.ErrIsNil(ctx, errors.New("该劳务公司已存在!"))
|
||||
return
|
||||
}
|
||||
//2、添加劳务公司
|
||||
name := ct.New().GetLoginUser(ctx).Id
|
||||
_, errInsertInfo := dao.BusLabourservice.Ctx(ctx).Insert(do.BusLabourservice{
|
||||
Name: req.Name,
|
||||
Principal: req.Principal,
|
||||
Phone: req.Phone,
|
||||
Custodian: req.Custodian,
|
||||
CustodianPhone: req.CustodianPhone,
|
||||
Remark: req.Remark,
|
||||
CreateBy: name,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, errInsertInfo, "添加失败")
|
||||
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *sBusLabourservice) Edit(ctx context.Context, req *wxApplet.BusLabourserviceEditReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
//1、修改资料
|
||||
name := ct.New().GetLoginUser(ctx).Id
|
||||
_, err = dao.BusLabourservice.Ctx(ctx).WherePri(req.Id).Update(do.BusLabourservice{
|
||||
Name: req.Name,
|
||||
Principal: req.Principal,
|
||||
Phone: req.Phone,
|
||||
Custodian: req.Custodian,
|
||||
CustodianPhone: req.CustodianPhone,
|
||||
Remark: req.Remark,
|
||||
UpdateBy: name,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *sBusLabourservice) Delete(ctx context.Context, ids []int64) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.BusLabourservice.Ctx(ctx).Delete(dao.BusLabourservice.Columns().Id+" in (?)", ids)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
13
internal/app/wxApplet/logic/logic.go
Normal file
13
internal/app/wxApplet/logic/logic.go
Normal file
@ -0,0 +1,13 @@
|
||||
package logic
|
||||
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/busAskforleave"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/busAttendance"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/busConstructionProject"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/busConstructionUser"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/busConstructionUserFile"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/busConstructionUserPost"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/busLabourservice"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/sysProjectTeam"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/sysProjectTeamMember"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/sysProjectTeamSquad"
|
||||
import _ "github.com/tiger1103/gfast/v3/internal/app/wxApplet/logic/sysUserProjectRelevancy"
|
||||
331
internal/app/wxApplet/logic/sysProjectTeam/sys_project_team.go
Normal file
331
internal/app/wxApplet/logic/sysProjectTeam/sys_project_team.go
Normal file
@ -0,0 +1,331 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2023-08-15 09:34:52
|
||||
// 生成路径: internal/app/wxApplet/logic/sys_project_team.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/gogf/gf/v2/util/gconv"
|
||||
"github.com/tiger1103/gfast/v3/api/v1/common/coryCommon"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
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/internal/app/wxApplet/model/do"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/service"
|
||||
"github.com/tiger1103/gfast/v3/library/liberr"
|
||||
tool "github.com/tiger1103/gfast/v3/utility/coryUtils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterSysProjectTeam(New())
|
||||
}
|
||||
|
||||
func New() *sSysProjectTeam {
|
||||
return &sSysProjectTeam{}
|
||||
}
|
||||
|
||||
type sSysProjectTeam struct{}
|
||||
|
||||
func (s *sSysProjectTeam) ListOfAttendancePersonnelFunc(ctx context.Context, req *wxApplet.ListOfAttendancePersonnelReq) (res *wxApplet.ListOfAttendancePersonnelRes, err error) {
|
||||
res = &wxApplet.ListOfAttendancePersonnelRes{}
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
var ry []*wxApplet.ListOfAttendancePersonnelTwo
|
||||
switch req.Type {
|
||||
case "0":
|
||||
//1、获取到所有人员
|
||||
columns := dao.BusConstructionUser.Columns()
|
||||
err := dao.BusConstructionUser.Ctx(ctx).Where(columns.TeamId, req.TeamId).Fields(columns.Openid, columns.PacePhoto+" as userHead", columns.UserName, columns.Phone).Scan(&ry)
|
||||
liberr.ErrIsNil(ctx, err, "获取全部人员失败!")
|
||||
break
|
||||
case "1":
|
||||
//2、获取到打卡人员信息
|
||||
all, err := g.DB().GetAll(ctx, `SELECT
|
||||
DISTINCT
|
||||
a.openid,
|
||||
b.pace_photo as userHead,
|
||||
b.user_name as userName,
|
||||
b.phone,
|
||||
FROM
|
||||
bus_attendance AS a
|
||||
RIGHT JOIN bus_construction_user AS b ON ( b.team_id = ? AND b.openid = a.openid )
|
||||
WHERE
|
||||
a.is_pinch <> 4 and DATE_FORMAT(clock_on,"%Y-%m-%d") = ?`,
|
||||
g.Slice{req.TeamId, req.LocalDate})
|
||||
liberr.ErrIsNil(ctx, err, "获取打卡人员失败")
|
||||
err = all.Structs(&ry)
|
||||
liberr.ErrIsNil(ctx, err, "获取打卡人员转换失败")
|
||||
break
|
||||
case "2":
|
||||
all, err := g.DB().GetAll(ctx, `SELECT
|
||||
a.openid,
|
||||
a.pace_photo as userHead,
|
||||
a.user_name as userName,
|
||||
a.phone,
|
||||
c.ganger_opinion as gangerOpinion,
|
||||
c.manager_opinion as managerOpinion
|
||||
FROM
|
||||
bus_construction_user as a
|
||||
left join bus_askforleave as c on ( c.openid = a.openid and c.team_id = ? )
|
||||
WHERE
|
||||
a.openid in (
|
||||
SELECT
|
||||
openid
|
||||
FROM
|
||||
bus_askforleave
|
||||
WHERE
|
||||
team_id = ? and
|
||||
? BETWEEN DATE_FORMAT(start_time,'%Y-%m-%d') AND DATE_FORMAT(end_time,'%Y-%m-%d')
|
||||
) and ? BETWEEN DATE_FORMAT(c.start_time,'%Y-%m-%d') AND DATE_FORMAT(c.end_time,'%Y-%m-%d')`,
|
||||
g.Slice{req.TeamId, req.TeamId, req.LocalDate, req.LocalDate})
|
||||
liberr.ErrIsNil(ctx, err, "获取请假人员失败")
|
||||
err = all.Structs(&ry)
|
||||
liberr.ErrIsNil(ctx, err, "获取请假人员转换失败")
|
||||
for i := range ry {
|
||||
cardMode := ""
|
||||
cardNumber := ""
|
||||
if ry[i].GangerOpinion == "1" && ry[i].ManagerOpinion == "1" {
|
||||
cardMode = "待审核"
|
||||
cardNumber = "1"
|
||||
}
|
||||
if ry[i].GangerOpinion == "2" || ry[i].ManagerOpinion == "2" {
|
||||
cardMode = "审核中"
|
||||
cardNumber = "2"
|
||||
}
|
||||
if ry[i].GangerOpinion == "3" || ry[i].ManagerOpinion == "3" {
|
||||
cardMode = "已拒绝"
|
||||
cardNumber = "3"
|
||||
}
|
||||
if ry[i].GangerOpinion == "2" && ry[i].ManagerOpinion == "2" {
|
||||
cardMode = "已同意"
|
||||
cardNumber = "4"
|
||||
}
|
||||
ry[i].CardMode = cardMode
|
||||
ry[i].CardNumber = cardNumber
|
||||
}
|
||||
break
|
||||
case "3":
|
||||
all, err := g.DB().GetAll(ctx, `SELECT
|
||||
a.openid,
|
||||
a.pace_photo as userHead,
|
||||
a.user_name as userName,
|
||||
a.phone
|
||||
FROM
|
||||
bus_construction_user as a
|
||||
WHERE
|
||||
team_id = ? and deleted_at is null and
|
||||
openid not in (
|
||||
SELECT DISTINCT
|
||||
a.openid
|
||||
FROM
|
||||
bus_attendance AS a
|
||||
RIGHT JOIN bus_construction_user AS b ON ( b.team_id = ? AND b.openid = a.openid )
|
||||
WHERE
|
||||
a.is_pinch <> 4 AND
|
||||
DATE_FORMAT( a.clock_on, "%Y-%m-%d" ) = ?
|
||||
|
||||
UNION
|
||||
|
||||
SELECT DISTINCT
|
||||
openid
|
||||
FROM
|
||||
bus_askforleave
|
||||
WHERE
|
||||
team_id = ? AND
|
||||
? BETWEEN DATE_FORMAT( start_time, '%Y-%m-%d' ) AND DATE_FORMAT( end_time, '%Y-%m-%d' )
|
||||
)`, g.Slice{req.TeamId, req.TeamId, req.LocalDate, req.TeamId, req.LocalDate})
|
||||
liberr.ErrIsNil(ctx, err, "获取未出勤人员失败")
|
||||
err = all.Structs(&ry)
|
||||
liberr.ErrIsNil(ctx, err, "获取未出勤人员转换失败")
|
||||
break
|
||||
}
|
||||
res.List = ry
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeam) GetsTheAttendanceOfASpecifiedShiftGroupFunc(ctx context.Context, req *wxApplet.GetsTheAttendanceOfASpecifiedShiftGroupReq) (res *wxApplet.GetsTheAttendanceOfASpecifiedShiftGroupRes, err error) {
|
||||
res = new(wxApplet.GetsTheAttendanceOfASpecifiedShiftGroupRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
//1、根据班组id获取到班组总人数
|
||||
columns := dao.BusConstructionUser.Columns()
|
||||
array, err := dao.BusConstructionUser.Ctx(ctx).Where(columns.TeamId, req.TeamId).Fields(columns.Openid).Array()
|
||||
liberr.ErrIsNil(ctx, err, "获取当前班组总人数失败")
|
||||
res.All = len(array)
|
||||
//2、获取到打卡人数;根据班组获取到指定的人、在根据人去考勤里面查询数据
|
||||
count, err := g.DB().GetCount(ctx, `SELECT
|
||||
COUNT(DISTINCT a.openid)
|
||||
FROM
|
||||
bus_attendance AS a
|
||||
RIGHT JOIN bus_construction_user AS b ON ( b.team_id = ? AND b.openid = a.openid )
|
||||
WHERE
|
||||
a.is_pinch <> 4 and DATE_FORMAT(clock_on,"%Y-%m-%d") = ?`,
|
||||
g.Slice{req.TeamId, req.LocalDate})
|
||||
liberr.ErrIsNil(ctx, err, "获取打卡人数失败")
|
||||
res.ClockIn = count
|
||||
//3、获取到请假人数
|
||||
valOpenids, err := dao.BusAskforleave.Ctx(ctx).
|
||||
Where(dao.BusAskforleave.Columns().TeamId, req.TeamId).
|
||||
Where(gdb.Raw("current_date BETWEEN DATE_FORMAT(start_time,'%Y-%m-%d') AND DATE_FORMAT(end_time,'%Y-%m-%d')")).
|
||||
Fields(dao.BusAskforleave.Columns().Openid).
|
||||
Array()
|
||||
liberr.ErrIsNil(ctx, err, "获取请假人数失败")
|
||||
res.AskForLeave = len(valOpenids)
|
||||
//4、获取到未出勤人数 = 总人数-打卡人数-请假人数
|
||||
res.NotClockIn = res.All - res.ClockIn - res.AskForLeave
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeam) List(ctx context.Context, req *wxApplet.SysProjectTeamSearchReq) (listRes *wxApplet.SysProjectTeamSearchRes, err error) {
|
||||
listRes = new(wxApplet.SysProjectTeamSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.SysProjectTeam.Ctx(ctx).WithAll()
|
||||
if req.ProjectId != "" {
|
||||
m = m.Where(dao.SysProjectTeam.Columns().ProjectId+" = ?", req.ProjectId)
|
||||
}
|
||||
if req.Name != "" {
|
||||
m = m.Where(dao.SysProjectTeam.Columns().Name+" like ?", "%"+req.Name+"%")
|
||||
}
|
||||
//创建时间模糊查询
|
||||
if req.CreateTime != "" {
|
||||
date := tool.New().GetFormattedDate(gconv.Time(req.CreateTime))
|
||||
m = m.Where(dao.SysProjectTeam.Columns().CreateTime+" like ?", "%"+date+"%")
|
||||
}
|
||||
if req.CreateTime != "" {
|
||||
m = m.Where(dao.SysProjectTeam.Columns().CreateTime+" = ?", gconv.Time(req.CreateTime))
|
||||
}
|
||||
listRes.Total, err = m.Count()
|
||||
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.SysProjectTeamInfoRes
|
||||
err = m.Fields(wxApplet.SysProjectTeamSearchRes{}).Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.SysProjectTeamListRes, len(res))
|
||||
for k, v := range res {
|
||||
listRes.List[k] = &model.SysProjectTeamListRes{
|
||||
Id: v.Id,
|
||||
ProjectId: v.ProjectId,
|
||||
Name: v.Name,
|
||||
IsClockIn: v.IsClockIn,
|
||||
CreateTime: v.CreateTime,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeam) GetById(ctx context.Context, id int64) (res *model.SysProjectTeamInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.SysProjectTeam.Ctx(ctx).WithAll().Where(dao.SysProjectTeam.Columns().Id, id).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
//获取创建人 更新人
|
||||
by := coryCommon.New().CreateByOrUpdateBy(ctx, res)
|
||||
infoRes := by.(model.SysProjectTeamInfoRes)
|
||||
res = &infoRes
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeam) Add(ctx context.Context, req *wxApplet.SysProjectTeamAddReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
//1、判断班组名称是否存在
|
||||
count, err := dao.SysProjectTeam.
|
||||
Ctx(ctx).Where(dao.SysProjectTeam.Columns().ProjectId, req.ProjectId).
|
||||
Ctx(ctx).Where(dao.SysProjectTeam.Columns().Name, req.Name).
|
||||
Count()
|
||||
liberr.ErrIsNil(ctx, err, "获取班组名称失败")
|
||||
if count > 0 {
|
||||
liberr.ErrIsNil(ctx, errors.New("班组名称已存在"))
|
||||
return
|
||||
}
|
||||
name := ct.New().GetLoginUser(ctx).Id
|
||||
_, err = dao.SysProjectTeam.Ctx(ctx).Insert(do.SysProjectTeam{
|
||||
ProjectId: req.ProjectId,
|
||||
Name: req.Name,
|
||||
IsClockIn: req.IsClockIn,
|
||||
CreateBy: name,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeam) Edit(ctx context.Context, req *wxApplet.SysProjectTeamEditReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
name := ct.New().GetLoginUser(ctx).Id
|
||||
count, err := dao.SysProjectTeam.Ctx(ctx).
|
||||
Where(dao.SysProjectTeam.Columns().ProjectId, req.ProjectId).
|
||||
Where(dao.SysProjectTeam.Columns().Name, req.Name).
|
||||
Count()
|
||||
liberr.ErrIsNil(ctx, err, "获取班组名称失败")
|
||||
if count > 0 {
|
||||
liberr.ErrIsNil(ctx, errors.New("班组名称已存在"))
|
||||
return
|
||||
}
|
||||
_, err = dao.SysProjectTeam.Ctx(ctx).WherePri(req.Id).Update(do.SysProjectTeam{
|
||||
ProjectId: req.ProjectId,
|
||||
Name: req.Name,
|
||||
UpdateBy: name,
|
||||
IsClockIn: req.IsClockIn,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeam) Delete(ctx context.Context, ids []int64) (err error) {
|
||||
g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
//1、删除组成员
|
||||
_, err = dao.SysProjectTeamMember.Ctx(ctx).Delete(dao.SysProjectTeamMember.Columns().TeamId+" in (?)", ids)
|
||||
//2、清除施工人员中关联到这个项目的人
|
||||
_, err = dao.BusConstructionUser.Ctx(ctx).Where(dao.SysProjectTeamMember.Columns().TeamId+" in (?)", ids).Update(g.Map{"team_id": nil})
|
||||
//2、删除组
|
||||
_, err = dao.SysProjectTeam.Ctx(ctx).Delete(dao.SysProjectTeam.Columns().Id+" in (?)", ids)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return err
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// TeamOrGroupFunc 根据项目ID获取当前项目下的所有班组信息
|
||||
func TeamOrGroupFunc(ctx context.Context, id int64) (teamEntity []*model.SysProjectTeamListRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.SysProjectTeam.Ctx(ctx).
|
||||
Where(dao.SysProjectTeam.Columns().ProjectId, id).Scan(&teamEntity)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// TeamFunc 根据班组ID获取班组信息
|
||||
func TeamFunc(ctx context.Context, id int64) (teamEntity []*model.SysProjectTeamListRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.SysProjectTeam.Ctx(ctx).
|
||||
Where(dao.SysProjectTeam.Columns().Id, id).Scan(&teamEntity)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
@ -0,0 +1,340 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2023-08-15 09:34:52
|
||||
// 生成路径: internal/app/wxApplet/logic/sys_project_team_member.go
|
||||
// 生成人:gfast
|
||||
// desc:项目班组下的成员
|
||||
// company:云南奇讯科技有限公司
|
||||
// ==========================================================================
|
||||
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/samber/lo"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
sdao "github.com/tiger1103/gfast/v3/internal/app/system/dao"
|
||||
logic2 "github.com/tiger1103/gfast/v3/internal/app/system/logic/busConstructionUser"
|
||||
"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"
|
||||
tool "github.com/tiger1103/gfast/v3/utility/coryUtils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterSysProjectTeamMember(New())
|
||||
}
|
||||
|
||||
func New() *sSysProjectTeamMember {
|
||||
return &sSysProjectTeamMember{}
|
||||
}
|
||||
|
||||
type sSysProjectTeamMember struct{}
|
||||
|
||||
func (s *sSysProjectTeamMember) List(ctx context.Context, req *wxApplet.SysProjectTeamMemberSearchReq) (listRes *wxApplet.SysProjectTeamMemberSearchRes, err error) {
|
||||
listRes = new(wxApplet.SysProjectTeamMemberSearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
// 获取人员名称
|
||||
var openids []string
|
||||
if req.UserName != "" {
|
||||
values, err := dao.BusConstructionUser.Ctx(ctx).Where("user_name like ?", "%"+req.UserName+"%").Fields("openid").Array()
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
if len(values) > 0 {
|
||||
for i := range values {
|
||||
openids = append(openids, values[i].String())
|
||||
}
|
||||
}
|
||||
}
|
||||
m := dao.SysProjectTeamMember.Ctx(ctx)
|
||||
m = m.As("a").
|
||||
RightJoin("bus_construction_user as b on a.openid = b.openid").
|
||||
LeftJoin("bus_type_of_wage as c on b.type_of_work = c.type_of_work").
|
||||
Fields("a.*," +
|
||||
"b.head_icon," +
|
||||
"b.nick_name,b.user_name," +
|
||||
"b.phone," +
|
||||
"c.standard as original,b.salary")
|
||||
if req.TeamId != "" {
|
||||
m = m.Where("a."+dao.SysProjectTeamMember.Columns().TeamId+" = ?", gconv.Int64(req.TeamId))
|
||||
}
|
||||
if req.Openid != "" {
|
||||
m = m.Where("a."+dao.SysProjectTeamMember.Columns().Openid+" = ?", req.Openid)
|
||||
}
|
||||
if req.PostId != "" {
|
||||
m = m.Where("a."+dao.SysProjectTeamMember.Columns().PostId+" = ?", gconv.Int64(req.PostId))
|
||||
}
|
||||
if req.IsPcSysUser != "" && (req.IsPcSysUser != "1" || req.IsPcSysUser != "2") {
|
||||
m = m.Where("b.wx_or_pc", req.IsPcSysUser)
|
||||
}
|
||||
if len(openids) > 0 {
|
||||
m = m.Where("a.openid in (?) ", openids)
|
||||
}
|
||||
// 创建时间模糊查询
|
||||
if req.CreateTime != "" {
|
||||
date := tool.New().GetFormattedDate(gconv.Time(req.CreateTime))
|
||||
m = m.Where("a."+dao.SysProjectTeam.Columns().CreateTime+" like ?", "%"+date+"%")
|
||||
}
|
||||
if req.CreateTime != "" {
|
||||
m = m.Where("a."+dao.SysProjectTeamMember.Columns().UpdateTime+" = ?", gconv.Time(req.CreateTime))
|
||||
}
|
||||
m = m.Where("`a`.`deleted_at` IS NULL")
|
||||
m = m.Where("`b`.`deleted_at` IS NULL")
|
||||
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.SysProjectTeamMemberInfoRes
|
||||
err = m.Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.SysProjectTeamMemberListRes, len(res))
|
||||
for k, v := range res {
|
||||
// var sj *model.BusConstructionUserInfoRes
|
||||
// dao.BusConstructionUser.Ctx(ctx).Where("openid", v.Openid).Fields("user_name,nick_name").Scan(&sj)
|
||||
listRes.List[k] = &model.SysProjectTeamMemberListRes{
|
||||
Id: v.Id,
|
||||
TeamId: v.TeamId,
|
||||
Openid: v.Openid,
|
||||
PostId: v.PostId,
|
||||
// HeadIcon: v.HeadIcon,
|
||||
Phone: v.Phone,
|
||||
UserName: v.UserName,
|
||||
NickName: v.NickName,
|
||||
Original: v.Original,
|
||||
Salary: v.Salary,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeamMember) GetById(ctx context.Context, id int64) (res *model.SysProjectTeamMemberInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.SysProjectTeamMember.Ctx(ctx).WithAll().Where(dao.SysProjectTeamMember.Columns().Id, id).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeamMember) Add(ctx context.Context, req *wxApplet.SysProjectTeamMemberAddReq) (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.Openid).Count()
|
||||
count, err := dao.SysProjectTeamMember.Ctx(ctx).Where("openid", req.Openid).Count()
|
||||
if count > 0 {
|
||||
err = errors.New("当前成员已分配组!")
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
return
|
||||
}
|
||||
// 2、获取当前项目的班组长openid
|
||||
value, err := dao.SysProjectTeamMember.Ctx(ctx).Where("team_id", req.TeamId).Where("post_id", "10").Fields("openid").Value()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
originalOpenid := value.String()
|
||||
if req.PostId == 10 {
|
||||
// 新增数据如果是组长,那么就将当前组的所有成员修改为组员
|
||||
_, err = dao.SysProjectTeamMember.Ctx(ctx).Where("team_id", req.TeamId).Update(g.Map{"post_id": 4})
|
||||
liberr.ErrIsNil(ctx, err, "新增班组长失败")
|
||||
}
|
||||
// 删除班组长这个角色,如果当前用户没得班组长也不影响,不管如何先删再说
|
||||
if originalOpenid != "" {
|
||||
err := OpenidByDelFunc(ctx, originalOpenid)
|
||||
liberr.ErrIsNil(ctx, err, "班组长交接失败")
|
||||
}
|
||||
// 新增数据
|
||||
value, err = dao.SysProjectTeam.Ctx(ctx).WherePri(req.TeamId).Fields("project_id").Value()
|
||||
_, err = dao.SysProjectTeamMember.Ctx(ctx).Insert(do.SysProjectTeamMember{
|
||||
TeamId: req.TeamId,
|
||||
Openid: req.Openid,
|
||||
PostId: req.PostId,
|
||||
ProjectId: value,
|
||||
})
|
||||
openidValue, err := dao.SysProjectTeamMember.Ctx(ctx).Where("team_id", req.TeamId).Where("post_id", "10").Fields("openid").Value()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
if openidValue.String() != "" {
|
||||
err := OpenidByAddFunc(ctx, openidValue.String())
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
}
|
||||
////如果与元原来班组长的补卡申请未处理完毕,那么就由新的班组长接任处理
|
||||
//_, err = g.DB().Model("bus_reissue_a_card").
|
||||
// Where("ganger", originalOpenid).
|
||||
// Where("ganger_opinion", "1").
|
||||
// Update(g.Map{"ganger": req.Openid})
|
||||
//liberr.ErrIsNil(ctx, err, "新增失败")
|
||||
//新增完还得操作一下用户的team_id字段
|
||||
now := time.Now()
|
||||
date := tool.New().GetFormattedDateTime(now)
|
||||
g2 := g.Map{
|
||||
"team_id": req.TeamId,
|
||||
"project_id": value,
|
||||
//"type_of_work": req.TypeOfWork,
|
||||
//"native_place": req.NativePlace,
|
||||
"entry_date": date,
|
||||
"leave_date": "",
|
||||
}
|
||||
_, err = dao.BusConstructionUser.Ctx(ctx).Where("openid", req.Openid).Update(g2)
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
|
||||
subQuery := g.Model("sys_user").As("su").LeftJoin("bus_construction_user bcu", "bcu.phone = su.mobile").Where("bcu.openid", req.Openid).Fields("su.id")
|
||||
//user_id := lo.Must(subQuery.Value()).Int()
|
||||
user_ids, err := subQuery.Value()
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
|
||||
user_id := user_ids.Int()
|
||||
|
||||
if req.PostId == 4 { // 删除班组长角色菜单,添加施工人员角色菜单
|
||||
_, err = sdao.AppUserRoles.Ctx(ctx).Where("user_id = ?", user_id).Where("role_id", 1).Where("major_role", 1).Delete()
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
sdao.AppUserRoles.Ctx(ctx).Where("user_id = ?", user_id).Data(g.Map{"role_id": 2, "major_role": 1, "user_id": user_id}).Insert()
|
||||
} else if req.PostId == 10 { // 添加班组长角色菜单
|
||||
// 添加班组长角色
|
||||
_, err = sdao.AppUserRoles.Ctx(ctx).Where("user_id = ?", user_id).Where("role_id", 1).Where("major_role", 1).Delete()
|
||||
_, err := sdao.AppUserRoles.Ctx(ctx).Where("user_id = ?", user_id).Data(g.Map{"role_id": 1, "major_role": 1, "user_id": user_id}).Insert()
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
}
|
||||
|
||||
})
|
||||
return err
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysProjectTeamMember) Edit(ctx context.Context, req *wxApplet.SysProjectTeamMemberEditReq) (err error) {
|
||||
err = g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
// 1、新增数据如果是组长,那么就将当前组的所有成员修改为组员
|
||||
value, err := dao.SysProjectTeamMember.Ctx(ctx).Where("team_id", req.TeamId).Where("post_id", "10").Fields("openid").Value()
|
||||
originalOpenid := value.String()
|
||||
if req.PostId == 10 {
|
||||
_, err = dao.SysProjectTeamMember.Ctx(ctx).Where("team_id", req.TeamId).Update(g.Map{"post_id": 4})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
}
|
||||
|
||||
subQuery := g.Model("sys_user").As("su").LeftJoin("bus_construction_user bcu", "bcu.phone = su.mobile").Where("bcu.openid", req.Openid).Fields("su.id")
|
||||
user_id := lo.Must(subQuery.Value()).Int()
|
||||
if req.PostId == 4 { // 删除班组长角色菜单,添加施工人员角色菜单
|
||||
_, err = sdao.AppUserRoles.Ctx(ctx).Where("user_id = ?", user_id).Where("role_id", 1).Where("major_role", 1).Delete()
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
sdao.AppUserRoles.Ctx(ctx).Where("user_id = ?", user_id).Data(g.Map{"role_id": 2, "major_role": 1, "user_id": user_id}).Insert()
|
||||
} else if req.PostId == 10 { // 添加班组长角色菜单
|
||||
// 添加班组长角色
|
||||
_, err = sdao.AppUserRoles.Ctx(ctx).Where("user_id = ?", user_id).Where("role_id", 1).Where("major_role", 1).Delete()
|
||||
_, err := sdao.AppUserRoles.Ctx(ctx).Where("user_id = ?", user_id).Data(g.Map{"role_id": 1, "major_role": 1, "user_id": user_id}).Insert()
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
}
|
||||
|
||||
// 2、删除班组长角色,不管如何先删再说
|
||||
if originalOpenid != "" {
|
||||
err := OpenidByDelFunc(ctx, originalOpenid)
|
||||
liberr.ErrIsNil(ctx, err, "班组长交接失败")
|
||||
}
|
||||
// 3、修改用户信息
|
||||
value, err = dao.SysProjectTeam.Ctx(ctx).WherePri(req.TeamId).Fields("project_id").Value()
|
||||
_, err = dao.SysProjectTeamMember.Ctx(ctx).WherePri(req.Id).Update(do.SysProjectTeamMember{
|
||||
TeamId: req.TeamId,
|
||||
ProjectId: value,
|
||||
Openid: req.Openid,
|
||||
PostId: req.PostId,
|
||||
})
|
||||
// 4、查询是否有班组长,有就增加班组长角色
|
||||
openidValue, err := dao.SysProjectTeamMember.Ctx(ctx).Where("team_id", req.TeamId).Where("post_id", "10").Fields("openid").Value()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
if openidValue.String() != "" {
|
||||
err := OpenidByAddFunc(ctx, openidValue.String())
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
}
|
||||
// 5、如果与原来班组长的补卡申请未处理完毕,那么就由新的班组长接任处理
|
||||
_, err = g.DB().Model("bus_reissue_a_card").
|
||||
Where("ganger", originalOpenid).
|
||||
Where("ganger_opinion", "1").
|
||||
Update(g.Map{"ganger": req.Openid})
|
||||
liberr.ErrIsNil(ctx, err, "新增失败")
|
||||
////如果是离场就操作一下施工人员,并且删除成员
|
||||
//if req.SiteNum == "2" {
|
||||
// g2 := g.Map{
|
||||
// "leave_date": tool.New().GetFormattedDateTime(time.Now()),
|
||||
// "team_id": nil,
|
||||
// "project_id": nil,
|
||||
// "if_management": nil,
|
||||
// }
|
||||
// _, err = dao.BusConstructionUser.Ctx(ctx).Where("openid", req.Openid).Update(g2)
|
||||
// //1、查询数据
|
||||
// value, err := dao.SysProjectTeamMember.Ctx(ctx).WherePri(req.Id).Fields("openid").Value()
|
||||
// //2、更新数据
|
||||
// _, err = dao.BusConstructionUser.Ctx(ctx).Where("openid", value.String()).Update(g.Map{"team_id": nil, "if_management": ""})
|
||||
// liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
// //3、删除成员
|
||||
// _, err = dao.SysProjectTeamMember.Ctx(ctx).Delete(dao.SysProjectTeamMember.Columns().Id+" = ", req.Id)
|
||||
// liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
//}
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
})
|
||||
return err
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// OpenidByDelFunc 根据openid查询用户删除班组长角色
|
||||
func OpenidByDelFunc(ctx context.Context, openid string) error {
|
||||
v, err := dao.BusConstructionUser.Ctx(ctx).Where(dao.BusConstructionUser.Columns().Openid, openid).Fields("id").Value()
|
||||
_, err = g.DB().Model("sys_wechat_user_role").Ctx(ctx).
|
||||
Where("user_id", v).
|
||||
Where("role_id = 4").
|
||||
Delete("user_id", v)
|
||||
return err
|
||||
}
|
||||
|
||||
// OpenidByAddFunc 根据openid查询用户增加班组长角色
|
||||
func OpenidByAddFunc(ctx context.Context, openid string) error {
|
||||
// 根据openid去获取到微信用户的主键ID
|
||||
v, err := dao.BusConstructionUser.Ctx(ctx).Where(dao.BusConstructionUser.Columns().Openid, openid).Fields("id").Value()
|
||||
liberr.ErrIsNil(ctx, err)
|
||||
// 给当前用户追加班组长角色
|
||||
var roleIds []int64
|
||||
roleIds = append(roleIds, 4)
|
||||
err = logic2.InsertRoleModuleFunc(ctx, roleIds, v.Int64())
|
||||
return err
|
||||
}
|
||||
|
||||
// 删除先不用给干掉
|
||||
func (s *sSysProjectTeamMember) 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) {
|
||||
// // for _, dataId := range ids {
|
||||
// // //1、查询数据
|
||||
// // value, err := dao.SysProjectTeamMember.Ctx(ctx).WherePri(dataId).Fields("openid").Value()
|
||||
// // //2、更新数据
|
||||
// // g2 := g.Map{
|
||||
// // "leave_date": tool.New().GetFormattedDateTime(time.Now()),
|
||||
// // "team_id": nil,
|
||||
// // "if_management": nil,
|
||||
// // }
|
||||
// // _, err = dao.BusConstructionUser.Ctx(ctx).Where("openid", value.String()).Update(g2)
|
||||
// // liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
// // }
|
||||
// // //3、删除成员
|
||||
// // _, err = dao.SysProjectTeamMember.Ctx(ctx).Delete(dao.SysProjectTeamMember.Columns().Id+" in (?)", ids)
|
||||
// // liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
// //})
|
||||
// //return err
|
||||
//})
|
||||
return err
|
||||
}
|
||||
@ -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
|
||||
}
|
||||
@ -0,0 +1,143 @@
|
||||
// ==========================================================================
|
||||
// GFast自动生成logic操作代码。
|
||||
// 生成日期:2023-08-21 09:19:15
|
||||
// 生成路径: internal/app/wxApplet/logic/sys_user_project_relevancy.go
|
||||
// 生成人:gfast
|
||||
// desc:系统用户与项目关联
|
||||
// company:云南奇讯科技有限公司
|
||||
// ==========================================================================
|
||||
|
||||
package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/tiger1103/gfast/v3/api/v1/common/coryCommon"
|
||||
"github.com/tiger1103/gfast/v3/api/wxApplet/wxApplet"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/system/consts"
|
||||
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/internal/app/wxApplet/model/do"
|
||||
"github.com/tiger1103/gfast/v3/internal/app/wxApplet/service"
|
||||
"github.com/tiger1103/gfast/v3/library/liberr"
|
||||
tool "github.com/tiger1103/gfast/v3/utility/coryUtils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
service.RegisterSysUserProjectRelevancy(New())
|
||||
}
|
||||
|
||||
func New() *sSysUserProjectRelevancy {
|
||||
return &sSysUserProjectRelevancy{}
|
||||
}
|
||||
|
||||
type sSysUserProjectRelevancy struct{}
|
||||
|
||||
func (s *sSysUserProjectRelevancy) List(ctx context.Context, req *wxApplet.SysUserProjectRelevancySearchReq) (listRes *wxApplet.SysUserProjectRelevancySearchRes, err error) {
|
||||
listRes = new(wxApplet.SysUserProjectRelevancySearchRes)
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
m := dao.SysUserProjectRelevancy.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin("sys_project as b on a.project_id = b.id").
|
||||
Fields(`a.*,
|
||||
CASE WHEN (b.short_name IS NULL OR b.project_name = '') THEN b.project_name ELSE b.short_name END AS project_name,
|
||||
b.lng,b.lat,b.type,b.project_site`)
|
||||
if req.UserId != "" {
|
||||
m = m.Where("a."+dao.SysUserProjectRelevancy.Columns().UserId+" = ?", gconv.Int64(req.UserId))
|
||||
}
|
||||
if req.ProjectId != "" {
|
||||
m = m.Where("a."+dao.SysUserProjectRelevancy.Columns().ProjectId+" = ?", gconv.Int64(req.ProjectId))
|
||||
}
|
||||
if len(req.DateRange) != 0 {
|
||||
m = m.Where("a."+dao.SysUserProjectRelevancy.Columns().CreatedAt+" >=? AND "+dao.SysUserProjectRelevancy.Columns().CreatedAt+" <=?", req.DateRange[0], req.DateRange[1])
|
||||
}
|
||||
// 创建时间模糊查询
|
||||
if req.CreatedAt != "" {
|
||||
date := tool.New().GetFormattedDate(gconv.Time(req.CreatedAt))
|
||||
m = m.Where("a."+dao.SysUserProjectRelevancy.Columns().CreatedAt+" like ?", "%"+date+"%")
|
||||
}
|
||||
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.SysUserProjectRelevancyInfoRes
|
||||
err = m.Page(req.PageNum, req.PageSize).Order(order).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取数据失败")
|
||||
listRes.List = make([]*model.SysUserProjectRelevancyListRes, len(res))
|
||||
for k, v := range res {
|
||||
listRes.List[k] = &model.SysUserProjectRelevancyListRes{
|
||||
Id: v.Id,
|
||||
UserId: v.UserId,
|
||||
ProjectId: v.ProjectId,
|
||||
CreatedAt: v.CreatedAt,
|
||||
ProjectName: v.ProjectName,
|
||||
Lng: v.Lng,
|
||||
Lat: v.Lat,
|
||||
Type: v.Type,
|
||||
ProjectSite: v.ProjectSite,
|
||||
}
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysUserProjectRelevancy) GetById(ctx context.Context, id int64) (res *model.SysUserProjectRelevancyInfoRes, err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
err = dao.SysUserProjectRelevancy.Ctx(ctx).WithAll().As("a").
|
||||
LeftJoin("sys_project as b on a.project_id = b.id").
|
||||
Fields("a.*,b.project_name,b.lng,b.lat").
|
||||
Where("a."+dao.SysUserProjectRelevancy.Columns().Id, id).Scan(&res)
|
||||
liberr.ErrIsNil(ctx, err, "获取信息失败")
|
||||
// 获取创建人 更新人
|
||||
by := coryCommon.New().CreateByOrUpdateBy(ctx, res)
|
||||
infoRes := by.(model.SysUserProjectRelevancyInfoRes)
|
||||
res = &infoRes
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysUserProjectRelevancy) Add(ctx context.Context, req *wxApplet.SysUserProjectRelevancyAddReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
name := ct.New().GetLoginUser(ctx).Id
|
||||
_, err = dao.SysUserProjectRelevancy.Ctx(ctx).Insert(do.SysUserProjectRelevancy{
|
||||
UserId: req.UserId,
|
||||
ProjectId: req.ProjectId,
|
||||
CreateBy: name,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "添加失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysUserProjectRelevancy) Edit(ctx context.Context, req *wxApplet.SysUserProjectRelevancyEditReq) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
name := ct.New().GetLoginUser(ctx).Id
|
||||
_, err = dao.SysUserProjectRelevancy.Ctx(ctx).WherePri(req.Id).Update(do.SysUserProjectRelevancy{
|
||||
UserId: req.UserId,
|
||||
ProjectId: req.ProjectId,
|
||||
UpdateBy: name,
|
||||
})
|
||||
liberr.ErrIsNil(ctx, err, "修改失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func (s *sSysUserProjectRelevancy) Delete(ctx context.Context, ids []int64) (err error) {
|
||||
err = g.Try(ctx, func(ctx context.Context) {
|
||||
_, err = dao.SysUserProjectRelevancy.Ctx(ctx).Delete(dao.SysUserProjectRelevancy.Columns().Id+" in (?)", ids)
|
||||
liberr.ErrIsNil(ctx, err, "删除失败")
|
||||
})
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user