package xcx_mobile_api_controller_go

import (
	"Xcx_New/controllers/mobile_api_controllers"
	"Xcx_New/enums"
	"Xcx_New/models"
	"Xcx_New/service"
	"Xcx_New/utils"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/jinzhu/gorm"
	"strconv"
	"time"
)

func XcxApiControllersRegisterRouters() {
	////传送codeinit
	beego.Router("/xcx/m/api/code", &XcxApiController{}, "Get:GetCodeInit")
	//获取验证码
	beego.Router("/xcx/api/mobile/code", &XcxApiController{}, "Get:GetCodeInfo")
	//用户绑定
	beego.Router("/xcx/api/mobile/register", &XcxApiController{}, "Get:GetUserRegister")
	//登录
	beego.Router("/xcx/api/mobile/login", &XcxApiController{}, "Get:GetLoginInfor")

	//获取二维码信息
	beego.Router("/xcx/api/mobile/patient", &XcxApiController{}, "Get:GetPatientList")

	//获取登录后的信息
	beego.Router("/xcx/api/mobile/getdatainfo", &XcxApiController{}, "Get:GetDataInfo")

	//获取排班数据
	beego.Router("/xcx/api/mobile/schedule", &XcxApiController{}, "Get:GetScheduleInfo")

	//获取透析记录
	beego.Router("/xcx/api/mobile/dialysis", &XcxApiController{}, "Get:GetMobileSchedule")

	//获取患者的电子病历
	beego.Router("/xcx/api/mobile/getpatientinfo", &XcxApiController{}, "Get:GetPatientInfo")

	//获取机构名称
	beego.Router("/xcx/api/mobile/getorginfo", &XcxApiController{}, "Get:GetOrgInfo")

	//获取宣教信息
	beego.Router("/xcx/api/mobile/geteducation", &XcxApiController{}, "Get:GetEducationList")

	//获取医嘱信息
	beego.Router("/xcx/api/mobile/getdoctoradvice", &XcxApiController{}, "Get:GetDoctorAdvice")

	//获取机构医生护士的姓名
	beego.Router("/xcx/api/mobile/getdoctorname", &XcxApiController{}, "Get:GetDoctorName")

	//获取显示配置
	beego.Router("/xcx/api/moible/getfieldconfig", &XcxApiController{}, "Get:GetFieldConfig")

	//获取数据字典数据
	beego.Router("/xcx/api/mobile/getdataconfig", &XcxApiController{}, "Get:GetDataConfig")

	//检验检查
	beego.Router("/xcx/api/mobile/getinspectionlist", &XcxApiController{}, "Get:GetInspectionList")

	//肾有杯
	beego.Router("/xcx/api/mobile/getarticlist", &XcxApiController{}, "Get:GetArticList")

	beego.Router("/xcx/api/mobile/getarticlistdetail", &XcxApiController{}, "Get:GetArticListDetail")

	beego.Router("/xcx/api/mobile/getstoryscore", &XcxApiController{}, "Get:GetStoryScoreList")

	//获取appid
	beego.Router("/xcx/api/mobile/getappid", &XcxApiController{}, "Get:GetAppId")
}

type XcxApiController struct {
	mobile_api_controllers.MobileBaseAPIController
}

func (this *XcxApiController) GetCodeInit() {
	redisClient := service.RedisClient()
	defer redisClient.Close()
	req := this.Ctx.Request
	addr := utils.GetIP(req)
	cur_time := time.Now().Format("2006-01-02")
	_, err := redisClient.Get("ip:host_" + cur_time + "_" + addr).Result()
	if err != nil {
		redisClient.Set("ip:host_"+cur_time+"_"+addr, 0, time.Second*24*60*60)
	}
	//将客户端的ip加密传给前端，作为短信验证的密钥，来验证短信发送的IP地址
	aespass := utils.AESEncrypt(addr)

	fmt.Println("hhhhhhh3223323232332", aespass)
	this.ServeSuccessJSON(map[string]interface{}{
		"aespass": aespass,
	})

}

