zyx
2024-07-20 a3776853fa6ff1c4a9805615a79852d54f700e3f
zy-asrs-common/src/main/java/com/zy/asrs/common/web/BaseController.java
@@ -1,9 +1,16 @@
package com.zy.asrs.common.web;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.common.sys.entity.User;
import com.zy.asrs.common.sys.entity.UserLogin;
import com.zy.asrs.common.sys.service.UserLoginService;
import com.zy.asrs.common.sys.service.UserService;
import com.zy.asrs.common.wms.entity.Tag;
import com.zy.asrs.common.wms.service.TagService;
import com.zy.asrs.framework.common.BaseRes;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.controller.AbstractBaseController;
@@ -27,6 +34,29 @@
    protected HttpServletRequest request;
    @Autowired
    private UserService userService;
    @Autowired
    private UserLoginService userLoginService;
    @Autowired
    private TagService tagService;
    protected Long getHostId(){
        if (getUserId() == 9527) {
            return null;
        }
        User user = getUser();
        if (user.getRoleId() == 2) {
            String hostId = String.valueOf(request.getAttribute("hostId"));
            if (Cools.isEmpty(hostId)) {
                UserLogin userLogin = userLoginService.getOne(new LambdaQueryWrapper<UserLogin>().eq(UserLogin::getUserId, user.getId()));
                if (userLogin != null) {
                    return userLogin.getHostId();
                }
            }
            return Long.parseLong(hostId);
        } else {
            return user.getHostId();
        }
    }
    protected Long getUserId(){
        return Long.parseLong(String.valueOf(request.getAttribute("userId")));
@@ -93,4 +123,62 @@
        return page;
    }
    protected Tag getOriginTag(){
        return tagService.getTop(getHostId());
    }
    /**
     * 全字段模糊搜索
     * @param cls 模型类
     * @param set 排除字段集合
     * @param condition 搜索内容
     */
    protected <T> void allLike(Class<T> cls, Set<String> set, QueryWrapper<T> wrapper, String condition){
        if (Cools.isEmpty(condition)) {
            return;
        }
        final List<String> columns = new ArrayList<>();
        for (Field field :Cools.getAllFields(cls)){
            if (Modifier.isFinal(field.getModifiers())
                    || Modifier.isStatic(field.getModifiers())
                    || Modifier.isTransient(field.getModifiers())){
                continue;
            }
            String column = null;
            if (field.isAnnotationPresent(TableField.class)) {
                column = field.getAnnotation(TableField.class).value();
            }
            if (Cools.isEmpty(column)) {
                column = field.getName();
            }
            if (!set.contains(column)) {
                columns.add(column);
            }
        }
        if (columns.isEmpty()) {
            return;
        }
        wrapper.and( w -> {
            for (int i=0;i<columns.size();i++){
                String colums = columns.get(i);
                if (i==0){
                    w.like(colums, condition);
                }else {
                    w.or().like(colums, condition);
                }
            }
        });
//        for (int i=0;i<columns.size();i++){
//            String colums = columns.get(i);
//            if (i==0){
//                wrapper.and(w -> w.like(colums, condition));
//            } else {
//                wrapper.or(w -> w.like(colums, condition));
//            }
////            wrapper.like(columns.get(i), condition);
//        }
    }
}