1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package org.example.join.model;
- import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
- import com.baomidou.mybatisplus.core.metadata.TableInfo;
- import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
- import com.baomidou.mybatisplus.core.toolkit.StringPool;
- import org.example.join.model.table.Table;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.StringJoiner;
- @SuppressWarnings("unchecked")
- public class SqlContext {
- private static final ThreadLocal<Map<String, Object>> threadLocal = ThreadLocal.withInitial(HashMap::new);
- private static final String PARAM_NUMBER = "paramNumber";
- private static final String PARAM_MAP = "paramMap";
- public static void init(Map<String, Object> paramMap) {
- Map<String, Object> map = threadLocal.get();
- map.put(PARAM_NUMBER, 1);
- map.put(PARAM_MAP, paramMap);
- threadLocal.set(map);
- }
- public static void remove() {
- threadLocal.remove();
- }
- public static void putValue(StringJoiner joiner, Object value) {
- if (value instanceof IFormat iFormat) {
- joiner.add(iFormat.toSql());
- } else {
- String mapKey = getParamKey();
- joiner.add(StringPool.HASH_LEFT_BRACE + mapKey + StringPool.RIGHT_BRACE);
- getParamMap().put(mapKey, value);
- }
- }
- public static String getTableDelFlag(Table table) {
- TableInfo tableInfo = TableInfoHelper.getTableInfo(table.getName());
- if (!tableInfo.isWithLogicDelete()) {
- return null;
- }
- TableFieldInfo logicDeleteFieldInfo = tableInfo.getLogicDeleteFieldInfo();
- return logicDeleteFieldInfo.getColumn();
- }
- public static String getParamKey() {
- Map<String, Object> map = threadLocal.get();
- int paramNumber = (int) map.get(PARAM_NUMBER);
- map.put(PARAM_NUMBER, paramNumber + 1);
- return SqlConstant.SQL_PARAM + paramNumber;
- }
- public static Map<String, Object> getParamMap() {
- Map<String, Object> map = threadLocal.get();
- return (Map<String, Object>) map.get(PARAM_MAP);
- }
- }
|