Explorar el Código

add: 研报2.0

hsun hace 3 años
padre
commit
260a95aee1

+ 0 - 16
controller/activity/activity.go

@@ -252,20 +252,4 @@ func calcuDrawXandY(drawText string, fontSize, canvasLength, canvasWidth int) (x
 	}
 
 	return
-}
-
-// SyncOldActivityData 同步三个月前电话会数据
-func SyncOldActivityData(c *gin.Context) {
-	authCode := c.DefaultQuery("auth_code", "0")
-	if authCode != "10086" {
-		response.Fail("无权操作", c)
-		return
-	}
-	countTotal, countSuccess, err := activity.SyncTeleconferenceOldData()
-	if err != nil {
-		response.Fail("同步失败" + err.Error(), c)
-		return
-	}
-	tips := "同步总数:" + strconv.Itoa(countTotal) + ", 同步成功数:" + strconv.Itoa(countSuccess)
-	response.OkData("同步成功", tips, c)
 }

+ 7 - 1
controller/user/user.go

@@ -8,6 +8,7 @@ import (
 	userResp "hongze/hongze_yb/models/response/user"
 	userService "hongze/hongze_yb/services/user"
 	"hongze/hongze_yb/utils"
+	"strconv"
 	"strings"
 )
 
@@ -193,7 +194,12 @@ func Info(c *gin.Context) {
 // @Router /user/get_last_apply_record [get]
 func GetLastApplyRecord(c *gin.Context) {
 	userInfo := userService.GetInfoByClaims(c)
-	record, err := userLogic.GetLastApplyInfo(int(userInfo.UserID))
+	reqSource := c.DefaultQuery("source", "0")
+	if reqSource == "0" {
+		reqSource = "1"
+	}
+	source, _ := strconv.Atoi(reqSource)
+	record, err := userLogic.GetLastApplyInfo(int(userInfo.UserID), source)
 
 	if err != nil {
 		response.Fail("获取失败", c)

+ 5 - 4
logic/user/user.go

@@ -214,8 +214,8 @@ type Record struct {
 }
 
 // GetLastApplyInfo 获取最近的一套申请记录
-func GetLastApplyInfo(userId int) (record Record, err error) {
-	recordInfo, err := yb_apply_record.GetLastNotOpRecordByUserId(userId)
+func GetLastApplyInfo(userId, source int) (record Record, err error) {
+	recordInfo, err := yb_apply_record.GetLastNotOpRecordByUserId(userId, source)
 	if err != nil {
 		if err == utils.ErrNoRow {
 			err = nil
@@ -237,9 +237,9 @@ func Apply(userId int, companyId int64, mobile, email string, applyInfo userReq.
 	status := `潜在用户`
 	companyName := applyInfo.CompanyName
 
-	tmpmYbApplyRecord, err := yb_apply_record.GetLastNotOpRecordByUserId(userId)
+	tmpmYbApplyRecord, err := yb_apply_record.GetLastNotOpRecordByUserId(userId, applyInfo.Source)
 	if err == nil {
-		ybApplyRecord = tmpmYbApplyRecord
+		ybApplyRecord = tmpmYbApplyRecord	// 申请来源每一种只存在一条数据
 		return
 	} else {
 		if err != utils.ErrNoRow {
@@ -300,6 +300,7 @@ func Apply(userId int, companyId int64, mobile, email string, applyInfo userReq.
 		CompanyIDPay:    int(companyId),
 		CompanyNamePay:  companyName,
 		CreateTime:      time.Now(),
+		Source: 		 applyInfo.Source,
 	}
 	err = ybApplyRecord.Create()
 	if err != nil {

+ 1 - 0
models/request/user/user.go

@@ -13,4 +13,5 @@ type ApplyReq struct {
 	CompanyName     string `description:"公司名称" json:"company_name"`
 	RealName        string `description:"用户真实姓名" json:"real_name"`
 	Permission      string `description:"用户关注品种,多个品种之间用英文,隔开" json:"permission"`
+	Source			int	   `description:"申请来源:1-我的 2-活动 3-图库"`
 }

+ 2 - 2
models/tables/yb_apply_record/query.go

@@ -24,7 +24,7 @@ func GetByRecordId(recordId int) (item *YbApplyRecord, err error) {
 }
 
 // GetLastNotOpRecordByUserId 根据用户id获取最近的一条未被操作过的申请记录信息
-func GetLastNotOpRecordByUserId(userId int) (item *YbApplyRecord, err error) {
-	err = global.DEFAULT_MYSQL.Where("user_id =  ? and op_status=0", userId).Order("apply_record_id desc").First(&item).Error
+func GetLastNotOpRecordByUserId(userId, source int) (item *YbApplyRecord, err error) {
+	err = global.DEFAULT_MYSQL.Where("user_id = ? AND source = ? and op_status = 0", userId, source).Order("apply_record_id desc").First(&item).Error
 	return
 }

+ 2 - 0
models/tables/yb_apply_record/yb_apply_record.go

@@ -21,6 +21,8 @@ type YbApplyRecord struct {
 	DealTime        time.Time `gorm:"column:deal_time;type:datetime" json:"dealTime"`                               // 处理时间
 	SysUserID       int       `gorm:"column:sys_user_id;type:int(11);default:0" json:"sysUserId"`                   // 处理人id
 	CreateTime      time.Time `gorm:"column:create_time;type:datetime" json:"createTime"`                           // 创建时间
+	IsMove			int		  `gorm:"column:is_move;type:tinyint(4);default:0" json:"is_move"`						// 是否已移动 0-否 1-是
+	Source			int		  `gorm:"column:source;type:tinyint(4);default:1" json:"source"`						// 申请来源 1-我的 2-活动 3-图库
 }
 
 // TableName get sql table name.获取数据库表名

+ 0 - 211
services/activity/activity.go

@@ -1,26 +1,17 @@
 package activity
 
 import (
-	"errors"
 	"gorm.io/gorm"
-	"hongze/hongze_yb/global"
-	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/company_product"
-	"hongze/hongze_yb/models/tables/research_report"
-	"hongze/hongze_yb/models/tables/teleconference"
-	"hongze/hongze_yb/models/tables/teleconference_video"
 	"hongze/hongze_yb/models/tables/yb_activity"
 	"hongze/hongze_yb/models/tables/yb_activity_permission"
 	"hongze/hongze_yb/models/tables/yb_activity_register"
 	"hongze/hongze_yb/models/tables/yb_activity_remind"
-	"hongze/hongze_yb/models/tables/yb_activity_type"
 	"hongze/hongze_yb/models/tables/yb_activity_voice"
-	"hongze/hongze_yb/models/tables/yb_speaker"
 	"hongze/hongze_yb/services/company"
 	"hongze/hongze_yb/services/user"
 	"hongze/hongze_yb/utils"
 	"log"
-	"strconv"
 	"strings"
 	"time"
 )
@@ -203,207 +194,5 @@ func GetUserAuthActivityIds(userInfo user.UserInfo) (acrivityIds []int, err erro
 		acrivityIds = append(acrivityIds, int(v.ActivityID))
 	}
 
-	return
-}
-
-// SyncTeleconferenceOldData 同步旧数据
-func SyncTeleconferenceOldData() (countTotal, countSuccess int, err error) {
-	// 查询所有前三个月的电话会
-	condition := "enabled = 1"
-	pars := make([]interface{}, 0)
-	nowTime := time.Now()
-	threeMonth := nowTime.AddDate(0, -3, 0).Format(utils.FormatDateTime)
-	condition += " AND created_time >= ? AND created_time <= ?"
-	pars = append(pars, threeMonth, nowTime)
-	teleconferenceList, err := teleconference.GetTeleconferenceList(condition, pars)
-	if err != nil {
-		return
-	}
-	countTotal = len(teleconferenceList)
-	
-	// 取出电话会IDs和报告Ids
-	var teleconferenceIds, reportIds, chartPermissionIds []int
-	for i := 0; i < len(teleconferenceList); i++ {
-		teleconferenceIds = append(teleconferenceIds, int(teleconferenceList[i].TeleconferenceID))
-		reportIds = append(reportIds, int(teleconferenceList[i].ReferResearchReportID))
-		chartPermissionIds = append(chartPermissionIds, teleconferenceList[i].ReportPermissionID)
-	}
-
-	// 报告名称map
-	var reportIdNameMap = make(map[int]string, 0)
-	reportList, err := research_report.GetListByResearchReportIds(reportIds)
-	if err != nil {
-		return
-	}
-	for i := 0; i < len(reportList); i++ {
-		reportIdNameMap[int(reportList[i].ResearchReportID)] = reportList[i].ResearchReportName
-	}
-
-	// 活动类型map
-	var typeNameIdMap = make(map[string]int, 0)
-	var typeFirstMap = make(map[int]int, 0)
-	var typeIdNameMap = make(map[int]string, 0)
-	activityTypeList, err := yb_activity_type.GetTypeList()
-	if err != nil {
-		return
-	}
-	for _, activityType := range activityTypeList {
-		typeNameIdMap[activityType.ActivityTypeName] = activityType.ActivityTypeID
-		typeFirstMap[activityType.ActivityTypeID] = activityType.Pid
-		typeIdNameMap[activityType.ActivityTypeID] = activityType.ActivityTypeName
-	}
-
-	// 主讲人map
-	speakerList, err := yb_speaker.GetSpeakerList()
-	if err != nil {
-		return
-	}
-	var speakerNamePicMap = make(map[string]string, 0)
-	for i := 0; i < len(speakerList); i++ {
-		speakerNamePicMap[speakerList[i].SpeakerName] = speakerList[i].SpeakerHeadPic
-	}
-
-	// 音频列表
-	voicesList, err := teleconference_video.GetListByTeleconferenceIds(teleconferenceIds)
-	if err != nil {
-		return
-	}
-
-	// 图片权限map
-	chartPermissionList, err := chart_permission.GetListByIds(chartPermissionIds)
-	if err != nil {
-		return
-	}
-	var chartPermissionIdNameMap = make(map[int]string, 0)
-	for i := 0; i < len(chartPermissionList); i++ {
-		chartPermissionIdNameMap[int(chartPermissionList[i].ChartPermissionID)] = chartPermissionList[i].PermissionName
-	}
-
-	// 开启事务
-	tx := global.DEFAULT_MYSQL.Begin()
-	defer func() {
-		if err != nil {
-			tx.Rollback()
-		} else {
-			tx.Commit()
-		}
-	}()
-
-	// 遍历数据
-	for _, item := range teleconferenceList {
-
-		// 匹配报告名称和link
-		reportId := int(item.ReferResearchReportID)
-		linkUrl := `https://details.hzinsights.com/ficcReportDetail?research_report_id=`
-		if global.CONFIG.Serve.RunMode == `debug` {
-			linkUrl = `http://advisoryadmin.brilliantstart.cn/xcx_h5/ficcReportDetail?research_report_id=`
-		}
-		reportLink := linkUrl + strconv.Itoa(reportId)
-		reportName := reportIdNameMap[reportId]
-
-		// 匹配活动类型-中文匹配ID
-		var firstActivityTypeId, activityTypeId int
-		var firstActivityTypeName, activityTypeName string
-		activityTypeId = typeNameIdMap[item.Type]
-		if activityTypeId > 0 {
-			// 类型匹配到了
-			activityTypeName = typeIdNameMap[activityTypeId]
-			firstActivityTypeId = typeFirstMap[activityTypeId]
-			firstActivityTypeName = typeIdNameMap[firstActivityTypeId]
-		}
-
-		// 匹配主讲人头像
-		speakerName := item.Speaker
-		if speakerName == "" {
-			continue
-		} else if speakerName == "全体FICC研究员" || speakerName == "弘则FICC研究员" {
-			speakerName = "FICC研究员"
-		}
-		speakerPic := "https://hzstatic.hzinsights.com/static/images/202112/20211210/wn6c3oYKTfT4NbTZgRGflRuIBZaa.png"
-		for i := 0; i < len(speakerList); i++ {
-			if strings.Contains(speakerName, speakerList[i].SpeakerName) {
-				speakerName = speakerList[i].SpeakerName	// 存在多个人的情况,则以新表数据为准
-				speakerPic = speakerNamePicMap[speakerList[i].SpeakerName]
-				break
-			}
-		}
-
-		backgroundPic := ""
-		if firstActivityTypeId == 1 {
-			// 电话会议
-			backgroundPic = `https://hongze.oss-accelerate.aliyuncs.com/static/images/202112/20211214/nNSTxmH6lxlT0PAp7xcfJJTGX9Gu.png`
-		} else {
-			// 线下沙龙
-			backgroundPic = `https://hongze.oss-accelerate.aliyuncs.com/static/images/202112/20211214/k77gDxvFvuAnYUhF6PU1FOVDHI8O.png`
-		}
-
-		// 新增活动数据
-		activityInfo := &yb_activity.YbActivity{
-			FirstActivityTypeID: firstActivityTypeId,
-			FirstActivityTypeName: firstActivityTypeName,
-			ActivityTypeID: activityTypeId,
-			ActivityTypeName: activityTypeName,
-			ActivityName: item.TeleconferenceTitle,
-			StartTime: item.StartTime,
-			EndTime: item.EndTime,
-			Speaker: speakerName,
-			SpeakerHeadPic: speakerPic,
-			SpeakerBackgroundPic: backgroundPic,
-			SingaporeTel: item.SingaporeTelephone,
-			ParticipationCode: item.Password,
-			MainlandTel: item.Telephone,
-			HongKongTel: item.HkTelephone,
-			ReportID: reportId,
-			ReportLink: reportLink,
-			ReportName: reportName,
-			Remarks: item.Remark,
-			PublishStatus: 1,
-			IsSendWxMsg: 1,
-			IsSendSalonWxMsg: 1,
-			ModifyTime: nowTime,
-			CreateTime: nowTime,
-		}
-
-		// 开启事务之后的操作要使用tx
-		activityCreate := tx.Debug().Create(activityInfo)
-		if activityCreate.Error != nil {
-			err = errors.New("新增活动失败")
-			return
-		}
-		activityId := activityInfo.ActivityID
-
-		// 5.新增活动音频-音频列表
-		for _, voice := range voicesList {
-			if int(item.TeleconferenceID) == voice.TeleconferenceID {
-				activityVoice := &yb_activity_voice.YbActivityVoice{
-					ActivityID: uint32(activityId),
-					VoiceURL: voice.VideoURL,
-					VoiceName: voice.VideoName,
-					VoicePlaySeconds: voice.VideoPlaySeconds,
-					CreateTime: nowTime,
-				}
-				activityVoiceCreate := tx.Debug().Create(activityVoice)
-				if activityVoiceCreate.Error != nil {
-					err = errors.New("新增活动音频失败")
-					return
-				}
-			}
-		}
-
-		// 6.新增活动关联权限-源数据权限仅一个
-		activityPermission := &yb_activity_permission.YbActivityPermission{
-			ActivityID: uint32(activityId),
-			PermissionID: uint32(item.ReportPermissionID),
-			PermissionName: chartPermissionIdNameMap[item.ReportPermissionID],
-			CreateTime: nowTime,
-		}
-		activityPermissionCreate := tx.Debug().Create(activityPermission)
-		if activityPermissionCreate.Error != nil {
-			err = errors.New("新增活动权限失败")
-			return
-		}
-		countSuccess += 1
-	}
-
 	return
 }

+ 1 - 1
services/company/permission.go

@@ -128,7 +128,7 @@ func CheckPermissionByPermissionIdList2Ficc(companyId int64, userId int, permiss
 			ok, _ = checkPermissionByPermissionIdList2Rai(companyId, permissionIdList)
 		}
 		if ok == false && permissionCheckInfo.Type == "apply" {
-			_, err = yb_apply_record.GetLastNotOpRecordByUserId(userId)
+			_, err = yb_apply_record.GetLastNotOpRecordByUserId(userId, 2)	// 活动申请
 			//查询是否有申请过,如果有申请过的话,那么err是nil
 			if err == nil {
 				permissionCheckInfo.CustomerInfo.HasApply = true