// @APIVersion 1.0.0
// @Title 弘则开放API接口
// @Description 这是弘则开放API接口文档 <br/><br/><b>1、参数格式与调用方式：</b><br/>（1）接口传输的所有参数使用 UTF8 编码格式，包括签名。接口调用方式请以接口定义的方式进行调用。<br/>（2）接口地址（测试）：http://8.136.199.33:8608/api/<br/>（3）如果是POST请求，那么header头请以Content-Type: application/json的方式请求<br/><br/><b>2、公共参数：</b><br/><table style="text-align:center"><tr><td style="border:1px solid">参数名</td><td style="border:1px solid">类型</td><td style="border:1px solid">是否必传</td><td style="border:1px solid">说明</td><tr><td style="border:1px solid">appid</td><td style="border:1px solid">string</td><td style="border:1px solid">是</td><td style="border:1px solid">开放平台给分配的appid</td></tr></tr><tr><td style="border:1px solid">nonce_str</td><td style="border:1px solid">string</td><td style="border:1px solid">是</td><td style="border:1px solid">随机字符串，最大32位长度，26位大小写字母a,b…z和数字组成</td></tr><tr><td style="border:1px solid">timestamp</td><td style="border:1px solid">int</td><td style="border:1px solid">是</td><td style="border:1px solid">系统时间戳 UNIX_TIMESTAMP格式；1970年到目前的秒数</td></tr><tr><td style="border:1px solid">sign</td><td style="border:1px solid">string</td><td style="border:1px solid">是</td><td style="border:1px solid">签名信息（签名规则查看第4节）</td></tr><tr><td style="border:1px solid">_page</td><td style="border:1px solid">int</td><td style="border:1px solid">否</td><td style="border:1px solid">请求页码</td></tr><tr><td style="border:1px solid">_page_size</td><td style="border:1px solid">int</td><td style="border:1px solid">否</td><td style="border:1px solid">每页请求返回数据数，最大不能超过100</td></tr></table> <br/><br/><b>3、公共返回参数：</b><br/><table style="text-align:center"><tr><td style="border:1px solid">参数名</td><td style="border:1px solid">类型</td><td style="border:1px solid">是否必传</td><td style="border:1px solid">说明</td></tr><tr><td style="border:1px solid">code</td><td style="border:1px solid">int</td><td style="border:1px solid">是</td><td style="border:1px solid">接口返回状态码</td></tr><tr><td style="border:1px solid">msg</td><td style="border:1px solid">string</td><td style="border:1px solid">是</td><td style="border:1px solid">提示信息（错误信息）</td></tr><tr><td style="border:1px solid">data</td><td style="border:1px solid">map</td><td style="border:1px solid">是</td><td style="border:1px solid">对应的业务数据</td></tr></table> <br/><br/><b>4、签名规则：</b><br/>（1）所有发送或者接收到的数据为集合M，将集合M内非空参数值的参数按照参数名ASCII码从小到大排序（字典序），使用URL键值对的格式（即key1=value1&key2=value2…）拼接成字符串stringA。<br/>（2）在stringA最后拼接上&secret=secretValue得到stringSignTemp字符串，并对stringSignTemp进行MD5运算，再将得到的字符串所有字符转换为大写，得到sign值signValue。<br/><br/><b>5、code状态码取值：</b><br/><table style="text-align:center"><tr><td style="border:1px solid">200</td><td style="border:1px solid">正常响应码</td></tr> <tr><td style="border:1px solid">400</td><td style="border:1px solid">业务处理失败响应码</td></tr> <tr><td style="border:1px solid">401</td><td style="border:1px solid">参数签名异常，检查下签名是否正常</td></tr></table>
// @Contact pyan@hzinsights.com
// @License Apache 2.0
// @LicenseUrl http://www.apache.org/licenses/LICENSE-2.0.html
package routers

import (
	"github.com/beego/beego/v2/server/web/filter/cors"
	"hongze/hongze_open_api/controllers"

	"github.com/beego/beego/v2/server/web"
)

func init() {
	//解决跨域问题
	web.InsertFilter("*", web.BeforeRouter, cors.Allow(&cors.Options{
		AllowAllOrigins:  true,
		AllowMethods:     []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
		AllowHeaders:     []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		ExposeHeaders:    []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		AllowCredentials: true,
	}))
	ns := web.NewNamespace("/api",
		web.NSNamespace("/company_user",
			web.NSInclude(
				&controllers.CompanyUser{},
			),
		),
		web.NSNamespace("/report",
			web.NSInclude(
				&controllers.ReportController{},
			),
			web.NSInclude(
				&controllers.ReportControllerCommon{},
			),
		),
		web.NSNamespace("/sys_user",
			web.NSInclude(
				&controllers.Admin{},
			),
		),
		web.NSNamespace("/quanshi",
			web.NSInclude(
				&controllers.QuanShiControllerCommon{},
			),
		),
		web.NSNamespace("/yidong",
			web.NSInclude(
				&controllers.YiDongController{},
			),
		),
		web.NSNamespace("/wework",
			web.NSInclude(
				&controllers.WeworkController{},
			),
		),
		web.NSNamespace("/day_new",
			web.NSInclude(
				&controllers.DayNewController{},
			),
		),
	)
	web.AddNamespace(ns)
}
