springcloud_k8s_panzhihuazhihuishequ/.idea/workspace.xml
@@ -23,15 +23,35 @@ </component> <component name="ChangeListManager"> <list default="true" id="8ba27629-3e5d-4f42-993e-d0c055bc9371" name="Default Changelist" comment=""> <change afterPath="$PROJECT_DIR$/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/interfaces/OperLog.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/model/vos/user/MenuRoleVO.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/model/vos/user/SysOperLogVO.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserAgreementVO.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/dao/SysRoleMenuDAO.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserAgreementDAO.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysOperLogDO.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleMenuDO.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserAgreementDO.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java" beforeDir="false" afterPath="$PROJECT_DIR$/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/SystemManagementApi.java" beforeDir="false" afterPath="$PROJECT_DIR$/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/SystemManagementApi.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/common/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/common/pom.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/model/vos/user/SysMenuVO.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/model/vos/user/SysMenuVO.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/service/user/UserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/panzhihua/common/service/user/UserService.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/common/target/classes/com/panzhihua/common/model/vos/user/SysMenuVO.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/panzhihua/common/model/vos/user/SysMenuVO.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/common/target/classes/com/panzhihua/common/service/user/UserService.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/panzhihua/common/service/user/UserService.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/api/RoleApi.java" beforeDir="false" afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/api/RoleApi.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java" beforeDir="false" afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/service/RoleService.java" beforeDir="false" afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/service/RoleService.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> @@ -96,11 +116,11 @@ </component> <component name="RecentsManager"> <key name="CopyClassDialog.RECENTS_KEY"> <recent name="com.panzhihua.applets_backstage.aop" /> <recent name="com.panzhihua.community_backstage.exception" /> <recent name="com.panzhihua.service_dangjian.config" /> <recent name="com.panzhihua.service_community.config" /> <recent name="com.panzhihua.applets.api" /> <recent name="com.panzhihua.applets.config" /> </key> <key name="CopyFile.RECENT_KEYS"> <recent name="F:\nahan\panzhihua_zhihuishequ\zhihuishequ\springcloud_k8s_panzhihuazhihuishequ\service_user\src\main\java\com\panzhihua\service_user" /> @@ -117,20 +137,7 @@ </set> </option> </component> <component name="RunManager" selected="Application.HanyuPinyinHelper"> <configuration name="AES" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> <option name="MAIN_CLASS_NAME" value="com.panzhihua.common.utlis.AES" /> <module name="common" /> <extension name="coverage"> <pattern> <option name="PATTERN" value="com.panzhihua.common.utlis.*" /> <option name="ENABLED" value="true" /> </pattern> </extension> <method v="2"> <option name="Make" enabled="true" /> </method> </configuration> <component name="RunManager" selected="Application.IPUtil"> <configuration name="BaseController" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> <option name="MAIN_CLASS_NAME" value="com.panzhihua.common.controller.BaseController" /> <module name="common" /> @@ -163,6 +170,19 @@ <extension name="coverage"> <pattern> <option name="PATTERN" value="com.panzhihua.common.service.*" /> <option name="ENABLED" value="true" /> </pattern> </extension> <method v="2"> <option name="Make" enabled="true" /> </method> </configuration> <configuration name="IPUtil" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true"> <option name="MAIN_CLASS_NAME" value="com.panzhihua.common.utlis.IPUtil" /> <module name="common" /> <extension name="coverage"> <pattern> <option name="PATTERN" value="com.panzhihua.common.utlis.*" /> <option name="ENABLED" value="true" /> </pattern> </extension> @@ -267,7 +287,6 @@ </method> </configuration> <list> <item itemvalue="Application.AES" /> <item itemvalue="Application.CommonApi" /> <item itemvalue="Application.BaseController" /> <item itemvalue="Application.UserApi" /> @@ -282,14 +301,15 @@ <item itemvalue="Spring Boot.ServiceUserApplication" /> <item itemvalue="Spring Boot.ZuulApplication" /> <item itemvalue="Spring Boot.ServiceCommunityApplication" /> <item itemvalue="Application.IPUtil" /> </list> <recent_temporary> <list> <item itemvalue="Application.IPUtil" /> <item itemvalue="Application.HanyuPinyinHelper" /> <item itemvalue="Application.UserApi" /> <item itemvalue="Application.BaseController" /> <item itemvalue="Application.CommonApi" /> <item itemvalue="Application.AES" /> </list> </recent_temporary> </component> @@ -380,7 +400,7 @@ <workItem from="1608371107059" duration="646000" /> <workItem from="1608371917868" duration="79000" /> <workItem from="1608379508016" duration="46000" /> <workItem from="1608531425658" duration="100462000" /> <workItem from="1608531425658" duration="122677000" /> </task> <servers /> </component> @@ -404,10 +424,10 @@ <screen x="0" y="0" width="1536" height="824" /> </state> <state x="249" y="0" key="#Project_Structure/0.0.1536.824@0.0.1536.824" timestamp="1608546608273" /> <state x="574" y="118" key="#com.intellij.ide.util.MemberChooser" timestamp="1608803973443"> <state x="574" y="118" key="#com.intellij.ide.util.MemberChooser" timestamp="1608884062293"> <screen x="0" y="0" width="1536" height="824" /> </state> <state x="574" y="118" key="#com.intellij.ide.util.MemberChooser/0.0.1536.824@0.0.1536.824" timestamp="1608803973443" /> <state x="574" y="118" key="#com.intellij.ide.util.MemberChooser/0.0.1536.824@0.0.1536.824" timestamp="1608884062293" /> <state x="405" y="335" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog" timestamp="1606099594079"> <screen x="0" y="0" width="1536" height="824" /> </state> @@ -416,14 +436,14 @@ <screen x="0" y="0" width="1536" height="824" /> </state> <state x="0" y="0" key="#com.intellij.refactoring.rename.AutomaticRenamingDialog/0.0.1536.824@0.0.1536.824" timestamp="1608617413896" /> <state x="499" y="159" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1608103012443"> <state x="499" y="159" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1608878808962"> <screen x="0" y="0" width="1536" height="824" /> </state> <state x="499" y="159" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1536.824@0.0.1536.824" timestamp="1608103012443" /> <state width="561" height="466" key="DebuggerActiveHint" timestamp="1608793821455"> <state x="499" y="159" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1536.824@0.0.1536.824" timestamp="1608878808962" /> <state width="561" height="466" key="DebuggerActiveHint" timestamp="1608807098863"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="561" height="466" key="DebuggerActiveHint/0.0.1536.824@0.0.1536.824" timestamp="1608793821455" /> <state width="561" height="466" key="DebuggerActiveHint/0.0.1536.824@0.0.1536.824" timestamp="1608807098863" /> <state x="93" y="93" width="1350" height="638" key="DiffContextDialog" timestamp="1608535183408"> <screen x="0" y="0" width="1536" height="824" /> </state> @@ -432,54 +452,54 @@ <screen x="0" y="0" width="1536" height="824" /> </state> <state x="549" y="167" key="FileChooserDialogImpl/0.0.1536.824@0.0.1536.824" timestamp="1606197830966" /> <state width="1031" height="313" key="GridCell.Tab.0.bottom" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.0.bottom" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.0.bottom/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.0.center" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.0.bottom/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.0.center" timestamp="1608884771065"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.0.center/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.0.left" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.0.center/0.0.1536.824@0.0.1536.824" timestamp="1608884771065" /> <state width="1031" height="490" key="GridCell.Tab.0.left" timestamp="1608884771064"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.0.left/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.0.right" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.0.left/0.0.1536.824@0.0.1536.824" timestamp="1608884771064" /> <state width="1031" height="490" key="GridCell.Tab.0.right" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.0.right/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.1.bottom" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.0.right/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.1.bottom" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.1.bottom/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.1.center" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.1.bottom/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.1.center" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.1.center/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.1.left" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.1.center/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.1.left" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.1.left/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.1.right" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.1.left/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.1.right" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.1.right/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.2.bottom" timestamp="1608803605624"> <state width="1031" height="490" key="GridCell.Tab.1.right/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.2.bottom" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.2.bottom/0.0.1536.824@0.0.1536.824" timestamp="1608803605624" /> <state width="1031" height="313" key="GridCell.Tab.2.center" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.2.bottom/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.2.center" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.2.center/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.2.left" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.2.center/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.2.left" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.2.left/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="313" key="GridCell.Tab.2.right" timestamp="1608803605623"> <state width="1031" height="490" key="GridCell.Tab.2.left/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state width="1031" height="490" key="GridCell.Tab.2.right" timestamp="1608884771066"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="1031" height="313" key="GridCell.Tab.2.right/0.0.1536.824@0.0.1536.824" timestamp="1608803605623" /> <state width="1031" height="490" key="GridCell.Tab.2.right/0.0.1536.824@0.0.1536.824" timestamp="1608884771066" /> <state x="299" y="67" key="Maven.ArtifactSearchDialog" timestamp="1606714311663"> <screen x="0" y="0" width="1536" height="824" /> </state> @@ -488,10 +508,10 @@ <screen x="0" y="0" width="1536" height="824" /> </state> <state x="270" y="57" key="SettingsEditor/0.0.1536.824@0.0.1536.824" timestamp="1606120706449" /> <state width="498" height="540" key="SwitcherDM" timestamp="1608624418629"> <state width="498" height="540" key="SwitcherDM" timestamp="1608861433704"> <screen x="0" y="0" width="1536" height="824" /> </state> <state width="498" height="540" key="SwitcherDM/0.0.1536.824@0.0.1536.824" timestamp="1608624418629" /> <state width="498" height="540" key="SwitcherDM/0.0.1536.824@0.0.1536.824" timestamp="1608861433704" /> <state x="93" y="93" width="1350" height="638" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog" timestamp="1608535536014"> <screen x="0" y="0" width="1536" height="824" /> </state> @@ -500,10 +520,10 @@ <screen x="0" y="0" width="1536" height="824" /> </state> <state x="93" y="93" width="1350" height="638" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1536.824@0.0.1536.824" timestamp="1608791484208" /> <state x="468" y="115" width="766" height="594" key="find.popup" timestamp="1608791474550"> <state x="468" y="115" width="766" height="594" key="find.popup" timestamp="1608858479111"> <screen x="0" y="0" width="1536" height="824" /> </state> <state x="468" y="115" width="766" height="594" key="find.popup/0.0.1536.824@0.0.1536.824" timestamp="1608791474550" /> <state x="468" y="115" width="766" height="594" key="find.popup/0.0.1536.824@0.0.1536.824" timestamp="1608858479111" /> <state x="301" y="126" key="new project wizard" timestamp="1607319774085"> <screen x="0" y="0" width="1536" height="824" /> </state> @@ -516,10 +536,10 @@ <screen x="0" y="0" width="1536" height="824" /> </state> <state x="425" y="187" key="run.anything.popup/0.0.1536.824@0.0.1536.824" timestamp="1608280452280" /> <state x="431" y="145" width="672" height="678" key="search.everywhere.popup" timestamp="1608283772327"> <state x="431" y="145" width="672" height="678" key="search.everywhere.popup" timestamp="1608858461752"> <screen x="0" y="0" width="1536" height="824" /> </state> <state x="431" y="145" width="672" height="678" key="search.everywhere.popup/0.0.1536.824@0.0.1536.824" timestamp="1608283772327" /> <state x="431" y="145" width="672" height="678" key="search.everywhere.popup/0.0.1536.824@0.0.1536.824" timestamp="1608858461752" /> </component> <component name="XDebuggerManager"> <breakpoint-manager> springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java
@@ -79,13 +79,12 @@ } @ApiOperation("分页展示社区微心愿") @ApiOperation(value = "分页展示社区微心愿",response = ComActMicroWishVO.class) @PostMapping("pagemicrowish") public R pageMicroWish (){ public R pageMicroWish (@RequestBody ComActMicroWishVO comActMicroWishVO){ LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); Long communityId = loginUserInfo.getCommunityId(); Long userId = loginUserInfo.getUserId(); ComActMicroWishVO comActMicroWishVO=new ComActMicroWishVO(); comActMicroWishVO.setCommunityId(communityId); comActMicroWishVO.setIsApplets(1); comActMicroWishVO.setResponsibleId(userId);//责任人暂时放登录用户id springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java
@@ -5,6 +5,7 @@ import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.EnableAspectJAutoProxy; import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableSwagger2 @@ -12,6 +13,7 @@ @EnableCircuitBreaker @EnableEurekaClient @EnableFeignClients(basePackages = {"com.panzhihua.common.service"}) @EnableAspectJAutoProxy(proxyTargetClass = true) public class AppletsBackstageApplication { public static void main(String[] args) { springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java
New file @@ -0,0 +1,227 @@ package com.panzhihua.applets_backstage.aop; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.constants.Constants; import com.panzhihua.common.constants.TokenConstant; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.user.SysOperLogVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.AES; import com.panzhihua.common.utlis.IPUtil; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.stereotype.Component; import org.springframework.util.ObjectUtils; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.lang.reflect.Method; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * 切面处理类,操作日志异常日志记录处理 * * @author wu * @date 2019/03/21 */ @Slf4j @Aspect @Component public class OperLogAspect { @Resource private UserService userService; /** * 设置操作日志切入点 记录操作日志 在注解的位置切入代码 */ @Pointcut("@annotation(com.panzhihua.common.interfaces.OperLog)") public void operLogPoinCut() { } // /** // * 设置操作异常切入点记录异常日志 扫描所有controller包下操作 // */ // @Pointcut("execution(* com.hyd.zcar.cms.controller..*.*(..))") // public void operExceptionLogPoinCut() { // } /** * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行 * * @param joinPoint 切入点 * @param keys 返回结果 */ @AfterReturning(value = "operLogPoinCut()", returning = "keys") public void saveOperLog(JoinPoint joinPoint, Object keys) { log.info("进入切面"); // 获取RequestAttributes RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); // 从获取RequestAttributes中获取HttpServletRequest的信息 HttpServletRequest request = (HttpServletRequest) requestAttributes .resolveReference(RequestAttributes.REFERENCE_REQUEST); // 登录对象信息 String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO); boolean empty = ObjectUtils.isEmpty(userInfo); if (empty) { log.error("操作日志获取登录用户信息失败【{}】",joinPoint); return; } byte[] bytes = AES.parseHexStr2Byte(userInfo); byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY); userInfo=new String(decrypt); LoginUserInfoVO loginUserInfoVO= JSONObject.parseObject(userInfo,LoginUserInfoVO.class); SysOperLogVO operlog = new SysOperLogVO(); try { // 从切面织入点处通过反射机制获取织入点处的方法 MethodSignature signature = (MethodSignature) joinPoint.getSignature(); // 获取切入点所在的方法 Method method = signature.getMethod(); // 获取操作 OperLog opLog = method.getAnnotation(OperLog.class); if (opLog != null) { String operModul = opLog.operModul(); int operType = opLog.operType(); operlog.setTitle(operModul); // 操作模块 operlog.setBusinessType(operType); // 操作类型 } // 获取请求的类名 String className = joinPoint.getTarget().getClass().getName(); // 获取请求的方法名 String methodName = method.getName(); methodName = className + "." + methodName; operlog.setMethod(methodName); // 请求方法 if (joinPoint.getArgs().length > 0) { for (Object o : joinPoint.getArgs()) { if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) { continue; } operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数 } } operlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果 operlog.setAccount(loginUserInfoVO.getAccount()); operlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称 operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP operlog.setOperUrl(request.getRequestURI()); // 请求URI operlog.setRequestMethod(request.getMethod()); operlog.setOperLocation(IPUtil.getIpBelongAddress(request)); operlog.setOperTime(new Date()); // 创建时间 operlog.setAccount(loginUserInfoVO.getAccount()); Long communityId = loginUserInfoVO.getCommunityId(); operlog.setCommunityId(null==communityId?0:communityId); userService.addOperLog(operlog); } catch (Exception e) { e.printStackTrace(); } } // /** // * 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行 // * // * @param joinPoint 切入点 // * @param e 异常信息 // */ // @AfterThrowing(pointcut = "operExceptionLogPoinCut()", throwing = "e") // public void saveExceptionLog(JoinPoint joinPoint, Throwable e) { // // 获取RequestAttributes // RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); // // 从获取RequestAttributes中获取HttpServletRequest的信息 // HttpServletRequest request = (HttpServletRequest) requestAttributes // .resolveReference(RequestAttributes.REFERENCE_REQUEST); // // ExceptionLog excepLog = new ExceptionLog(); // try { // // 从切面织入点处通过反射机制获取织入点处的方法 // MethodSignature signature = (MethodSignature) joinPoint.getSignature(); // // 获取切入点所在的方法 // Method method = signature.getMethod(); // excepLog.setExcId(UuidUtil.get32UUID()); // // 获取请求的类名 // String className = joinPoint.getTarget().getClass().getName(); // // 获取请求的方法名 // String methodName = method.getName(); // methodName = className + "." + methodName; // // 请求的参数 // Map<String, String> rtnMap = converMap(request.getParameterMap()); // // 将参数所在的数组转换成json // String params = JSON.toJSONString(rtnMap); // excepLog.setExcRequParam(params); // 请求参数 // excepLog.setOperMethod(methodName); // 请求方法名 // excepLog.setExcName(e.getClass().getName()); // 异常名称 // excepLog.setExcMessage(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace())); // 异常信息 // excepLog.setOperUserId(UserShiroUtil.getCurrentUserLoginName()); // 操作员ID // excepLog.setOperUserName(UserShiroUtil.getCurrentUserName()); // 操作员名称 // excepLog.setOperUri(request.getRequestURI()); // 操作URI // excepLog.setOperIp(IPUtil.getRemortIP(request)); // 操作员IP // excepLog.setOperVer(operVer); // 操作版本号 // excepLog.setOperCreateTime(new Date()); // 发生异常时间 // // exceptionLogService.insert(excepLog); // // } catch (Exception e2) { // e2.printStackTrace(); // } // // } /** * 转换request 请求参数 * * @param paramMap request获取的参数数组 */ public Map<String, String> converMap(Map<String, String[]> paramMap) { Map<String, String> rtnMap = new HashMap<String, String>(); for (String key : paramMap.keySet()) { rtnMap.put(key, paramMap.get(key)[0]); } return rtnMap; } private String getPostData(HttpServletRequest request) { StringBuffer data = new StringBuffer(); String line = null; BufferedReader reader = null; try { reader = request.getReader(); while (null != (line = reader.readLine())) data.append(line); } catch (IOException e) { } finally { } return data.toString(); } /** * 转换异常信息为字符串 * * @param exceptionName 异常名称 * @param exceptionMessage 异常信息 * @param elements 堆栈信息 */ public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) { StringBuffer strbuff = new StringBuffer(); for (StackTraceElement stet : elements) { strbuff.append(stet + "\n"); } String message = exceptionName + ":" + exceptionMessage + "\n\t" + strbuff.toString(); return message; } } springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/SystemManagementApi.java
@@ -1,9 +1,9 @@ package com.panzhihua.applets_backstage.api; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.interfaces.OperLog; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.model.vos.user.RoleVO; import com.panzhihua.common.model.vos.user.*; import com.panzhihua.common.service.HanyuPinyinHelper; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.validated.AddGroup; @@ -30,6 +30,7 @@ @ApiOperation(value = "新增运营后台账户") @PostMapping("user") @OperLog(operModul = "用户管理",operType = 1) public R addUser(@RequestBody @Validated(AddGroup.class) AdministratorsUserVO administratorsUserVO){ administratorsUserVO.setType(2); administratorsUserVO.setAreaId(null); @@ -39,6 +40,7 @@ @ApiOperation(value = "编辑运营后台账户") @PutMapping("user") @OperLog(operModul = "用户管理",operType = 2) public R putUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO){ Long userId = administratorsUserVO.getUserId(); if (null==userId||0==userId) { @@ -56,6 +58,7 @@ @ApiOperation(value = "删除后台用户") @DeleteMapping("user") @OperLog(operModul = "用户管理",operType = 3) public R deleteUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO){ Long userId = administratorsUserVO.getUserId(); if (null==userId||0==userId) { @@ -80,6 +83,7 @@ @ApiOperation(value = "新增角色") @PostMapping("role") @OperLog(operModul = "角色管理",operType = 1) public R addRoleBackstage(@RequestBody RoleVO roleVO){ String roleName = roleVO.getRoleName(); if (ObjectUtils.isEmpty(roleName)) { @@ -96,6 +100,7 @@ @ApiOperation(value = "删除角色") @DeleteMapping("role") @OperLog(operModul = "角色管理",operType = 3) public R deleteRoleBackstage(@RequestBody RoleVO roleVO){ Long roleId = roleVO.getRoleId(); if (null==roleId||0==roleId) { @@ -104,12 +109,41 @@ return userService.deleteRoleBackstage(roleVO); } @ApiOperation(value = "运营平台权限配置列表") @ApiOperation(value = "运营平台权限配置列表",response = SysMenuVO.class) @GetMapping("listmenu") public R listMenuBackstage(){ int type=1; return userService.listMenuBackstage(type); } @ApiOperation(value = "设置角色的权限") @PutMapping("menu") @OperLog(operModul = "角色管理",operType = 2) public R putMenuRole(@RequestBody @Validated MenuRoleVO menuRoleVO){ return userService.putMenuRole(menuRoleVO); } @ApiOperation(value = "分页展示操作日志",response = SysOperLogVO.class) @PostMapping("pageoperlog") public R pageOperLog(@RequestBody SysOperLogVO sysOperLogVO){ sysOperLogVO.setCommunityId(0l); return userService.pageOperLog(sysOperLogVO); } @ApiOperation(value = "用户协议",response = SysUserAgreementVO.class) @GetMapping("listagreement") public R listAgreement(){ return userService.listAgreement(); } @ApiOperation(value = "编辑用户协议") @PutMapping("agreement") public R putAgreement(@RequestBody SysUserAgreementVO sysUserAgreementVO){ Long id = sysUserAgreementVO.getId(); if (null==id||id==0) { return R.fail("协议主键不能为空"); } return userService.putAgreement(sysUserAgreementVO); } } springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -106,6 +106,10 @@ <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> </dependencies> springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/OperLog.java
New file @@ -0,0 +1,19 @@ package com.panzhihua.common.interfaces; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 自定义操作日志注解 * @author wu */ @Target(ElementType.METHOD) //注解放置的目标位置,METHOD是可注解在方法级别上 @Retention(RetentionPolicy.RUNTIME) //注解在哪个阶段执行 @Documented public @interface OperLog { String operModul() default ""; // 操作模块 int operType() default 0; // 操作类型 业务类型(0其它 1新增 2修改 3删除) } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/MenuRoleVO.java
New file @@ -0,0 +1,28 @@ package com.panzhihua.common.model.vos.user; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import java.util.List; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 设置角色权限 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 09:29 **/ @Data @ApiModel("设置角色权限") public class MenuRoleVO { @ApiModelProperty("是否全选 1 是 0 否 ") @NotNull(message = "是否全选不能为空") private Integer isAll; @ApiModelProperty("所有菜单id集合") private List<Long> menuIds; @ApiModelProperty("被操作的角色id") @Min(value = 1,message = "角色id不能为空") private Long roleId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysMenuVO.java
@@ -71,5 +71,6 @@ @ApiModelProperty("备注") private String remark; @ApiModelProperty("子菜单") private List<SysMenuVO> sysMenuVOList; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysOperLogVO.java
New file @@ -0,0 +1,80 @@ package com.panzhihua.common.model.vos.user; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 操作日志 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 10:52 **/ @Data @ApiModel("操作日志") public class SysOperLogVO { @ApiModelProperty("日志主键") private Long operId; @ApiModelProperty("模块标题") private String title; @ApiModelProperty("业务类型(0其它 1新增 2修改 3删除)") private Integer businessType; @ApiModelProperty("方法名称") private String method; @ApiModelProperty("请求方式") private String requestMethod; @ApiModelProperty("操作类别(0其它 1后台用户 2手机端用户)") private Integer operatorType; @ApiModelProperty("操作人员") private String operName; @ApiModelProperty("部门名称") private String deptName; @ApiModelProperty("请求url") private String operUrl; @ApiModelProperty("主机地址") private String operIp; @ApiModelProperty("操作地点") private String operLocation; @ApiModelProperty("请求参数") private String operParam; @ApiModelProperty("返回参数") private String jsonResult; @ApiModelProperty("操作状态(0正常 1异常)") private Integer status; @ApiModelProperty("错误消息") private String errorMsg; @ApiModelProperty("操作时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date operTime; @ApiModelProperty("社区id") private Long communityId; @ApiModelProperty("操作账户") private String account; @ApiModelProperty("当前页数") private Long pageNum; @ApiModelProperty("每页记录数") private Long pageSize; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserAgreementVO.java
New file @@ -0,0 +1,39 @@ package com.panzhihua.common.model.vos.user; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 用户协议 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 15:49 **/ @Data @ApiModel("用户协议") public class SysUserAgreementVO { @ApiModelProperty("id") private Long id; @ApiModelProperty("所属app 1居民端app 2网格员端app 3商家端app") private Integer type; @ApiModelProperty("协议内容") private String content; @ApiModelProperty("create_at") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createAt; @ApiModelProperty("update_at") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateAt; @ApiModelProperty("协议名字") private String name; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -281,4 +281,43 @@ */ @PostMapping("/role/listmenubackstage") R listMenuBackstage(@RequestParam("type")int type); /** * 设置角色的权限 * @param menuRoleVO 用户设置的权限id * @return 设置结果 */ @PostMapping("/role/putmenurole") R putMenuRole(@RequestBody MenuRoleVO menuRoleVO); /** * 保存操作日志 * @param operlog 日志内容 * @return 保存结果 */ @PostMapping("addoperlog") R addOperLog(@RequestBody SysOperLogVO operlog); /** * 分页展示操作日志 * @param sysOperLogVO 分页参数 * @return 分页集合 */ @PostMapping("pageoperlog") R pageOperLog(@RequestBody SysOperLogVO sysOperLogVO); /** * 用户协议 * @return 协议集合 */ @PostMapping("listagreement") R listAgreement(); /** * 编辑用户协议 * @param sysUserAgreementVO 编辑内容 * @return 编辑结果 */ @PostMapping("putagreement") R putAgreement(@RequestBody SysUserAgreementVO sysUserAgreementVO); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java
New file @@ -0,0 +1,173 @@ package com.panzhihua.common.utlis; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import javax.servlet.http.HttpServletRequest; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; /** * @ClassName: IPUtil * @version 1.0 * @Desc: Ip工具类 * @author huaping hu * @date 2016年6月1日下午5:26:56 * @history v1.0 * */ @Slf4j public class IPUtil { /** * * 描述:获取IP地址 * @author huaping hu * @date 2016年6月1日下午5:25:44 * @param request * @return */ public static String getIpAddress(HttpServletRequest request){ String ip = request.getHeader("x-forwarded-for"); if(ip == null || ip.length() ==0 || "nuknown".equalsIgnoreCase(ip)){ ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() ==0 || "nuknown".equalsIgnoreCase(ip)){ ip = request.getHeader("WL-Proxy-Client-IP"); } if(ip == null || ip.length() ==0 || "nuknown".equalsIgnoreCase(ip)){ ip = request.getRemoteAddr(); } return ip; } /** * * 描述:获取IP+[IP所属地址] * @author huaping hu * @date 2016年6月1日下午6:01:09 * @param request * @return */ public static String getIpBelongAddress(HttpServletRequest request){ String ip = getIpAddress(request); String belongIp = getIPbelongAddress(ip); return ip + belongIp; } /** * * 描述:获取IP所属地址 * @author huaping hu * @date 2016年6月1日下午5:59:43 * @param ip * @return */ public static String getIPbelongAddress(String ip){ String ipAddress = "[]"; try{ //淘宝提供的服务地址 String context = call("http://ip.taobao.com/service/getIpInfo.php?ip="+ip); JSONObject fromObject = JSONObject.parseObject(context); String code = fromObject.getString("code"); if(code.equals("0")){ JSONObject jsonObject = fromObject.getJSONObject("data"); ipAddress = "["+jsonObject.get("country")+"/" +jsonObject.get("city")+"]"; } }catch(Exception e){ log.error("获取IP所属地址出错",e); e.printStackTrace(); } return ipAddress; } /** * * 描述:获取Ip所属地址 * @author huaping hu * @date 2016年6月1日下午5:38:55 * @param urlStr * @return */ public static String call( String urlStr ){ try { URL url = new URL(urlStr); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); httpCon.setConnectTimeout(3000); httpCon.setDoInput(true); httpCon.setRequestMethod("GET"); int code = httpCon.getResponseCode(); if(code == 200){ return streamConvertToSting(httpCon.getInputStream()); } } catch (Exception e) { log.error("获取IP所属地址出错",e); e.printStackTrace(); } return null; } /** * * 描述:将InputStream转换成String * @author huaping hu * @date 2016年6月1日下午5:51:53 * @param is * @return */ public static String streamConvertToSting(InputStream is){ String tempStr = ""; try { if(is == null) return null; ByteArrayOutputStream arrayOut = new ByteArrayOutputStream(); byte[] by = new byte[1024]; int len = 0; while((len = is.read(by))!=-1){ arrayOut.write(by,0,len); } tempStr = new String(arrayOut.toByteArray()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return tempStr; } public static void main(String[] args) { String context = call("http://ip.taobao.com/service/getIpInfo.php?ip=120.192.182.1"); JSONObject fromObject = JSONObject.parseObject(context); JSONObject jsonObject = fromObject.getJSONObject("data"); System.out.println(fromObject); System.err.println(jsonObject.get("city")); } } springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/interfaces/OperLog.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/MenuRoleVO.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysMenuVO.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysOperLogVO.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysUserAgreementVO.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/service/user/UserService.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/utlis/IPUtil.classBinary files differ
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java
@@ -26,6 +26,7 @@ "w.sponsor_phone,\n" + "w.wish_name,\n" + "w.`status`,\n" + "w.`photo_path_list`,\n" + "count(wu.id)star_num,\n" + "w.`detail`,\n" + "w.form,\n" + @@ -76,7 +77,7 @@ "w.sponsor_phone,\n" + "w.`status`,\n" + "w.wish_name,\n" + "count(wu.id)startNum,\n" + "count(wu.id)starNum,\n" + "w.detail,\n" + "w.photo_path_list,\n" + "su.`name` responsible_name,\n" + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java
@@ -78,6 +78,10 @@ @Override public R detailMicroWish(Long id, Long userId) { ComActMicroWishVO comActMicroWishVO = comActMicroWishDAO.detailMicroWish(id); Integer starNum = comActMicroWishVO.getStarNum(); if (null==starNum) { comActMicroWishVO.setStarNum(0); } if (ObjectUtils.isEmpty(comActMicroWishVO)) { return R.fail("心愿不存在"); } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/RoleApi.java
@@ -2,6 +2,7 @@ import com.panzhihua.common.model.vos.MenuVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.user.MenuRoleVO; import com.panzhihua.common.model.vos.user.RoleVO; import com.panzhihua.service_user.service.RoleService; import org.springframework.web.bind.annotation.*; @@ -89,4 +90,14 @@ public R listMenuBackstage(@RequestParam("type")int type){ return roleService.listMenuBackstage(type); } /** * 设置角色的权限 * @param menuRoleVO 用户设置的权限id * @return 设置结果 */ @PostMapping("putmenurole") public R putMenuRole(@RequestBody MenuRoleVO menuRoleVO){ return roleService.putMenuRole(menuRoleVO); } } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
@@ -2,10 +2,7 @@ import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.model.vos.user.ChangePasswordVO; import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.common.model.vos.user.*; import com.panzhihua.service_user.service.UserService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -283,4 +280,43 @@ public R pageUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO){ return userService.pageUserBackstage(administratorsUserVO); } /** * 保存操作日志 * @param operlog 日志内容 * @return 保存结果 */ @PostMapping("addoperlog") public R addOperLog(@RequestBody SysOperLogVO operlog){ return userService.addOperLog(operlog); } /** * 分页展示操作日志 * @param sysOperLogVO 分页参数 * @return 分页集合 */ @PostMapping("pageoperlog") public R pageOperLog(@RequestBody SysOperLogVO sysOperLogVO){ return userService.pageOperLog(sysOperLogVO); } /** * 用户协议 * @return 协议集合 */ @PostMapping("listagreement") public R listAgreement(){ return userService.listAgreement(); } /** * 编辑用户协议 * @param sysUserAgreementVO 编辑内容 * @return 编辑结果 */ @PostMapping("putagreement") public R putAgreement(@RequestBody SysUserAgreementVO sysUserAgreementVO){ return userService.putAgreement(sysUserAgreementVO); } } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java
New file @@ -0,0 +1,23 @@ package com.panzhihua.service_user.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.model.vos.user.SysOperLogVO; import com.panzhihua.service_user.model.dos.SysOperLogDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 操作日志 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 10:37 **/ @Mapper public interface SysOperLogDAO extends BaseMapper<SysOperLogDO> { @Select("select * from sys_oper_log where community_id=#{sysOperLogVO.communityId} order by oper_time desc ") IPage<SysOperLogVO> pageOperLog(Page page, @Param("sysOperLogVO") SysOperLogVO sysOperLogVO); } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysRoleMenuDAO.java
New file @@ -0,0 +1,15 @@ package com.panzhihua.service_user.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.service_user.model.dos.SysRoleMenuDO; import org.apache.ibatis.annotations.Mapper; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 角色菜单关系 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 09:51 **/ @Mapper public interface SysRoleMenuDAO extends BaseMapper<SysRoleMenuDO> { } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserAgreementDAO.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.service_user.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.panzhihua.service_user.model.dos.SysUserAgreementDO; import com.panzhihua.service_user.model.dos.SysUserRoleDO; import org.apache.ibatis.annotations.Mapper; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 用户协议 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 15:52 **/ @Mapper public interface SysUserAgreementDAO extends BaseMapper<SysUserAgreementDO> { } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysOperLogDO.java
New file @@ -0,0 +1,110 @@ package com.panzhihua.service_user.model.dos; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 操作日志 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 10:34 **/ @Data @TableName("sys_oper_log") public class SysOperLogDO implements Serializable { private static final long serialVersionUID = 1L; /** * 日志主键 */ private Long operId; /** * 模块标题 */ private String title; /** * 业务类型(0其它 1新增 2修改 3删除) */ private Integer businessType; /** * 方法名称 */ private String method; /** * 请求方式 */ private String requestMethod; /** * 操作类别(0其它 1后台用户 2手机端用户) */ private Integer operatorType; /** * 操作人员 */ private String operName; /** * 部门名称 */ private String deptName; /** * 请求url */ private String operUrl; /** * 主机地址 */ private String operIp; /** * 操作地点 */ private String operLocation; /** * 请求参数 */ private String operParam; /** * 返回参数 */ private String jsonResult; /** * 操作状态(0正常 1异常) */ private Integer status; /** * 错误消息 */ private String errorMsg; /** * 操作时间 */ private Date operTime; /** * 操作社区id 0 标识运营后台 */ private Long communityId; /** * 操作账户 */ private String account; } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleMenuDO.java
New file @@ -0,0 +1,32 @@ package com.panzhihua.service_user.model.dos; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 角色菜单关系 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 09:49 **/ @Data @TableName("sys_role_menu") public class SysRoleMenuDO implements Serializable { private static final long serialVersionUID = 1L; /** * 角色id */ private Long roleId; /** * 菜单id */ private Long menuId; /** * 协议名字 */ private String name; } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserAgreementDO.java
New file @@ -0,0 +1,54 @@ package com.panzhihua.service_user.model.dos; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 用户协议 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-12-25 15:46 **/ @Data @TableName("sys_user_agreement") public class SysUserAgreementDO implements Serializable { private static final long serialVersionUID = 1L; /** * id */ private Long id; /** * 所属app 1居民端app 2网格员端app 3商家端app */ private Integer type; /** * 协议内容 */ private String content; /** * create_at */ @TableField(fill = FieldFill.INSERT) private Date createAt; /** * update_at */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateAt; /** * 协议名字 */ private String name; } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/RoleService.java
@@ -2,6 +2,7 @@ import com.panzhihua.common.model.vos.MenuVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.user.MenuRoleVO; import com.panzhihua.common.model.vos.user.RoleVO; import java.util.List; @@ -56,4 +57,10 @@ * @return 菜单集合 */ R listMenuBackstage(int type); /** * 设置角色的权限 * @param menuRoleVO 用户设置的权限id * @return 设置结果 */ R putMenuRole(MenuRoleVO menuRoleVO); } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
@@ -2,10 +2,7 @@ import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.model.vos.user.ChangePasswordVO; import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.common.model.vos.user.*; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -176,4 +173,28 @@ * @return 后台用户 */ R pageUserBackstage(AdministratorsUserVO administratorsUserVO); /** * 保存操作日志 * @param operlog 日志内容 * @return 保存结果 */ R addOperLog(SysOperLogVO operlog); /** * 分页展示操作日志 * @param sysOperLogVO 分页参数 * @return 分页集合 */ R pageOperLog(SysOperLogVO sysOperLogVO); /** * 用户协议 * @return 协议集合 */ R listAgreement(); /** * 编辑用户协议 * @param sysUserAgreementVO 编辑内容 * @return 编辑结果 */ R putAgreement(SysUserAgreementVO sysUserAgreementVO); } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java
@@ -1,25 +1,32 @@ package com.panzhihua.service_user.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.panzhihua.common.constants.SecurityConstants; import com.panzhihua.common.model.vos.MenuVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.user.MenuRoleVO; import com.panzhihua.common.model.vos.user.RoleVO; import com.panzhihua.common.model.vos.user.SysMenuVO; import com.panzhihua.service_user.dao.RoleDAO; import com.panzhihua.service_user.dao.SysMenuDAO; import com.panzhihua.service_user.dao.SysRoleMenuDAO; import com.panzhihua.service_user.dao.SysUserRoleDAO; import com.panzhihua.service_user.model.dos.SysMenuDO; import com.panzhihua.service_user.model.dos.SysRoleDO; import com.panzhihua.service_user.model.dos.SysRoleMenuDO; import com.panzhihua.service_user.model.dos.SysUserRoleDO; import com.panzhihua.service_user.service.RoleService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -36,6 +43,10 @@ private SysUserRoleDAO sysUserRoleDAO; @Resource private SysMenuDAO sysMenuDAO; @Resource private SysRoleMenuDAO sysRoleMenuDAO; @Resource private StringRedisTemplate stringRedisTemplate; /** * 获取平台所有的菜单按钮权限 * @@ -159,8 +170,51 @@ sysMenuDOS.forEach(sysMenuDO -> { SysMenuVO sysMenuVO=new SysMenuVO(); BeanUtils.copyProperties(sysMenuDO,sysMenuVO); Long menuId = sysMenuDO.getMenuId(); List<SysMenuDO> sysMenuDOS1 = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getParentId, menuId).orderByAsc(SysMenuDO::getOrderNum)); List<SysMenuVO> sysMenuVOS1=new ArrayList<>(); if (!ObjectUtils.isEmpty(sysMenuDOS1)) { sysMenuDOS1.forEach(sysMenuDO1 -> { SysMenuVO sysMenuVO1=new SysMenuVO(); BeanUtils.copyProperties(sysMenuDO1,sysMenuVO1); sysMenuVOS1.add(sysMenuVO1); }); sysMenuVO.setSysMenuVOList(sysMenuVOS1); } sysMenuVOS.add(sysMenuVO); }); } return null; return R.ok(sysMenuVOS); } /** * 设置角色的权限 * * @param menuRoleVO 用户设置的权限id * @return 设置结果 */ @Override @Transactional(rollbackFor = Exception.class) public R putMenuRole(MenuRoleVO menuRoleVO) { List<Long>menuIds=new ArrayList<>(); Long roleId = menuRoleVO.getRoleId(); // 删除旧的 sysRoleMenuDAO.delete(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId)); // 创建新的 Integer isAll = menuRoleVO.getIsAll(); if (isAll.intValue()==1) { menuIds = sysMenuDAO.selectList(null).stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList()); }else{ menuIds=menuRoleVO.getMenuIds(); } for(int i=0;i<menuIds.size();i++){ SysRoleMenuDO sysRoleMenuDO=new SysRoleMenuDO(); sysRoleMenuDO.setMenuId(menuIds.get(i)); sysRoleMenuDO.setRoleId(roleId); sysRoleMenuDAO.insert(sysRoleMenuDO); } // 清除缓存 stringRedisTemplate.delete(SecurityConstants.ROLE_ALL); return R.ok(); } } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -11,10 +11,7 @@ import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO; import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.model.vos.user.ChangePasswordVO; import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.common.model.vos.user.*; import com.panzhihua.service_user.dao.*; import com.panzhihua.service_user.model.dos.*; import com.panzhihua.service_user.service.UserService; @@ -53,6 +50,10 @@ private StringRedisTemplate stringRedisTemplate; @Resource private SysUserRoleDAO sysUserRoleDAO; @Resource private SysOperLogDAO sysOperLogDAO; @Resource private SysUserAgreementDAO sysUserAgreementDAO; /** @@ -744,6 +745,83 @@ return R.ok(iPage); } /** * 保存操作日志 * * @param operlog 日志内容 * @return 保存结果 */ @Override public R addOperLog(SysOperLogVO operlog) { SysOperLogDO sysOperLogDO=new SysOperLogDO(); BeanUtils.copyProperties(operlog,sysOperLogDO); int insert = sysOperLogDAO.insert(sysOperLogDO); if (insert>0) { return R.ok(); } return R.fail(); } /** * 分页展示操作日志 * * @param sysOperLogVO 分页参数 * @return 分页集合 */ @Override public R pageOperLog(SysOperLogVO sysOperLogVO) { Page page = new Page<>(); Long pageNum = sysOperLogVO.getPageNum(); Long pageSize = sysOperLogVO.getPageSize(); if (null==pageNum||pageNum==0) { pageNum = 1l; } if (null==pageSize||pageSize==0) { pageSize = 10l; } page.setSize(pageSize); page.setCurrent(pageNum); IPage<SysOperLogVO> iPage = sysOperLogDAO.pageOperLog(page, sysOperLogVO); return R.ok(iPage); } /** * 用户协议 * * @return 协议集合 */ @Override public R listAgreement() { List<SysUserAgreementDO> sysUserAgreementDOS = sysUserAgreementDAO.selectList(null); if (ObjectUtils.isEmpty(sysUserAgreementDOS)) { return R.fail(); } List<SysUserAgreementVO> sysUserAgreementVOS=new ArrayList<>(); sysUserAgreementDOS.forEach(sysUserAgreementDO -> { SysUserAgreementVO sysUserAgreementVO=new SysUserAgreementVO(); BeanUtils.copyProperties(sysUserAgreementDO,sysUserAgreementVO); sysUserAgreementVOS.add(sysUserAgreementVO); }); return R.ok(sysUserAgreementVOS); } /** * 编辑用户协议 * * @param sysUserAgreementVO 编辑内容 * @return 编辑结果 */ @Override public R putAgreement(SysUserAgreementVO sysUserAgreementVO) { SysUserAgreementDO sysUserAgreementDO=new SysUserAgreementDO(); BeanUtils.copyProperties(sysUserAgreementVO,sysUserAgreementDO); int update = sysUserAgreementDAO.updateById(sysUserAgreementDO); if (update==0) { return R.fail("协议不存在"); } return R.ok(); } public static void main(String[] args) { String encode = new BCryptPasswordEncoder().encode("123456"); System.out.println(encode);