123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package survey_mechanism
- import (
- "fmt"
- "surveyService/model"
- "surveyService/response"
- "surveyService/service/questionnaire_survey"
- "surveyService/service/survey"
- "surveyService/validators"
- "github.com/golang-module/carbon"
- "gogs.uu.mdfitnesscao.com/hys/sdk"
- "gorm.io/gorm"
- )
- type Member struct {
- MechanismId string // 机构ID
- Member *sdk.AuthMember
- }
- func InitMember(member *sdk.AuthMember, mechanismId string) *Member {
- return &Member{
- MechanismId: mechanismId,
- Member: member,
- }
- }
- // 获取问卷授权基本信息
- func (m *Member) Detail(sn string) (*model.SurveyMechanism, *response.ErrCode) {
- var surveyMechanismModel *model.SurveyMechanism
- findErr := model.DB.Where("sn = ?", sn).Preload("Survey").First(&surveyMechanismModel).Error
- if findErr != nil {
- return nil, &response.ErrCode{
- Code: response.ERROR,
- Msg: "问卷不存在或已下架",
- }
- }
- if surveyMechanismModel.Status != model.SURVEY_MECHANISM_STATUS_ENABLE {
- return nil, &response.ErrCode{
- Code: response.ERROR,
- Msg: "问卷未启用",
- }
- }
- if surveyMechanismModel.AuthorizeStatus != model.SURVEY_MECHANISM_AUTHORIZE_STATUS_ENABLE {
- return nil, &response.ErrCode{
- Code: response.ERROR,
- Msg: "问卷授权被禁用",
- }
- }
- return surveyMechanismModel, nil
- }
- // 获取授权的问卷列表
- func (m *Member) List(surveyType int64) []*model.SurveyMechanism {
- surveyTableName := (&model.Survey{}).TableName()
- surveyMechanismTableName := (&model.SurveyMechanism{}).TableName()
- var surveyMechanismModels []*model.SurveyMechanism
- var tx = model.DB.Preload("SurveyResult", func(db *gorm.DB) *gorm.DB {
- return db.Where(&model.SurveyResult{
- ArchivesId: m.Member.ID,
- }).Order("end_time desc")
- }).Preload("Survey").Where(&model.SurveyMechanism{
- Status: model.SURVEY_MECHANISM_STATUS_ENABLE,
- AuthorizeStatus: model.SURVEY_MECHANISM_AUTHORIZE_STATUS_ENABLE,
- MechanismId: m.MechanismId,
- }).Select(fmt.Sprintf("%s.*", surveyMechanismTableName)).Joins(fmt.Sprintf("right join %s on %s.id = %s.survey_id", surveyTableName, surveyTableName, surveyMechanismTableName))
- if surveyType > 0 {
- tx = tx.Where(fmt.Sprintf("%s.type = ?", surveyTableName), surveyType)
- }
- tx.Find(&surveyMechanismModels)
- return surveyMechanismModels
- }
- // 获取问卷详情(转译系统)
- func (m *Member) DetailSurveyQuestions(sn string) (*validators.QuestionnaireSurvey, *response.ErrCode) {
- _, findErr := m.Detail(sn)
- if findErr != nil {
- return nil, findErr
- }
- // if surveyMechanism.Survey.SurveyCode == "" {
- // return nil, &response.ErrCode{
- // Code: response.ERROR,
- // Msg: "该问卷未配置关联模型",
- // }
- // }
- surveyCode := "DZTJV1"
- // 获取问卷配置信息
- surveyConfig, detailErr := questionnaire_survey.FindBySN(surveyCode)
- if detailErr != nil {
- return nil, &response.ErrCode{
- Code: response.ERROR,
- Msg: "获取问卷配置失败",
- }
- }
- return questionnaire_survey.Format(surveyConfig), nil
- }
- // 获取问卷详情(转译系统)
- func (m *Member) FormatSurvey(surveyMechanism *model.SurveyMechanism) *validators.SurveyMechanism {
- if surveyMechanism == nil {
- return nil
- }
- formatedSurvey := survey.Format(&surveyMechanism.Survey)
- name := surveyMechanism.Name
- cover := surveyMechanism.Cover
- if name == "" {
- name = formatedSurvey.Name
- }
- if cover == "" {
- cover = formatedSurvey.Cover
- }
- lastVisitTime := ""
- var lastSurveyResultId string = ""
- if surveyMechanism.SurveyResult != nil {
- lastVisitTime = carbon.Time2Carbon(surveyMechanism.SurveyResult.StartTime).Format("Y/m/d H:i:s")
- lastSurveyResultId = surveyMechanism.SurveyResult.SN
- }
- return &validators.SurveyMechanism{
- ID: surveyMechanism.SN,
- MechanismId: surveyMechanism.MechanismId,
- Mechanism: nil,
- Name: name,
- Cover: cover,
- LastVisitTime: lastVisitTime,
- LastSurveyResultId: lastSurveyResultId,
- Description: surveyMechanism.Description,
- }
- }
|