package com.product.mobile.core.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

import com.product.admin.config.SystemCode;
import com.product.common.lang.StringUtils;
import com.product.core.config.CoreConst;
import com.product.core.controller.support.AbstractBaseController;
import com.product.core.entity.FieldSetEntity;
import com.product.core.entity.RequestParameterEntity;
import com.product.core.exception.BaseException;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.mobile.core.service.ApplicationsService;
import com.product.mobile.core.service.SystemTableMetaService;
import com.product.module.sys.version.ApiVersion;
import com.product.org.admin.config.CmnCode;
import com.product.org.admin.service.idel.IOrganizationService;
import com.product.util.BaseUtil;

/**
 * App鎸囧畾琛ㄧ粨鏋勪俊鎭�
 *
 * @author shicf
 */
@RequestMapping("/api/mobile")
@RestController
public class SystemOrgController extends AbstractBaseController {
	
    @Autowired
    @Qualifier("organizationServiceV2")
    private IOrganizationService organizationServiceV2;

    /**
     * 鑾峰彇缁勭粐鏋舵瀯V3
     *organization_type锛氱粍缁囨満鏋勭被鍨� 1-鍏徃锛�2-鍏徃 - 閮ㄩ棬锛�3-鍏徃 - 閮ㄩ棬 - 宀椾綅锛�4-鍏徃 - 閮ㄩ棬 - 宀椾綅 - 浜哄憳锛�5-鍏徃 - 閮ㄩ棬 - 浜哄憳
     * @param request
     * @return
     */
    @RequestMapping(value = "/get-organization/{version}", method = RequestMethod.POST)
    @ApiVersion(1)
    public String getOrganizationV3(HttpServletRequest request) {
        try {
            FieldSetEntity fse = null;
            Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
            RequestParameterEntity rpe = (RequestParameterEntity) bean;
            if (null != rpe && null != rpe.getFormData()) {
                fse = rpe.getFormData();
            }
            if (fse == null) {
                SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
                return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText());
            }
            Object jsonArray = organizationServiceV2.getOrganization(fse);
            System.out.println(jsonArray);
            return BaseUtil.success(jsonArray);
        } catch (BaseException e) {
            SpringMVCContextHolder.getSystemLogger().error(e);
            return this.error(e.getCode(), e.getMessageInfo());
        } catch (Exception e) {
            e.printStackTrace();
            SpringMVCContextHolder.getSystemLogger().error(e);
            return this.error(CmnCode.GET_ORGANIZATION_FAIL);
        }
    }

}