黎星凯
2024-04-15 62b6a7fac3f2acde70b578431147c4a01f19c182
consum-base/src/main/java/com/consum/base/service/impl/FinSysTenantServiceImpl.java
@@ -6,6 +6,12 @@
import java.util.Map;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.consum.base.service.SLoginInfoServiceImp;
import com.consum.model.po.SLoginInfo;
import com.iplatform.model.po.S_role;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.consum.base.pojo.FinSysTenantParam;
@@ -18,15 +24,20 @@
import com.walker.jdbc.service.BaseServiceImpl;
import cn.hutool.core.date.DateUtil;
import org.springframework.transaction.annotation.Transactional;
@Service
public class FinSysTenantServiceImpl extends BaseServiceImpl implements FinSysTenantService {
    private static final String QUERY_TREE_ALL =
        "select * from FIN_SYS_TENANT where is_delete = 0 and status = 1  order by parent_id, LV ASC";
            "select * from FIN_SYS_TENANT where is_delete = 0 and status = 1  order by parent_id, LV ASC";
    private static final String QUERY_TREE_BY_CODE = "SELECT * FROM FIN_SYS_TENANT  ";
    private static final String QUERY_LIST_BY_CITY_CODE =
        "SELECT ID, NAME, CODE, CASE WHEN LV = 2 THEN ID ELSE PARENT_ID END AS PARENT_ID, LV, TENANT_TYPE, BELONG_PROVINCE FROM FIN_SYS_TENANT  ";
            "SELECT ID, NAME, CODE, CASE WHEN LV = 2 THEN ID ELSE PARENT_ID END AS PARENT_ID, LV, TENANT_TYPE, BELONG_PROVINCE FROM FIN_SYS_TENANT  ";
    @Autowired
    private SLoginInfoServiceImp sLoginInfoService;
    /**
     * @Author :power
@@ -46,7 +57,7 @@
    @Override
    public List<FinSysTenant> queryForTree() {
        // 展示全部节点
        return this.select(QUERY_TREE_ALL, new Object[] {}, new FinSysTenant());
        return this.select(QUERY_TREE_ALL, new Object[]{}, new FinSysTenant());
    }
    /**
@@ -132,7 +143,7 @@
        List<Map<String, Object>> list = this.select(sql.toString(), paramts);
        long id = 0L;
        if (!CollectionUtils.isEmpty(list)) {
            id = (Long)list.get(0).get("max(id)") + 1;
            id = (Long) list.get(0).get("max(id)") + 1;
        } else {
            id = param.getParentId() * 1000 + 1;
        }
@@ -281,4 +292,46 @@
        tenant.setParentId(0L);
        return this.select(tenant).stream().findFirst().orElse(null);
    }
    /**
     * 修改登录日志的信息,加上登陆人,登录人的部门
     *
     * @param sysUserName 用户name
     */
    @Override
    @Transactional(readOnly = false)
    public void changeSLoginInfo(String sysUserName) {
        // 查询当前登录用户的最后一条日志
        Map<String, Object> parameter = new HashMap();
        parameter.put("userName", sysUserName);
        StringBuilder whStr = new StringBuilder(" order by login_time desc LIMIT 1 ");
        List<SLoginInfo> select = select(new SLoginInfo(), whStr.toString(), parameter);
        if (!CollectionUtil.isEmpty(select) && select.size() == 1) {
            // 查询用户关联的机构部门和姓名
            SLoginInfo sLoginInfo = select.get(0);
            StringBuilder selSql = new StringBuilder("SELECT fstu.USER_NAME userName,fst.NAME tenantName,fstd.NAME sysDeptName FROM\n" +
                    "\tFIN_SYS_TENANT_USER fstu LEFT JOIN fin_sys_tenant fst ON fst.id = fstu.TENANT_ID LEFT JOIN fin_sys_tenant_department fstd ON fstd.id = fstu.SYS_DEPT_ID \n" +
                    "WHERE fstu.IS_DELETE = 0  ");
            selSql.append(" AND fstu.USER_NAME =:userName");
            parameter.put("userName", sysUserName);
            List<Map<String, Object>> selected = select(selSql.toString(), parameter);
            Object unit = null;
            Object name = null;
            if (!CollectionUtil.isEmpty(selected)) {
                Map<String, Object> stringObjectMap = selected.get(0);
                name = stringObjectMap.get("userName");
                unit = stringObjectMap.get("sysDeptName");
            }
            if (unit != null && name != null) {
                // 如果有部门和用户名 更新日志表的数据
                StringBuilder sb = new StringBuilder("update s_login_info set sys_user_unit = '");
                sb.append(unit == null ? "" : unit.toString() + "',");
                sb.append("  sys_user_name = '");
                sb.append(name == null ? "" : name.toString() + "'");
                sb.append(" where info_id = ");
                sb.append(sLoginInfo.getInfoId());
                sLoginInfoService.update(sb.toString());
            }
        }
    }
}