huanghongfa
2020-12-25 079499c3f90e813e59ebeba62a22ca930e0df370
运营后台系统管理完成
17个文件已修改
17个文件已添加
1275 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/.idea/workspace.xml 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java 227 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/SystemManagementApi.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/OperLog.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/MenuRoleVO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysMenuVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysOperLogVO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserAgreementVO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/interfaces/OperLog.class 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/MenuRoleVO.class 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysMenuVO.class 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysOperLogVO.class 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysUserAgreementVO.class 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/service/user/UserService.class 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/utlis/IPUtil.class 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/RoleApi.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysRoleMenuDAO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserAgreementDAO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysOperLogDO.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleMenuDO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserAgreementDO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/RoleService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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.class
Binary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/MenuRoleVO.class
Binary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysMenuVO.class
Binary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysOperLogVO.class
Binary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/model/vos/user/SysUserAgreementVO.class
Binary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/service/user/UserService.class
Binary files differ
springcloud_k8s_panzhihuazhihuishequ/common/target/classes/com/panzhihua/common/utlis/IPUtil.class
Binary 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);