Эх сурвалжийг харах

Merge branch 'cygx_9.2' into debug

ziwen 2 жил өмнө
parent
commit
7fd860c02f

+ 129 - 0
models/cygx_morning_meeting_review_chapter.go

@@ -0,0 +1,129 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// CygxMorningMeetingReviewChapter [...]
+type CygxMorningMeetingReviewChapter struct {
+	Id                   int       `orm:"column(id);pk"`
+	MeetingTime          time.Time `json:"meetingTime"` // 晨会日期
+	CreateTime           time.Time `json:"createTime"`
+	ModifyTime           time.Time `json:"modifyTime"`
+	IndustryId           int       `json:"industryId"`          // 产业id
+	IndustryName         string    `json:"industryName"`        // 产业名称
+	ChartPermissionName  string    `json:"chartPermissionName"` // 行业名称
+	ChartPermissionId    int       `json:"chartPermissionId"`   // 行业id
+	IndustrialSubjectIds string    `json:"industrialSubjectId"` // 标的id
+	MeetingId            int64     `json:"meetingId"`           // 主表id
+	Content              string    `json:"content"`             // 内容
+}
+
+type AddMorningMeetingReviewItem struct {
+	ChapterId            int
+	Content              string
+	ChartPermissionId    int
+	ChartPermissionName  string
+	IndustryId           int
+	IndustryName         string
+	IndustrialSubjectIds string
+}
+
+type AddMorningMeetingReviewsReq struct {
+	List        []*AddMorningMeetingReviewItem
+	MeetingId   int
+	MeetingTime string
+	PublishTime string
+	DoType      int `description:"操作类型 0,保存 、1,发布"`
+}
+
+//添加晨报点评章节
+func AddCygxMorningMeetingReviewChapter(item *CygxMorningMeetingReviewChapter) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(item)
+	return
+}
+
+//列表
+func GetCygxMorningMeetingReviewsListById(meetingId int) (items []*CygxMorningMeetingReviewChapter, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_morning_meeting_review_chapter WHERE meeting_id = ? `
+	_, err = o.Raw(sql, meetingId).QueryRows(&items)
+	return
+}
+
+type IndustrialSubjectItem struct {
+	IndustrialSubjectId int    `orm:"column(industrial_subject_id);pk" description:"标的id"`
+	SubjectName         string `description:"标的名称"`
+}
+
+type CygxMorningMeetingReviewChapterRespItem struct {
+	Id                    int                      `orm:"column(id);pk"`
+	MeetingTime           time.Time                `json:"meetingTime"` // 晨会日期
+	CreateTime            time.Time                `json:"createTime"`
+	ModifyTime            time.Time                `json:"modifyTime"`
+	IndustryId            int                      `json:"industryId"`            // 产业id
+	IndustryName          string                   `json:"industryName"`          // 产业名称
+	ChartPermissionName   string                   `json:"chartPermissionName"`   // 行业名称
+	ChartPermissionId     int                      `json:"chartPermissionId"`     // 行业id
+	IndustrialSubjectList []*IndustrialSubjectItem `json:"industrialSubjectList"` // 标的list
+	MeetingId             int64                    `json:"meetingId"`             // 主表id
+	Content               string                   `json:"content"`               // 内容
+}
+
+type CygxMorningMeetingReviewChapterResp struct {
+	MeetingTime string
+	Status int
+	List []*CygxMorningMeetingReviewChapterRespItem
+}
+
+//删除晨会点评章节
+func DeleteMorningMeetingChapter(reviewId int) (err error) {
+	o := orm.NewOrm()
+	sql := ` DELETE FROM cygx_morning_meeting_review_chapter WHERE meeting_id =? `
+	_, err = o.Raw(sql, reviewId).Exec()
+	return
+}
+
+//更新晨报点评章节
+func UpdateCygxMorningMeetingReviewChapter(item *CygxMorningMeetingReviewChapter) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_morning_meeting_review_chapter
+			SET
+			  meeting_time =?,
+			  modify_time = ?,
+			  industry_id = ?,
+			  industry_name = ?,
+			  chart_permission_id = ?,
+			  chart_permission_name = ?,
+			  industrial_subject_ids = ?,
+			  content = ? 
+			WHERE id = ? `
+	_, err = o.Raw(sql, item.MeetingTime, item.ModifyTime, item.IndustryId, item.IndustryName,
+		item.ChartPermissionId, item.ChartPermissionName, item.IndustrialSubjectIds, item.Content, item.Id).Exec()
+
+	return
+}
+
+func GetCygxMorningMeetingReviewsListByIdAndIndustryId(meetingId,  industryId int) (item *CygxMorningMeetingReviewChapter, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_morning_meeting_review_chapter WHERE meeting_id = ? AND industry_id = ? `
+	err = o.Raw(sql, meetingId, industryId).QueryRow(&item)
+	return
+}
+
+//删除晨会点评章节
+func DeleteMorningMeetingChapterById(chapterId int) (err error) {
+	o := orm.NewOrm()
+	sql := ` DELETE FROM cygx_morning_meeting_review_chapter WHERE id =? `
+	_, err = o.Raw(sql, chapterId).Exec()
+	return
+}
+
+func GetCygxMorningMeetingReviewsListByIndustrialIds(industrialIds string) (items []*CygxMorningMeetingReviewChapter, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_morning_meeting_reviews WHERE industry_id IN (` + industrialIds + `)  `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 125 - 0
models/cygx_morning_meeting_reviews.go

@@ -0,0 +1,125 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"time"
+)
+
+// CygxMorningMeetingReviews [...]
+type CygxMorningMeetingReviews struct {
+	Id            int       `orm:"column(id);pk"`
+	MeetingTime   time.Time `json:"meetingTime"` // 晨会日期
+	PublishTime   time.Time `json:"publishTime"` // 发布日期
+	CreateTime    time.Time `json:"createTime"`
+	ModifyTime    time.Time `json:"modifyTime"`
+	Status        int       `json:"status"`       // 0:未发布,1:已发布
+	PartNums      int       `json:"partNums"`     // 段落数
+	IndustryNames string    `json:"industryName"` // 产业名称
+}
+
+//添加晨报点评
+func AddCygxMorningMeetingReviews(item *CygxMorningMeetingReviews) (id int64, err error) {
+	o := orm.NewOrm()
+	id, err = o.Insert(item)
+	return
+}
+
+//列表
+func GetCygxMorningMeetingReviewsList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxMorningMeetingReviews, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_morning_meeting_reviews WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+func GetCygxMorningMeetingReviewsListCount(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT COUNT(1) AS count FROM cygx_morning_meeting_reviews WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+type CygxMorningMeetingReviewItem struct {
+	Id            int    `orm:"column(id);pk"`
+	MeetingTime   string `json:"meetingTime"` // 晨会日期
+	PublishTime   string `json:"publishTime"` // 发布日期
+	CreateTime    string `json:"createTime"`
+	ModifyTime    string `json:"modifyTime"`
+	Status        int    `json:"status"`       // 0:未发布,1:已发布
+	PartNums      int    `json:"partNums"`     // 段落数
+	IndustryNames string `json:"industryName"` // 产业名称
+}
+
+type CygxMorningMeetingReviewsList struct {
+	List   []*CygxMorningMeetingReviewItem
+	Paging *paging.PagingItem `description:"分页数据"`
+}
+
+func GetMorningMeetingReviewById(reviewId int) (item *CygxMorningMeetingReviews, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_morning_meeting_reviews WHERE id=?`
+	err = o.Raw(sql, reviewId).QueryRow(&item)
+	return
+}
+
+// 发布报告
+func PublishMorningMeetingReviewById(reviewId int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_morning_meeting_reviews SET status=1,publish_time=now(),modify_time=NOW() WHERE id = ? `
+	_, err = o.Raw(sql, reviewId).Exec()
+	return
+}
+
+type MorningReviewPublishReq struct {
+	ReviewIds string `description:"晨会id,多个用英文逗号隔开"`
+}
+
+type MorningReviewPublishCancelReq struct {
+	ReviewId int `description:"晨会id"`
+}
+
+//取消发布报告
+func PublishCancelMorningMeetingReview(reviewId int) (err error) {
+	o := orm.NewOrm()
+	sql := ` UPDATE cygx_morning_meeting_reviews SET status=0,publish_time=null WHERE id =?  `
+	_, err = o.Raw(sql, reviewId).Exec()
+	return
+}
+
+type MorningReviewDeleteReq struct {
+	ReviewId int `description:"晨会id"`
+}
+
+
+//删除晨会点评
+func DeleteMorningMeeting(reviewId int) (err error) {
+	o := orm.NewOrm()
+	sql := ` DELETE FROM cygx_morning_meeting_reviews WHERE id =? `
+	_, err = o.Raw(sql, reviewId).Exec()
+	return
+}
+
+//更新晨报点评
+func UpdateCygxMorningMeetingReviews(item *CygxMorningMeetingReviews) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_morning_meeting_reviews
+			SET
+			  meeting_time =?,
+			  publish_time = ?,
+			  modify_time = ?,
+			  part_nums = ?,
+			  industry_names = ?,
+			  status = ? 
+			WHERE id = ? `
+	_, err = o.Raw(sql, item.MeetingTime, item.PublishTime, item.ModifyTime, item.PartNums, item.IndustryNames, item.Status, item.Id).Exec()
+
+	return
+}

+ 7 - 0
models/page_history_record.go

@@ -63,4 +63,11 @@ func GetTimeLineRecordItem(userId, industrialManagementId int) (item *CygxPageHi
 	sql := `SELECT * FROM cygx_page_history_record WHERE user_id=? AND router = '/api/report/industry/ArticleList?PageSize=10&CurrentIndex=1&CategoryId=99999&IndustrialManagementId=`+strconv.Itoa(industrialManagementId)+ `' ORDER BY create_time DESC LIMIT 1,1 `
 	err = o.Raw(sql, userId).QueryRow(&item)
 	return
+}
+
+func GetTimeLineRecordAllCount(userId int, date string) (items []*CygxPageHistoryRecord, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * AS count FROM cygx_page_history_record WHERE user_id=? AND router LIKE '%/api/report/industry/ArticleList?PageSize=10&CurrentIndex=1&CategoryId=99999&IndustrialManagementId=%' AND create_time > ? `
+	_, err = o.Raw(sql, userId, date).QueryRows(&items)
+	return
 }

