|
@@ -0,0 +1,87 @@
|
|
|
+package com.nokia.service;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.nokia.common.R;
|
|
|
+import com.nokia.dao.FunctionDao;
|
|
|
+import com.nokia.dao.RoleDao;
|
|
|
+import com.nokia.dao.UserFunctionDao;
|
|
|
+import com.nokia.pojo.Function;
|
|
|
+import com.nokia.pojo.UserFunction;
|
|
|
+import com.nokia.vo.*;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class FunctionService {
|
|
|
+ private final FunctionDao functionDao;
|
|
|
+ private final UserFunctionDao userFunctionDao;
|
|
|
+ private final RoleDao roleDao;
|
|
|
+
|
|
|
+ public FunctionService(FunctionDao functionDao, UserFunctionDao userFunctionDao, RoleDao roleDao) {
|
|
|
+ this.functionDao = functionDao;
|
|
|
+ this.userFunctionDao = userFunctionDao;
|
|
|
+ this.roleDao = roleDao;
|
|
|
+ }
|
|
|
+
|
|
|
+ public R<PageVo<ListFunctionVo>> list(ListFunctionDto dto) {
|
|
|
+ PageVo<ListFunctionVo> vo = new PageVo<>();
|
|
|
+ Page<ListFunctionVo> page = new Page<>(dto.getCurrent(), dto.getPageSize());
|
|
|
+ page.addOrder(OrderItem.asc("af.\"system\""));
|
|
|
+ List<ListFunctionVo> list = functionDao.list(page, dto);
|
|
|
+ vo.setList(list);
|
|
|
+ vo.setTotal(page.getTotal());
|
|
|
+ return R.ok(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<Object> add(AddFunctionDto dto) {
|
|
|
+ Function function = new Function();
|
|
|
+ function.setName(dto.getFunctionName());
|
|
|
+ function.setSystem(dto.getSystem());
|
|
|
+ function.setClient(dto.getClient());
|
|
|
+ function.setAppUrl(dto.getAppUrl());
|
|
|
+ function.setAppIcon(dto.getAppIcon());
|
|
|
+ function.setAppPriority(dto.getAppPriority());
|
|
|
+ function.setWebUrl(dto.getWebUrl());
|
|
|
+ function.setWebIcon(dto.getWebIcon());
|
|
|
+ function.setWebPriority(dto.getWebPriority());
|
|
|
+ function.setFunctionDescription(dto.getFunctionDescription());
|
|
|
+ functionDao.insert(function);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<Object> update(UpdateFunctionDto dto) {
|
|
|
+ Function function = new Function();
|
|
|
+ function.setId(dto.getFunctionId());
|
|
|
+ function.setName(dto.getFunctionName());
|
|
|
+ function.setSystem(dto.getSystem());
|
|
|
+ function.setClient(dto.getClient());
|
|
|
+ function.setAppUrl(dto.getAppUrl());
|
|
|
+ function.setAppIcon(dto.getAppIcon());
|
|
|
+ function.setAppPriority(dto.getAppPriority());
|
|
|
+ function.setWebUrl(dto.getWebUrl());
|
|
|
+ function.setWebIcon(dto.getWebIcon());
|
|
|
+ function.setWebPriority(dto.getWebPriority());
|
|
|
+ function.setFunctionDescription(dto.getFunctionDescription());
|
|
|
+ functionDao.updateById(function);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<Object> del(DeleteFunctionDto dto) {
|
|
|
+ // 删除关联acl_user_function
|
|
|
+ UpdateWrapper<UserFunction> userFunctionWrapper = new UpdateWrapper<>();
|
|
|
+ userFunctionWrapper.in("function_id", dto.getFunctionIds());
|
|
|
+ userFunctionDao.delete(userFunctionWrapper);
|
|
|
+ // 修改关联acl_role的function_id为null
|
|
|
+ roleDao.resetFunctionId(dto.getFunctionIds());
|
|
|
+ // 删除模块
|
|
|
+ functionDao.deleteBatchIds(dto.getFunctionIds());
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+}
|