package com.product.mobile.core.controller;

import com.product.admin.service.RouterService;
import com.product.core.controller.support.AbstractBaseController;
import com.product.core.entity.FieldSetEntity;
import com.product.core.exception.BaseException;
import com.product.mobile.core.config.MobileCoreCode;
import com.product.mobile.core.service.SystemFunctionService;
import com.product.module.sys.version.ApiVersion;
import com.product.util.BaseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;


/**
 * @Author cheng
 * @Date 2022/3/3 19:54
 * @Desc 璺敱
 */
@RestController
@RequestMapping("/api")
public class SystemFunctionController extends AbstractBaseController {

	@Autowired
	RouterService routerService;

	@Autowired
	SystemFunctionService systemFunctionService;

	/**
	 * 璺敱鑾峰彇
	 *
	 * @return
	 */
	@PostMapping("/mobile-router/get-router/{version}")
	@ApiVersion(1)
	public String getRouterData() {
		try {
			return OK_List(routerService.getMobileRouter());
		} catch (BaseException e) {
			e.printStackTrace();
			return error(e);
		} catch (Exception e) {
			e.printStackTrace();
			return error(MobileCoreCode.GET_ROUTER_FAIL);
		}
	}


	@PostMapping("/mobile/get-page-button/{version}")
	@ApiVersion(1)
	public String getFunctionButton(HttpServletRequest request) {
		try {
			FieldSetEntity fse = BaseUtil.getFieldSetEntity(request);
			return (String) systemFunctionService.getFunctionButton(fse);
		} catch (BaseException e) {
			e.printStackTrace();
			return error(e);
		} catch (Exception e) {
			e.printStackTrace();
			return error(MobileCoreCode.GET_ROUTER_FAIL);
		}
	}


}