+ 41 - 2
services/industrial_management.go

@@ -420,6 +420,45 @@ func HandleIndustryList(list []*models.IndustrialManagement, user *models.WxUser
 	}
 	nowTime := time.Now().Local()
 	threeMonBefore := nowTime.AddDate(0, -3, 0)
+
+	//查询用户今天是否看过时间线
+	//haveMorningMeeting := false
+	//var morningMeetingTime string
+	recrodList, err := models.GetTimeLineRecordAllCount(user.UserId, time.Now().Format(utils.FormatDate))
+	if err != nil {
+		return
+	}
+	var industrialManagementIdstr string
+	industrialIdMap := make(map[string]time.Time)
+	for _, v := range recrodList {
+		industrialManagementIdstr = strings.TrimLeft(v.Parameter, "PageSize=10&CurrentIndex=1&CategoryId=99999&IndustrialManagementId=")
+		if createTime, ok := industrialIdMap[industrialManagementIdstr]; ok{
+			if createTime.Before(v.CreateTime) {
+				industrialIdMap[industrialManagementIdstr] = v.CreateTime
+			}
+		}else {
+			industrialIdMap[industrialManagementIdstr] = v.CreateTime
+		}
+	}
+
+	mmList, err := models.GetCygxMorningMeetingReviewsListByIndustrialIds(industrialIds)
+	if err != nil {
+		return
+	}
+	morningMeetingTimeMap := make(map[int]time.Time)
+	for _, v := range mmList {
+		morningMeetingTimeMap[v.IndustryId] = v.CreateTime
+	}
+	timeLineRed := false
+
+	for _, industrialId := range industrialIdArr {
+		if createTime, ok := industrialIdMap[strconv.Itoa(industrialId)]; ok{
+			if createTime.Before(morningMeetingTimeMap[industrialId]) {
+				timeLineRed = true
+			}
+		}
+	}
+
 	for k, v := range list {
 		list[k].UpdateTime = utils.TimeRemoveHms(mapUPdateTime[v.IndustrialManagementId])
 		if userId > 0 {
@@ -429,7 +468,7 @@ func HandleIndustryList(list []*models.IndustrialManagement, user *models.WxUser
 			//}
 
 			//9.2修改为只要有未读的就标红
-			if mapHistroyindustrialId[v.IndustrialManagementId] == 0 {
+			if mapHistroyindustrialId[v.IndustrialManagementId] == 0 || timeLineRed {
 				list[k].IsRed = true
 			}
 		} else {
@@ -447,7 +486,7 @@ func HandleIndustryList(list []*models.IndustrialManagement, user *models.WxUser
 			//}
 			
 			//9.2修改为只要有未读的就标红
-			if mapHistroyindustrialId[v.IndustrialManagementId] == 0 {
+			if mapHistroyindustrialId[v.IndustrialManagementId] == 0 || timeLineRed {
 				list[k].IsRed = true
 			}
 		} else {