package com.product.org.admin.controller;

import javax.servlet.http.HttpServletRequest;
import javax.swing.*;

import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.core.util.JsonUtil;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.product.admin.service.CodeService;
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.org.admin.config.SystemCode;
/**
 * 
 * @author shicfd
 *
 */
@RestController
@RequestMapping("/api/common")
public class CodeController  extends AbstractBaseController{
	
	/**
	 * 鏁版嵁鏌ヨ ,spring 娉ㄥ叆
	 */
	@Autowired
	public CodeService codeService;
	
	@RequestMapping(value = "/createCode" , method = RequestMethod.POST)
	public String find(HttpServletRequest request) {
		try {
			FieldSetEntity fse = null;
			Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
			if (bean != null) {
				RequestParameterEntity reqp = (RequestParameterEntity) bean;
				fse = reqp.getFormData();
			}
			if (bean == null || 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());
			}
	       codeService.createCode(fse,fse.getString("table_name"), fse.getString("field_name"), StringUtils.isEmpty(fse.getString("parentCode"))?"":fse.getString("parentCode"));
	        String json=  JsonUtil.pareseFieldSetEntityToJson(fse);
			if(json == null) {
				json="";
			}
			return json;
		}catch(BaseException e) {
			SpringMVCContextHolder.getSystemLogger().error(e);
			return this.error(e.getCode(), e.getMessageInfo());
		}catch(Exception e) {
			SpringMVCContextHolder.getSystemLogger().error(e);
        	e.printStackTrace();
			return this.error(SystemCode.SYSTEM_CODE_CREATE_FIAL.getValue(),SystemCode.SYSTEM_CODE_CREATE_FIAL.getText());
		}
	}
	
	
}