func (this *XcxApiController) GetUserRegister() {

	//用户绑定
	name := this.GetString("name")
	id_card_no := this.GetString("id_card_no")
	fmt.Println("id_card_no", id_card_no)
	mobile := this.GetString("mobile")
	code := this.GetString("code")

	if len(code) == 0 {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeVerificationCodeWrong)
		return
	}

	if code == "000000" {
		patient, errcodes := service.GetMobilePatient(mobile, id_card_no)
		fmt.Println("errcodes2323232232", errcodes)
		if errcodes == nil {
			role := models.XcxAdminUserRole{
				PatientName: name,
				IdCardNo:    id_card_no,
				Mobile:      mobile,
				Code:        code,
				PatientId:   patient.ID,
				UserOrgId:   patient.UserOrgId,
				Status:      1,
				Ctime:       time.Now().Unix(),
				Mtime:       0,
				Appid:       "",
				Appsecret:   "",
				SessionKey:  "",
			}

			//查找该电话号码是否存在
			_, errcode := service.GetMobilePatientOne(mobile)
			if errcode == gorm.ErrRecordNotFound {
				err := service.CreateXcxAdminUser(role)
				if err == nil {
					mobilePatient, _ := service.GetMobilePatient(mobile, id_card_no)
					template_id, _ := service.GetTemplateMode(mobilePatient.UserOrgId)
					//处方
					prescripition_config, _ := service.GetPrescripionFieldConfig(mobilePatient.UserOrgId)

					//接诊评估
					receive_treatement_config, _ := service.GetReceiveTreatmentAssess(mobilePatient.UserOrgId)

					//透前评估
					dialysis_befor, _ := service.GetDialysisBefor(mobilePatient.UserOrgId)

					//透析上机
					dialysis_order, _ := service.GetDialysisOrderConfig(mobilePatient.UserOrgId)

					//透析监测
					monitor_record, _ := service.GetMonitorRecordConfig(mobilePatient.UserOrgId)

					//透后评估
					dialysis_after, _ := service.GetDialysisAfeterConfig(mobilePatient.UserOrgId)

					treate_ment, _ := service.GetTreatMentConfig(mobilePatient.UserOrgId)
					var configList interface{}
					configList, _ = service.GetConfigList(mobilePatient.UserOrgId)
					this.ServeSuccessJSON(map[string]interface{}{
						"role":                      role,
						"is_bind":                   true,
						"patient":                   mobilePatient,
						"template_id":               template_id,
						"user_org_id":               mobilePatient.UserOrgId,
						"prescripition_config":      prescripition_config,
						"receive_treatement_config": receive_treatement_config,
						"dialysis_befor":            dialysis_befor,
						"dialysis_order":            dialysis_order,
						"monitor_record":            monitor_record,
						"dialysis_after":            dialysis_after,
						"treate_ment":               treate_ment,
						"configList":                configList,
						"result":                    false,
					})
				} else {
					this.ServeSuccessJSON(map[string]interface{}{
						"is_bind": false,
						"msg":     "绑定失败",
						"result":  false,
					})
				}
			} else if errcode == nil {
				mobilePatient, _ := service.GetMobilePatient(mobile, id_card_no)
				template_id, _ := service.GetTemplateMode(mobilePatient.UserOrgId)
				//处方
				prescripition_config, _ := service.GetPrescripionFieldConfig(mobilePatient.UserOrgId)

				//接诊评估
				receive_treatement_config, _ := service.GetReceiveTreatmentAssess(mobilePatient.UserOrgId)

				//透前评估
				dialysis_befor, _ := service.GetDialysisBefor(mobilePatient.UserOrgId)

				//透析上机
				dialysis_order, _ := service.GetDialysisOrderConfig(mobilePatient.UserOrgId)

				//透析监测
				monitor_record, _ := service.GetMonitorRecordConfig(mobilePatient.UserOrgId)

				//透后评估
				dialysis_after, _ := service.GetDialysisAfeterConfig(mobilePatient.UserOrgId)

				treate_ment, _ := service.GetTreatMentConfig(mobilePatient.UserOrgId)
				var configList interface{}
				configList, _ = service.GetConfigList(mobilePatient.UserOrgId)
				this.ServeSuccessJSON(map[string]interface{}{
					"is_bind":                   true,
					"patient":                   mobilePatient,
					"template_id":               template_id,
					"user_org_id":               mobilePatient.UserOrgId,
					"prescripition_config":      prescripition_config,
					"receive_treatement_config": receive_treatement_config,
					"dialysis_befor":            dialysis_befor,
					"dialysis_order":            dialysis_order,
					"monitor_record":            monitor_record,
					"dialysis_after":            dialysis_after,
					"treate_ment":               treate_ment,
					"list":                      configList,
					"result":                    false,
				})
			}

			fmt.Println("roler", role)
		} else if errcodes == gorm.ErrRecordNotFound {
			this.ServeSuccessJSON(map[string]interface{}{
				"is_bind": false,
				"result":  false,
			})
		}
		this.ServeJSON()
	} else {
		redisClient := service.RedisClient()
		defer redisClient.Close()
		cache_code, _ := redisClient.Get("code_msg_" + mobile).Result()
		fmt.Println("cache_code9999999293323232322323", cache_code)
		if cache_code != code {
			this.ServeSuccessJSON(map[string]interface{}{
				"result": false,
			})
			return
		} else {
			this.Ctx.SetCookie("mobile", mobile)
			// 注册成功后验证码就要使其失效
			redisClient.Del("code_msg_" + mobile)
			patient, errcodes := service.GetMobilePatient(mobile, id_card_no)
			fmt.Println("errcodes2323232232", errcodes)
			if errcodes == nil {
				role := models.XcxAdminUserRole{
					PatientName: name,
					IdCardNo:    id_card_no,
					Mobile:      mobile,
					Code:        code,
					PatientId:   patient.ID,
					UserOrgId:   patient.UserOrgId,
					Status:      1,
					Ctime:       time.Now().Unix(),
					Mtime:       0,
					Appid:       "",
					Appsecret:   "",
					SessionKey:  "",
				}

				//查找该电话号码是否存在
				_, errcode := service.GetMobilePatientOne(mobile)
				if errcode == gorm.ErrRecordNotFound {
					err := service.CreateXcxAdminUser(role)
					if err == nil {
						mobilePatient, _ := service.GetMobilePatient(mobile, id_card_no)
						template_id, _ := service.GetTemplateMode(mobilePatient.UserOrgId)
						//处方
						prescripition_config, _ := service.GetPrescripionFieldConfig(mobilePatient.UserOrgId)

						//接诊评估
						receive_treatement_config, _ := service.GetReceiveTreatmentAssess(mobilePatient.UserOrgId)

						//透前评估
						dialysis_befor, _ := service.GetDialysisBefor(mobilePatient.UserOrgId)

						//透析上机
						dialysis_order, _ := service.GetDialysisOrderConfig(mobilePatient.UserOrgId)

						//透析监测
						monitor_record, _ := service.GetMonitorRecordConfig(mobilePatient.UserOrgId)

						//透后评估
						dialysis_after, _ := service.GetDialysisAfeterConfig(mobilePatient.UserOrgId)

						treate_ment, _ := service.GetTreatMentConfig(mobilePatient.UserOrgId)
						var configList interface{}
						configList, _ = service.GetConfigList(mobilePatient.UserOrgId)
						this.ServeSuccessJSON(map[string]interface{}{
							"role":                      role,
							"is_bind":                   true,
							"patient":                   mobilePatient,
							"template_id":               template_id,
							"user_org_id":               mobilePatient.UserOrgId,
							"prescripition_config":      prescripition_config,
							"receive_treatement_config": receive_treatement_config,
							"dialysis_befor":            dialysis_befor,
							"dialysis_order":            dialysis_order,
							"monitor_record":            monitor_record,
							"dialysis_after":            dialysis_after,
							"treate_ment":               treate_ment,
							"configList":                configList,
							"result":                    false,
						})
					} else {
						this.ServeSuccessJSON(map[string]interface{}{
							"is_bind": false,
							"msg":     "绑定失败",
							"result":  false,
						})
					}
				} else if errcode == nil {
					mobilePatient, _ := service.GetMobilePatient(mobile, id_card_no)
					template_id, _ := service.GetTemplateMode(mobilePatient.UserOrgId)
					//处方
					prescripition_config, _ := service.GetPrescripionFieldConfig(mobilePatient.UserOrgId)

					//接诊评估
					receive_treatement_config, _ := service.GetReceiveTreatmentAssess(mobilePatient.UserOrgId)

					//透前评估
					dialysis_befor, _ := service.GetDialysisBefor(mobilePatient.UserOrgId)

					//透析上机
					dialysis_order, _ := service.GetDialysisOrderConfig(mobilePatient.UserOrgId)

					//透析监测
					monitor_record, _ := service.GetMonitorRecordConfig(mobilePatient.UserOrgId)

					//透后评估
					dialysis_after, _ := service.GetDialysisAfeterConfig(mobilePatient.UserOrgId)

					treate_ment, _ := service.GetTreatMentConfig(mobilePatient.UserOrgId)
					var configList interface{}
					configList, _ = service.GetConfigList(mobilePatient.UserOrgId)
					this.ServeSuccessJSON(map[string]interface{}{
						"is_bind":                   true,
						"patient":                   mobilePatient,
						"template_id":               template_id,
						"user_org_id":               mobilePatient.UserOrgId,
						"prescripition_config":      prescripition_config,
						"receive_treatement_config": receive_treatement_config,
						"dialysis_befor":            dialysis_befor,
						"dialysis_order":            dialysis_order,
						"monitor_record":            monitor_record,
						"dialysis_after":            dialysis_after,
						"treate_ment":               treate_ment,
						"list":                      configList,
						"result":                    false,
					})
				}

				fmt.Println("roler", role)
			} else if errcodes == gorm.ErrRecordNotFound {
				this.ServeSuccessJSON(map[string]interface{}{
					"is_bind": false,
					"result":  false,
				})
			}
			this.ServeJSON()
		}

	}
}

