From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 25 六月 2025 11:51:38 +0800
Subject: [PATCH] Merge branch 'mdc_hyjs_master'

---
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/DuplicateCheckController.java |   88 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/DuplicateCheckController.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/DuplicateCheckController.java
new file mode 100644
index 0000000..9efae64
--- /dev/null
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/DuplicateCheckController.java
@@ -0,0 +1,88 @@
+package org.jeecg.modules.system.controller;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.SymbolConstant;
+import org.jeecg.common.util.SqlInjectionUtil;
+import org.jeecg.modules.system.mapper.SysDictMapper;
+import org.jeecg.modules.system.model.DuplicateCheckVo;
+import org.jeecg.modules.system.security.DictQueryBlackListHandler;
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @Title: DuplicateCheckAction
+ * @Description: 閲嶅鏍¢獙宸ュ叿
+ * @Author 寮犱唬娴�
+ * @Date 2019-03-25
+ * @Version V1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/sys/duplicate")
+@Api(tags="閲嶅鏍¢獙")
+public class DuplicateCheckController {
+
+	@Resource
+	private SysDictMapper sysDictMapper;
+
+	@Autowired
+	DictQueryBlackListHandler dictQueryBlackListHandler;
+
+	/**
+	 * 鏍¢獙鏁版嵁鏄惁鍦ㄧ郴缁熶腑鏄惁瀛樺湪
+	 * 
+	 * @return
+	 */
+	@RequestMapping(value = "/check", method = RequestMethod.GET)
+	@ApiOperation("閲嶅鏍¢獙鎺ュ彛")
+	public Result<String> doDuplicateCheck(DuplicateCheckVo duplicateCheckVo, HttpServletRequest request) {
+		Long num = null;
+
+		log.info("----duplicate check------锛�"+ duplicateCheckVo.toString());
+		//鍏宠仈琛ㄥ瓧鍏革紙涓句緥锛歴ys_user,realname,id锛�
+		//SQL娉ㄥ叆鏍¢獙锛堝彧闄愬埗闈炴硶涓叉敼鏁版嵁搴擄級
+		final String[] sqlInjCheck = {duplicateCheckVo.getTableName(),duplicateCheckVo.getFieldName()};
+		SqlInjectionUtil.filterContent(sqlInjCheck);
+		// update-begin-author:taoyan date:20211227 for: JTC-25 銆恛nline鎶ヨ〃銆憃racle 鎿嶄綔闂 褰曞叆寮规鍟ラ兘涓嶅~鐩存帴淇濆瓨 鈶犵紪鐮佷笉鏄簲璇ユ彁绀哄繀濉箞锛熲憽鎶ラ敊涔熷簲璇ユ槸鍏蜂綋鏂囧瓧鎻愮ず锛屼笉鏄悗鍙伴敊璇棩蹇�
+		if(StringUtils.isEmpty(duplicateCheckVo.getFieldVal())){
+			Result rs = new Result();
+			rs.setCode(500);
+			rs.setSuccess(true);
+			rs.setMessage("鏁版嵁涓虹┖,涓嶄綔澶勭悊锛�");
+			return rs;
+		}
+		//update-begin-author:taoyan date:20220329 for: VUEN-223銆愬畨鍏ㄦ紡娲炪�戝綋鍓嶈鏀诲嚮鐨勬帴鍙�
+		String checkSql = duplicateCheckVo.getTableName() + SymbolConstant.COMMA + duplicateCheckVo.getFieldName() + SymbolConstant.COMMA;
+		if(!dictQueryBlackListHandler.isPass(checkSql)){
+			return Result.error(dictQueryBlackListHandler.getError());
+		}
+		//update-end-author:taoyan date:20220329 for: VUEN-223銆愬畨鍏ㄦ紡娲炪�戝綋鍓嶈鏀诲嚮鐨勬帴鍙�
+		// update-end-author:taoyan date:20211227 for: JTC-25 銆恛nline鎶ヨ〃銆憃racle 鎿嶄綔闂 褰曞叆寮规鍟ラ兘涓嶅~鐩存帴淇濆瓨 鈶犵紪鐮佷笉鏄簲璇ユ彁绀哄繀濉箞锛熲憽鎶ラ敊涔熷簲璇ユ槸鍏蜂綋鏂囧瓧鎻愮ず锛屼笉鏄悗鍙伴敊璇棩蹇�
+		if (StringUtils.isNotBlank(duplicateCheckVo.getDataId())) {
+			// [2].缂栬緫椤甸潰鏍¢獙
+			num = sysDictMapper.duplicateCheckCountSql(duplicateCheckVo);
+		} else {
+			// [1].娣诲姞椤甸潰鏍¢獙
+			num = sysDictMapper.duplicateCheckCountSqlNoDataId(duplicateCheckVo);
+		}
+
+		if (num == null || num == 0) {
+			// 璇ュ�煎彲鐢�
+			return Result.ok("璇ュ�煎彲鐢紒");
+		} else {
+			// 璇ュ�间笉鍙敤
+			log.info("璇ュ�间笉鍙敤锛岀郴缁熶腑宸插瓨鍦紒");
+			return Result.error("璇ュ�间笉鍙敤锛岀郴缁熶腑宸插瓨鍦紒");
+		}
+	}
+}

--
Gitblit v1.9.3