diff --git a/admin/src/views/organization/department/edit.vue b/admin/src/views/organization/department/edit.vue index f1d13624820029a2252c24fa224c4e38b5cf918b..2f2be211d9bea746615ed327fd998d9797e77c12 100644 --- a/admin/src/views/organization/department/edit.vue +++ b/admin/src/views/organization/department/edit.vue @@ -125,6 +125,12 @@ const { optionsData } = useDictOptions<{ } }) +watch(optionsData, (arr) => { + if (arr.dept) { + formData.pid = arr.dept[0].id + } +}) + const handleSubmit = async () => { await formRef.value?.validate() mode.value == 'edit' ? await deptEdit(formData) : await deptAdd(formData) diff --git a/admin/src/views/setting/search/index.vue b/admin/src/views/setting/search/index.vue index 89471f4ec21fdf0c36b229518dd417563569c868..d5421ea5906538ca027e73d3249d24c859dc7924 100644 --- a/admin/src/views/setting/search/index.vue +++ b/admin/src/views/setting/search/index.vue @@ -163,6 +163,7 @@ getData() margin: 0 6px 6px 0; display: inline-block; background-color: #f4f4f4; + word-break: break-all; } } } diff --git a/server/like-admin/src/main/java/com/mdd/admin/config/aop/Log.java b/server/like-admin/src/main/java/com/mdd/admin/config/aop/Log.java index 473843aeeb434962aee3c8d6b4d2a57c90860c4f..accee6c8e033fc50eb703861fadc9867b1947f18 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/config/aop/Log.java +++ b/server/like-admin/src/main/java/com/mdd/admin/config/aop/Log.java @@ -13,4 +13,10 @@ public @interface Log { */ String title() default ""; + /** + * 模块 + * @return String + */ + RequestType requestType() default RequestType.Default; + } diff --git a/server/like-admin/src/main/java/com/mdd/admin/config/aop/LogAspect.java b/server/like-admin/src/main/java/com/mdd/admin/config/aop/LogAspect.java index ffbf11ba07d48f97d6f919d8a55db495857ecb1f..63fb2293e2e8de14e8cdeb89721b03e45290449e 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/config/aop/LogAspect.java +++ b/server/like-admin/src/main/java/com/mdd/admin/config/aop/LogAspect.java @@ -16,12 +16,18 @@ import org.aspectj.lang.reflect.MethodSignature; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import org.springframework.util.MultiValueMap; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; @Aspect @Component @@ -96,9 +102,24 @@ public class LogAspect { String queryString = request.getQueryString(); Object[] args = joinPoint.getArgs(); String params = ""; - if(args.length>0){ + if (args.length > 0) { if("POST".equals(request.getMethod())){ - params = JSON.toJSONString(args); + if (RequestType.File.equals(logAnnotation.requestType())){ + //文件类型获取文件名称作为参数 + StandardMultipartHttpServletRequest standardMultipartHttpServletRequest = (StandardMultipartHttpServletRequest) args[0]; + //提取文件名 + params = standardMultipartHttpServletRequest + .getMultiFileMap() + .values() + .stream() + .map(m -> m.stream() + .map(mf-> mf.getOriginalFilename()) + .collect(Collectors.joining(","))) + .collect(Collectors.joining(",")); + } else { + params = JSON.toJSONString(args); + } + } else if("GET".equals(request.getMethod())){ params = queryString; } diff --git a/server/like-admin/src/main/java/com/mdd/admin/config/aop/RequestType.java b/server/like-admin/src/main/java/com/mdd/admin/config/aop/RequestType.java new file mode 100644 index 0000000000000000000000000000000000000000..abc398d2f2f7f51375ee00174e7ab68cf24c2615 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/config/aop/RequestType.java @@ -0,0 +1,17 @@ +package com.mdd.admin.config.aop; + +/** + * 请求参数类 + */ +public enum RequestType { + /** + * 文件类型 + */ + File, + /** + * 默认数据类型 + */ + Default + ; + +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/common/UploadController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/common/UploadController.java index a4444391ef0897daf4555d4710fcd62ca0d51a96..d8ad539ca8df9a61e1c01cc78294f43984954b12 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/common/UploadController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/common/UploadController.java @@ -2,6 +2,7 @@ package com.mdd.admin.controller.common; import com.mdd.admin.LikeAdminThreadLocal; import com.mdd.admin.config.aop.Log; +import com.mdd.admin.config.aop.RequestType; import com.mdd.admin.service.common.IAlbumService; import com.mdd.common.core.AjaxResult; import com.mdd.common.enums.AlbumEnum; @@ -36,7 +37,7 @@ public class UploadController { * @param request 请求对象 * @return Object */ - @Log(title = "上传图片") + @Log(title = "上传图片", requestType = RequestType.File) @PostMapping("/image") public Object image(HttpServletRequest request) { MultipartFile multipartFile; diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/system/impl/SystemAuthDeptServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/system/impl/SystemAuthDeptServiceImpl.java index b9afdde126c5d8060db449dc1aa6ddf0c68fd8fe..33f9c1dcb5011375c98780792b5d88f217c647bb 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/system/impl/SystemAuthDeptServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/system/impl/SystemAuthDeptServiceImpl.java @@ -14,6 +14,7 @@ import com.mdd.common.utils.ArrayUtil; import com.mdd.common.utils.TimeUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -159,6 +160,7 @@ class SystemAuthDeptServiceImpl implements ISystemAuthDeptService { * @author fzr * @param systemAuthDeptParam 参数 */ + @Transactional(rollbackFor = Exception.class) @Override public void edit(SystemAuthDeptParam systemAuthDeptParam) { SystemAuthDept model = systemAuthDeptMapper.selectOne( @@ -182,6 +184,8 @@ class SystemAuthDeptServiceImpl implements ISystemAuthDeptService { model.setIsStop(systemAuthDeptParam.getIsStop()); model.setUpdateTime(System.currentTimeMillis() / 1000); systemAuthDeptMapper.updateById(model); + //级联更新自己状态 + systemAuthDeptMapper.updateChilder(systemAuthDeptParam.getIsStop(),model.getId()); } /** diff --git a/server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java b/server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java index 68e8dcc433f2b920052a874d435afd47ec3d6fd6..a975ba704e20bd654ebefd9a87719ac9d9a53dc1 100644 --- a/server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java +++ b/server/like-common/src/main/java/com/mdd/common/mapper/system/SystemAuthDeptMapper.java @@ -3,10 +3,29 @@ package com.mdd.common.mapper.system; import com.mdd.common.core.basics.IBaseMapper; import com.mdd.common.entity.system.SystemAuthDept; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; /** * 系统岗位Mapper */ @Mapper public interface SystemAuthDeptMapper extends IBaseMapper { + + /** + * 级联更新部门状态 + * @param stopStatus + * @param id + * @return + */ + @Update(value = "WITH recursive temp AS (SELECT id, pid\n" + + " FROM la_system_auth_dept\n" + + " WHERE id = #{id}\n" + " UNION ALL\n" + + " SELECT u.id, u.pid\n" + + " FROM la_system_auth_dept u,\n" + + " temp t\n" + + " WHERE u.pid = t.id and u.is_stop <> #{stopStatus})\n" + + "update la_system_auth_dept set is_stop = #{stopStatus}\n" + + "where id in (select id from temp)") + void updateChilder(@Param("stopStatus") int stopStatus, @Param("id") Integer id); }