func (this *XcxApiController) GetCodeInfo() {

	mobile := this.GetString("phone")
	aespass := this.GetString("aespass")
	utils.TraceLog("mobile:%v aespass:%v", mobile, aespass)
	if utils.CellPhoneRegexp().MatchString(mobile) == false {
		this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeMobileFormat)
		this.ServeJSON()
		return
	}

	if err := service.SendVerificationCodeSMS(mobile, aespass); err != nil {
		this.Data["json"] = enums.MakeFailResponseJSON(err.Error(), 600)
		this.ServeJSON()
	} else {
		this.Data["json"] = enums.MakeSuccessResponseJSON(map[string]interface{}{
			"msg": "短信发送成功,有效期为10分钟",
		})
		this.ServeJSON()
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"code": "100100",
	})
}

func (this *XcxApiController) GetLoginInfor() {

	mobile := this.GetString("mobile")
	fmt.Println(mobile)
	user_admin, errcodes := service.GetXcxMobileInformation(mobile)
	if errcodes == gorm.ErrRecordNotFound {
		info, _ := service.GetMobilePatientInfo(mobile)
		template_id, _ := service.GetTemplateMode(info.UserOrgId)
		//处方
		prescripition_config, _ := service.GetPrescripionFieldConfig(info.UserOrgId)

		//接诊评估
		receive_treatement_config, _ := service.GetReceiveTreatmentAssess(info.UserOrgId)

		//透前评估
		dialysis_befor, _ := service.GetDialysisBefor(info.UserOrgId)

		//透析上机
		dialysis_order, _ := service.GetDialysisOrderConfig(info.UserOrgId)

		//透析监测
		monitor_record, _ := service.GetMonitorRecordConfig(info.UserOrgId)

		//透后评估
		dialysis_after, _ := service.GetDialysisAfeterConfig(info.UserOrgId)

		treate_ment, _ := service.GetTreatMentConfig(info.UserOrgId)
		var configList interface{}
		configList, _ = service.GetConfigList(info.UserOrgId)
		this.ServeSuccessJSON(map[string]interface{}{
			"patient":                   info,
			"template_id":               template_id,
			"user_org_id":               info.UserOrgId,
			"prescripition_config":      prescripition_config,
			"receive_treatement_config": receive_treatement_config,
			"dialysis_befor":            dialysis_befor,
			"dialysis_order":            dialysis_order,
			"monitor_record":            monitor_record,
			"dialysis_after":            dialysis_after,
			"treate_ment":               treate_ment,
			"role":                      user_admin,
			"is_bind":                   false,
			"list":                      configList,
		})
	} else if errcodes == nil {
		info, _ := service.GetPatientListByPatientId(user_admin.PatientId)
		template_id, _ := service.GetTemplateMode(info.UserOrgId)
		//处方
		prescripition_config, _ := service.GetPrescripionFieldConfig(info.UserOrgId)

		//接诊评估
		receive_treatement_config, _ := service.GetReceiveTreatmentAssess(info.UserOrgId)

		//透前评估
		dialysis_befor, _ := service.GetDialysisBefor(info.UserOrgId)

		//透析上机
		dialysis_order, _ := service.GetDialysisOrderConfig(info.UserOrgId)

		//透析监测
		monitor_record, _ := service.GetMonitorRecordConfig(info.UserOrgId)

		//透后评估
		dialysis_after, _ := service.GetDialysisAfeterConfig(info.UserOrgId)

		treate_ment, _ := service.GetTreatMentConfig(info.UserOrgId)
		var configList interface{}
		configList, _ = service.GetConfigList(info.UserOrgId)
		this.ServeSuccessJSON(map[string]interface{}{
			"patient":                   info,
			"role":                      user_admin,
			"is_bind":                   true,
			"template_id":               template_id,
			"user_org_id":               info.UserOrgId,
			"prescripition_config":      prescripition_config,
			"receive_treatement_config": receive_treatement_config,
			"dialysis_befor":            dialysis_befor,
			"dialysis_order":            dialysis_order,
			"monitor_record":            monitor_record,
			"dialysis_after":            dialysis_after,
			"treate_ment":               treate_ment,
			"list":                      configList,
		})
	}

}

