package com.product.face.controller;

import com.product.core.entity.FieldSetEntity;
import com.product.core.exception.BaseException;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.face.config.ErrorCode;
import com.product.face.config.FaceConst;
import com.product.face.service.FaceApplyService;
import com.product.module.sys.version.ApiVersion;
import com.product.util.BaseUtil;
import com.product.util.support.AbstractBaseController;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * @Author cheng
 * @Date 2023/5/17 10:17
 * @Desc 琛ㄥ崟搴旂敤鎺у埗灞�
 */
@RestController
@RequestMapping("/api/face/apply")
public class FaceApplyController extends AbstractBaseController {

	@Resource
	private FaceApplyService faceApplyService;

	/**
	 * 鑾峰彇琛ㄦ牸鍒楅厤缃�
	 *
	 * @param request
	 * @return
	 */
	@PostMapping("/get-list-column/{version}")
	@ApiVersion(1)
	public String getListColumn(HttpServletRequest request) {
		try {
			FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, FaceConst.TABLE_FACE_CONFIG);
			return success(faceApplyService.getFaceListConf(fse));
		} catch (BaseException e) {
			e.printStackTrace();
			return error(e);
		} catch (Exception e) {
			e.printStackTrace();
			SpringMVCContextHolder.getSystemLogger().error(e);
			return error(ErrorCode.GET_FACE_COLUMN_FAIL, e);
		}
	}

	/**
	 * 褰曞叆琛ㄥ崟鑾峰彇閰嶇疆
	 *
	 * @param request
	 * @return
	 */
	@PostMapping("/get-form-conf/{version}")
	@ApiVersion(1)
	public String getFormConf(HttpServletRequest request) {
		try {
			FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, FaceConst.TABLE_FACE_CONFIG);
			return faceApplyService.getFaceFormConfig(fse);
		} catch (BaseException e) {
			e.printStackTrace();
			return error(e);
		} catch (Exception e) {
			e.printStackTrace();
			SpringMVCContextHolder.getSystemLogger().error(e);
			return error(ErrorCode.GET_FACE_CONFIG_FAIL, e);
		}
	}
}