| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | package controllersimport (	"asrsn/models/drawing"	"encoding/json"	"fmt"	beego "github.com/beego/beego/v2/server/web"	"net/http"	"strconv"	"strings")type MainController struct {	beego.Controller}func (c *MainController) Get() {	c.Data["Website"] = "beego.me"	c.Data["Email"] = "astaxie@gmail.com"	c.TplName = "index.tpl"}func (c *MainController) GetUserInfo() {	jsonStr := `{"id":"190","ip_address":"89.208.251.9","username":"longminyong@gmail.com","password":"$2y$08$NdRwY.7mmG7Rx.5ZB5HY6.C8cYbviOON3GbxyfCiYqRbgIResjlgG","salt":null,"email":"longminyong@gmail.com","activation_code":null,"forgotten_password_code":null,"forgotten_password_time":null,"remember_code":"jXsu3wkjonQd0dtzFjtaHO","created_on":"1600237098","last_login":"1617602164","login_count":"25","active":"1","name":"Louis","company":"","phone":"","discount":"0","newsletter":"0","role":"0","master":"0","projects":"4","saves":"4","tutorial_passed":"0","tutorial_skiped":"17","downloads":"1","contact":"0","feedback":"0","price":"0","downloadCAD":"1","simulations":"0","simulations_completed":"0"}`	var jsonMap map[string]interface{}	if err := json.Unmarshal([]byte(jsonStr), &jsonMap); err == nil {		c.Data["json"] = jsonMap	}	_ = c.ServeJSON()}func (c *MainController) Tutorial0() {	c.empty()}func (c *MainController) DownloadPDF() {	c.empty()}// 检查文档是否有重名的,包含当前文件名func (c *MainController) DocumentNameOverlapCheck() {	list, err := drawing.GetList()	if err != nil {		c.Ctx.WriteString(`[]`)		return	}	if len(list) == 0 {		c.Ctx.WriteString(`[]`)		return	}	body, err := json.Marshal(list)	if err != nil {		return	}	c.Ctx.WriteString(string(body))}// 加载已存在的设计列表func (c *MainController) GetProjectList() {	c.DocumentNameOverlapCheck()}// 加载已存在的设计func (c *MainController) Load() {	name := c.GetString("document_name")	if d, err := drawing.GetMapFormName(name); err == nil {		// 网页端的 content-type:text/html; charset=UTF-8 因此需要发送字符串而非 json		c.Ctx.WriteString(d)		return	}	c.Ctx.ResponseWriter.WriteHeader(http.StatusNotFound)}func (c *MainController) Delete() {	name := c.GetString("document_name")	ret := map[string]string{"status": "success"}	if err := drawing.Delete(name); err != nil {		ret = map[string]string{"status": "failed"}	}	c.Data["json"] = ret	_ = c.ServeJSON()}func (c *MainController) Save() {	c.ParseSaveBody()	c.Data["json"] = map[string]string{"status": "success"}	_ = c.ServeJSON()}func (c *MainController) SaveBehavior() {	c.Data["json"] = map[string]string{"status": "success"}	_ = c.ServeJSON()}func (c *MainController) GetSimulationList() {	c.empty()}func (c *MainController) GetPriceFromExcel() {	jsonStr := `{"racking":{"qty":378,"val":52300},"xtrack":{"qty":54,"val":37410},"lift":{"qty":3,"val":248220},"carrier":{"qty":4,"val":286400},"wifi":{"qty":2,"val":2570},"data_control":{"qty":1,"val":32110},"software_implementation":{"qty":1,"val":37200},"central_panel":{"qty":1,"val":13070},"total_excluding":{"qty":-1,"val":709280}}`	var jsonMap map[string]interface{}	if err := json.Unmarshal([]byte(jsonStr), &jsonMap); err == nil {		c.Data["json"] = jsonMap	}	_ = c.ServeJSON()}func (c *MainController) empty() {	c.Ctx.WriteString("")	return}func (c *MainController) ParseSaveBody() {	var data Data		data.DocumentInfo = c.GetString("documentInfo")	data.DocumentName = c.GetString("document_name")		warehouseDimensions := c.GetString("warehouse_dimensions")	warehouseDimensions = strings.TrimPrefix(warehouseDimensions, "[")	warehouseDimensions = strings.TrimSuffix(warehouseDimensions, "]")	wds := strings.Split(warehouseDimensions, ",")	wareHouse := make([]int, len(wds))	for i, w := range wds {		n, err := strconv.Atoi(w)		if err != nil {			fmt.Println(err)			return		}		wareHouse[i] = n	}	data.WarehouseDimensions = wareHouse		icubeData := c.GetString("icubeData")	if err := json.Unmarshal([]byte(icubeData), &data.IcubeData); err != nil {		fmt.Println(err)		return	}		data.ItemMData = make([]interface{}, 0)		layoutMap := c.GetString("layoutMap")	if err := json.Unmarshal([]byte(layoutMap), &data.LayoutMap); err != nil {		fmt.Println(err)		return	}		body, err := json.Marshal(data)	if err != nil {		fmt.Println(err)		return	}	if err := drawing.SaveMap(data.DocumentName, body); err != nil {		fmt.Println(err)		return	}	if err := drawing.UpdateList(data.DocumentName); err != nil {		fmt.Println(err)		return	}}
 |