func (this *XcxApiController) GetPatientList() {
	//appid := "wx20b60369111b063a"
	appid := "wxcdf53b48b7df107e"
	key := "Yz1HgsFX3yJvWPJSEdwJDA=="
	strs := "uSevGQ5ShkiHjQuqz7s36SKZisVGA4fHH/dy+etg0W7ibVeidl6TyFS+kQZ6B9AI2T+1kOtKXeyveQR7q2TXJdu3fhKCFoLKVFzICNEvkiHMnchJ0T0OpRO3oT+icYq80+egvT+jMSgP7yi0cAgmiKaK/4QURD7+nvxRAj9drzz77sbeFt8KElb1LN/+Wn8dIoQzisxbON9G1VJYYtyBkQ=="
	iv := "JgsbDhJ613uaAgAoBVh0Zw=="
	//data, err := service.Dncrypt(strs, key, iv)
	//fmt.Println(err)

	data, err := service.DecryptData(appid, key, iv, strs)
	patient_id, _ := this.GetInt64("patient_id")
	patient, err := service.GetPatientListByPatientId(patient_id)

	if err == nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
		return
	}

	this.ServeSuccessJSON(map[string]interface{}{
		"patient": patient,
		"data":    data,
	})
}

func (this *XcxApiController) GetDataInfo() {

	appid := this.GetString("appid")
	fmt.Println(appid)
	key := this.GetString("key")
	iv := this.GetString("iv")
	encryptedData := this.GetString("encryptedData")
	list, _ := service.DecryptData(appid, key, iv, encryptedData)
	//list, _ := service.Dncrypt(encryptedData, key, iv)

	this.ServeSuccessJSON(map[string]interface{}{
		"list": list,
	})
}

