| | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | @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()); |
| | | } |
| | | |
| | | /** |
| | |
| | | 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; |
| | | } |
| | |
| | | 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()); |
| | | } |
| | | } |
| | | } |
| | | } |