func (this *XcxApiController) GetScheduleInfo() {
	patient_id, _ := this.GetInt64("patient_id")
	fmt.Println(patient_id)
	thisWeekMonday := service.GetFirstDateOfWeek()
	weekDayWeek := service.GetWeekDayOfWeek()
	TimeMonday, _ := time.Parse("2006-01-02", thisWeekMonday)
	weekDays, _ := time.Parse("2006-01-02", weekDayWeek)
	lastWeekMonday := TimeMonday.AddDate(0, 0, -7)
	nextWeekMonday := weekDays.AddDate(0, 0, +13)
	var weekMonday = lastWeekMonday.Format("2006-01-02")
	var weekDay = nextWeekMonday.Format("2006-01-02")
	fmt.Println("weekmodonday", weekMonday)
	fmt.Println("nextweeekday", weekDay)

	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", weekMonday+" 00:00:00", loc)
	fmt.Println("startiem", startTime)
	endTime, _ := time.ParseInLocation(timeLayout+"15:04:05", weekDay+"00:00:00", loc)
	fmt.Println(startTime.Unix(), endTime.Unix())
	schedule, err := service.GetScheduleInfo(startTime.Unix(), endTime.Unix(), patient_id)

	//获取当前今日的排班日期
	time_now := time.Now().Format("2006-01-02")
	fmt.Println("time_now", time_now)
	timeNowUnix, _ := time.ParseInLocation(timeLayout+"15:04:05", time_now+"00:00:00", loc)
	fmt.Println("timeNowUnix", timeNowUnix.Unix())

	//获取今日下机日期
	order, _ := service.GetTodayDialysis(timeNowUnix.Unix(), patient_id)

	//获取今日的处方
	prescription, _ := service.GetTodayPrescription(timeNowUnix.Unix(), patient_id)

	//获取下一次排班信息
	patientSchedule, _ := service.GetNextPatientSchedule(patient_id, timeNowUnix.Unix())
	if err != nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
		return
	}

	var one = startTime.Unix() + 86400
	fmt.Println("one2322332", one)
	var two = one + 86400
	var three = two + 86400
	var four = three + 86400
	var five = four + 86400
	var six = five + 86400
	var seven = six + 86400

	var nextOne = seven + 86400
	var nexttwo = nextOne + 86400
	var nextthree = nexttwo + 86400
	var nextfour = nextthree + 86400
	var nextfive = nextfour + 86400
	var nextsix = nextfive + 86400
	var nextseven = nextsix + 86400

	var lastOne = nextseven + 86400
	var lastwo = lastOne + 86400
	var lasthree = lastwo + 86400
	var lastfour = lasthree + 86400
	var lastfive = lastfour + 86400
	var lastsix = lastfive + 86400
	var lastseven = lastsix + 86400

	fmt.Println("各地好当家232332323232", lastseven)
	array := []interface{}{
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(one, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(one, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(one, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(two, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(two, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(two, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(three, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(three, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(three, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(four, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(four, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(four, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(five, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(five, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(five, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(six, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(six, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(six, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(seven, 10), "schedule_week": "7", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(seven, 10), "schedule_week": "7", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(seven, 10), "schedule_week": "7", "mode_id": "", "name": ""},

		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(nextOne, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(nextOne, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(nextOne, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(nexttwo, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(nexttwo, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(nexttwo, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(nextthree, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(nextthree, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(nextthree, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(nextfour, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(nextfour, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(nextfour, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(nextfive, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(nextfive, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(nextfive, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(nextsix, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(nextsix, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(nextsix, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(nextseven, 10), "schedule_week": "7", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(nextseven, 10), "schedule_week": "7", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(nextseven, 10), "schedule_week": "7", "mode_id": "", "name": ""},

		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(lastOne, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(lastOne, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(lastOne, 10), "schedule_week": "1", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(lastwo, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(lastwo, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(lastwo, 10), "schedule_week": "2", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(lasthree, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(lasthree, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(lasthree, 10), "schedule_week": "3", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(lastfour, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(lastfour, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(lastfour, 10), "schedule_week": "4", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(lastfive, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(lastfive, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(lastfive, 10), "schedule_week": "5", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(lastsix, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(lastsix, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(lastsix, 10), "schedule_week": "6", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "1", "schedule_date": strconv.FormatInt(lastseven, 10), "schedule_week": "7", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "2", "schedule_date": strconv.FormatInt(lastseven, 10), "schedule_week": "7", "mode_id": "", "name": ""},
		map[string]string{"schedule_type": "3", "schedule_date": strconv.FormatInt(lastseven, 10), "schedule_week": "7", "mode_id": "", "name": ""},
	}
	this.ServeSuccessJSON(map[string]interface{}{
		"list":            schedule,
		"array":           array,
		"order":           order,
		"patientSchedule": patientSchedule,
		"prescription":    prescription,
	})
}

func (this *XcxApiController) GetMobileSchedule() {

	patientID, _ := this.GetInt64("patient_id")
	fmt.Println("1", patientID)
	info, _ := service.GetXcxPatientInfo(patientID)
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	time_now := time.Now().Format("2006-01-02")
	timeNowUnix, _ := time.ParseInLocation(timeLayout+"15:04:05", time_now+"00:00:00", loc)

	fmt.Println("timeNowUnix", timeNowUnix.Unix())
	//获取该患者最后一次排班
	list, _ := service.GetLastScheduleListOne(patientID, timeNowUnix.Unix())
	fmt.Println("hh2332323232323223", list)
	fmt.Println("list233232232332", list.ScheduleDate)
	patient, getPatientErr := service.MobileGetPatientDetail(info.UserOrgId, patientID)
	if getPatientErr != nil {
		this.ErrorLog("获取患者信息失败：%v", getPatientErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	} else if patient == nil {
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist)
		return
	}

	schedual, getSchedualErr := service.MobileGetSchedualDetailOne(info.UserOrgId, patientID)

	if getSchedualErr != nil {
		this.ErrorLog("获取患者排班信息失败:%v", getSchedualErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	receiverTreatmentAccess, getRTARErr := service.MobileGetReceiverTreatmentAccessRecordOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getRTARErr != nil {
		this.ErrorLog("获取接诊评估失败:%v", getRTARErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	predialysisEvaluation, getPEErr := service.MobileGetPredialysisEvaluationOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getPEErr != nil {
		this.ErrorLog("获取透前评估失败:%v", getPEErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	lastPredialysisEvaluation, getLPEErr := service.MobileGetLastTimePredialysisEvaluationOne(info.UserOrgId, patientID)
	if getLPEErr != nil {
		this.ErrorLog("获取上一次透前评估失败:%v", getLPEErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	doctorAdvices, getDoctorAdvicesErr := service.MobileGetDoctorAdvicesByGroupsOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getDoctorAdvicesErr != nil {
		this.ErrorLog("获取临时医嘱失败:%v", getDoctorAdvicesErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	dialysisOrder, getDialysisOrderErr := service.MobileGetSchedualDialysisRecordOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getDialysisOrderErr != nil {
		this.ErrorLog("获取透析记录失败:%v", getDialysisOrderErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	doubleCheck, getDoubleCheckErr := service.MobileGetDoubleCheckOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getDoubleCheckErr != nil {
		this.ErrorLog("获取双人核对记录失败:%v", getDoubleCheckErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	monitorRecords, getMonitorRecordsErr := service.MobileGetMonitorRecordsOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getMonitorRecordsErr != nil {
		this.ErrorLog("获取透析监测记录失败:%v", getMonitorRecordsErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}
	var lastMonitorRecord *models.MonitoringRecord

	lastMonitorRecord, getLastErr := service.MobileGetLastMonitorRecordOne(info.UserOrgId, patientID)
	if getLastErr != nil {
		this.ErrorLog("获取上一次透析的监测记录失败:%v", getLastErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	assessmentAfterDislysis, getAADErr := service.MobileGetAssessmentAfterDislysisOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getAADErr != nil {
		this.ErrorLog("获取透后评估失败:%v", getAADErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	lastAssessmentAfterDislysis, getLAADErr := service.MobileGetAssessmentAfterDislysisOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getLAADErr != nil {
		this.ErrorLog("获取上一次透后评估失败:%v", getLAADErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	treatmentSummary, getTreatmentSummaryErr := service.MobileGetTreatmentSummaryOne(info.UserOrgId, patientID, list.ScheduleDate)
	if getTreatmentSummaryErr != nil {
		this.ErrorLog("获取治疗小结失败:%v", getTreatmentSummaryErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	dialysisSolution, _ := service.MobileGetDialysisSolutionByModeId(info.UserOrgId, patientID, schedual.ModeId)

	lastDialysisPrescribe, _ := service.MobileGetLastDialysisPrescribeByModeId(info.UserOrgId, patientID, schedual.ModeId)

	//获取系统透析处方模版
	systemDialysisPrescribe, _ := service.MobileGetSystemDialysisPrescribeByModeId(info.UserOrgId, schedual.ModeId)

	_, is_open_config := service.FindXTHisRecordByOrgId(info.UserOrgId)

	_, is_project_open_config := service.FindXTHisProjectByOrgId(info.UserOrgId)

	projects, _ := service.GetHisPrescriptionProjectsOne(info.UserOrgId, patientID)

	stockType, _ := service.GetStockType(info.UserOrgId)

	prepare, _ := service.GetDialyStockOutOne(info.UserOrgId, patientID)

	//获取最后一次血管通路
	lastAssessment, _ := service.GetLastPassWayAssessment(info.UserOrgId, patientID)

	prescribeOne, _ := service.MobileGetDialysisPrescribeByModeIdFive(info.UserOrgId, patientID, list.ScheduleDate)
	var his_advices []*models.HisDoctorAdviceInfo
	if is_open_config.IsOpen == 1 {
		his_advices, _ = service.GetAllHisDoctorAdviceOne(info.UserOrgId, patientID, list.ScheduleDate)
	}

	if getLPEErr != nil {
		this.ErrorLog("获取上一次透前评估失败:%v", getLPEErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	lastDryWeightDislysis, getDryErr := service.MobileGetLastDryWeight(info.UserOrgId, patientID)
	if getDryErr != nil {
		this.ErrorLog("获取最后一条干体重失败:%v", getDryErr)
		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
		return
	}

	_, gobalConfig := service.FindAutomaticReduceRecordByOrgId(info.UserOrgId)

	operators, _ := service.GetAllStarfEs(info.UserOrgId)

	returnData := map[string]interface{}{
		"patient":                        patient,
		"schedual":                       schedual,
		"prescription":                   prescribeOne,
		"solution":                       dialysisSolution,
		"last_prescription":              lastDialysisPrescribe,
		"receiver_treatment_access":      receiverTreatmentAccess,
		"predialysis_evaluation":         predialysisEvaluation,
		"doctor_advices":                 doctorAdvices,
		"double_check":                   doubleCheck,
		"assessment_after_dislysis":      assessmentAfterDislysis,
		"treatment_summary":              treatmentSummary,
		"monitor_records":                monitorRecords,
		"dialysis_order":                 dialysisOrder,
		"operators":                      operators,
		"last_predialysis_evaluation":    lastPredialysisEvaluation,
		"last_assessment_after_dislysis": lastAssessmentAfterDislysis,
		"last_monitor_record":            lastMonitorRecord,
		"config":                         gobalConfig,
		"dry_weight":                     lastDryWeightDislysis,
		"system_prescription":            systemDialysisPrescribe,
		"his_advices":                    his_advices,
		"is_open_config":                 is_open_config,
		"stockType":                      stockType,
		"prepare":                        prepare,
		"lastAssessment":                 lastAssessment,
		"is_project_open_config":         is_project_open_config,
		"project":                        projects,
		"scheduleDate":                   list.ScheduleDate,
	}
	this.ServeSuccessJSON(returnData)

}

func (this *XcxApiController) GetPatientInfo() {

	patient_id, _ := this.GetInt64("patient_id")
	patient, _ := service.GetXcxPatientInfo(patient_id)
	this.ServeSuccessJSON(map[string]interface{}{
		"patient": patient,
	})
}

func (this *XcxApiController) GetOrgInfo() {
	patient_id, _ := this.GetInt64("patient_id")
	info, _ := service.GetXcxPatientInfo(patient_id)
	orgInfo, _ := service.GetOrgInfo(info.UserOrgId)
	this.ServeSuccessJSON(map[string]interface{}{
		"orgInfo": orgInfo,
	})
}

func (this *XcxApiController) GetEducationList() {

	start_time := this.GetString("start_time")
	end_time := this.GetString("end_time")
	patient_id, _ := this.GetInt64("patient_id")
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	endTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 00:00:00", loc)
	list, _ := service.GetEducationList(startTime.Unix(), endTime.Unix(), patient_id)
	this.ServeSuccessJSON(map[string]interface{}{
		"list": list,
	})
}

func (this *XcxApiController) GetDoctorAdvice() {

	//判断是否开启医嘱同步功能
	start_time := this.GetString("start_time")
	end_time := this.GetString("end_time")
	patient_id, _ := this.GetInt64("patient_id")
	fmt.Println("patient_id", patient_id)
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	endTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 00:00:00", loc)
	info, _ := service.GetXcxPatientInfo(patient_id)
	config, _ := service.GetDoctorAdviceConfig(info.UserOrgId)
	fmt.Println(startTime, endTime, config.IsOpenRemind)
	if config.IsOpenRemind == 0 || config.IsOpenRemind == 2 {
		list, _ := service.GetDoctorAdviceGroup(patient_id, startTime.Unix(), endTime.Unix())
		advice, _ := service.GetDoctorAdvice(patient_id, startTime.Unix(), endTime.Unix())
		for _, item := range list {
			for _, it := range advice {
				if item.AdviceDate == it.AdviceDate {
					item.Childs = append(item.Childs, it)
				}
			}
		}

		this.ServeSuccessJSON(map[string]interface{}{
			"list": list,
		})
	}

	if config.IsOpenRemind == 1 {
		list, _ := service.GetHisDoctorAdviceGroup(patient_id, startTime.Unix(), endTime.Unix())
		advice, _ := service.GetHisDoctorAdvice(patient_id, startTime.Unix(), endTime.Unix())
		for _, item := range list {
			for _, it := range advice {
				if item.AdviceDate == it.AdviceDate {
					item.Childs = append(item.Childs, it)
				}
			}
		}
		this.ServeSuccessJSON(map[string]interface{}{
			"list": list,
		})
	}

}

func (this *XcxApiController) GetDoctorName() {
	patient_id, _ := this.GetInt64("patient_id")
	fmt.Println("patient_id", patient_id)
	info, _ := service.GetXcxPatientInfo(patient_id)
	user_name, _ := service.GetDoctorName(info.UserOrgId)
	this.ServeSuccessJSON(map[string]interface{}{
		"user_name": user_name,
	})
}

func (this *XcxApiController) GetFieldConfig() {

	patient_id, _ := this.GetInt64("patient_id")
	fmt.Println("patient_id", patient_id)
	info, _ := service.GetXcxPatientInfo(patient_id)

	//处方
	prescripition_config, _ := service.GetPrescripionFieldConfig(info.UserOrgId)

	//接诊评估
	receive_treatement_config, _ := service.GetReceiveTreatmentAssess(info.UserOrgId)

	//透前评估
	dialysis_befor, _ := service.GetDialysisBefor(info.UserOrgId)

	//透析上机
	dialysis_order, _ := service.GetDialysisOrderConfig(info.UserOrgId)

	//透析监测
	monitor_record, _ := service.GetMonitorRecordConfig(info.UserOrgId)

	//透后评估
	dialysis_after, _ := service.GetDialysisAfeterConfig(info.UserOrgId)

	treate_ment, _ := service.GetTreatMentConfig(info.UserOrgId)

	this.ServeSuccessJSON(map[string]interface{}{
		"prescripition_config":      prescripition_config,
		"receive_treatement_config": receive_treatement_config,
		"dialysis_befor":            dialysis_befor,
		"dialysis_order":            dialysis_order,
		"monitor_record":            monitor_record,
		"dialysis_after":            dialysis_after,
		"treate_ment":               treate_ment,
	})
}

func (this *XcxApiController) GetDataConfig() {
	var configList interface{}
	patient_id, _ := this.GetInt64("patient_id")
	fmt.Println("patient_id", patient_id)
	info, _ := service.GetXcxPatientInfo(patient_id)
	//list, _ := service.GetDataConfig(info.UserOrgId)
	configList, _ = service.GetConfigList(info.UserOrgId)
	this.ServeSuccessJSON(map[string]interface{}{
		"list": configList,
	})
}

func (this *XcxApiController) GetInspectionList() {

	start_time := this.GetString("start_time")
	end_time := this.GetString("end_time")
	patient_id, _ := this.GetInt64("patient_id")
	fmt.Println("patient_id", patient_id)
	timeLayout := "2006-01-02"
	loc, _ := time.LoadLocation("Local")
	startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
	endTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)

	list, _ := service.GetInspectionGroupList(patient_id, startTime.Unix(), endTime.Unix())

	insepctionList, _ := service.GetInsepctionList(patient_id, startTime.Unix(), endTime.Unix())

	for _, item := range list {
		for _, it := range insepctionList {
			if item.ProjectId == it.ProjectId && item.InspectDate == it.InspectDate {
				item.Childs = append(item.Childs, it)
			}
		}
	}

	this.ServeSuccessJSON(map[string]interface{}{
		"list": list,
	})
}

func (this *XcxApiController) GetArticList() {

	page, _ := this.GetInt64("page")
	limit, _ := this.GetInt64("limit")
	activity_id, _ := this.GetInt64("activity_id")
	list, total, _ := service.GetArticList(activity_id, page, limit)
	this.ServeSuccessJSON(map[string]interface{}{
		"list":  list,
		"total": total,
	})
}

func (this *XcxApiController) GetArticListDetail() {

	id, _ := this.GetInt64("id")
	detail, _ := service.GetArticListDetail(id)
	this.ServeSuccessJSON(map[string]interface{}{
		"story": detail,
	})
}

func (this *XcxApiController) GetStoryScoreList() {

	page, _ := this.GetInt64("page")
	limit, _ := this.GetInt64("limit")
	activity_id, _ := this.GetInt64("activity_id")
	list, total, _ := service.GetStoryScoreList(activity_id, page, limit)
	this.ServeSuccessJSON(map[string]interface{}{
		"list":  list,
		"total": total,
	})
}

func (this *XcxApiController) GetAppId() {

	var appid = "wxcdf53b48b7df107e"
	var secret = "94e944a69ad1d43ac447f5a8769ab801"
	var grant_type = "authorization_code"
	code := this.GetString("js_code")
	//var code = "041pXnGa1eLxTB0iypFa1W6USs1pXnGK"

	openId, _ := service.SendWxAuthAPI(appid, secret, grant_type, code)
	//session_key, _ := service.SendWxAuthAPIOne(appid, secret, grant_type, code)
	this.ServeSuccessJSON(map[string]interface{}{
		"data": openId,
		//"session_key": session_key,
	})
}
