diff --git a/device-manager/src/main/java/com/mortals/xhx/annotation/DataPermission.java b/device-manager/src/main/java/com/mortals/xhx/annotation/DataPermission.java new file mode 100644 index 0000000000000000000000000000000000000000..99d21e4306eadf4d80b3d05be0bc996ffb5b2d68 --- /dev/null +++ b/device-manager/src/main/java/com/mortals/xhx/annotation/DataPermission.java @@ -0,0 +1,24 @@ +package com.mortals.xhx.annotation; + +import java.lang.annotation.*; + +/** + * + * @author: zxfei + * @date: 2024/5/15 16:09 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.METHOD}) +@Documented +public @interface DataPermission { + /** + * 鏁版嵁鏉冮檺绫诲瀷 + * 1 涓婁笅绾ф巿鏉� 2 鏁版嵁鑼冨洿鎺堟潈 + */ + String permissionType() default "2"; + + /** + * 閰嶇疆鑿滃崟鐨勭粍浠惰矾寰�,鐢ㄤ簬鏁版嵁鏉冮檺 + */ + String componentRoute() default ""; +} diff --git a/device-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthUserInterceptor.java b/device-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthUserInterceptor.java index 1595efc54f43b3e4f306ceb6182d13563ab00cfa..510fc7cc8ad76ce9c56cc9bed4158aba7d09ac49 100644 --- a/device-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthUserInterceptor.java +++ b/device-manager/src/main/java/com/mortals/xhx/base/framework/interceptor/AuthUserInterceptor.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.mortals.framework.annotation.UnAuth; import com.mortals.framework.common.Rest; import com.mortals.framework.service.IAuthTokenService; +import com.mortals.framework.service.ICacheService; import com.mortals.framework.service.IUser; import com.mortals.framework.util.AESUtil; import com.mortals.framework.utils.ServletUtils; @@ -33,6 +34,8 @@ public class AuthUserInterceptor extends BaseInterceptor { private InterceptorConfig config; @Autowired private IAuthTokenService authTokenService; + @Autowired + private ICacheService cacheService; @Override public int getOrder() { diff --git a/device-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java b/device-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java index 1c3aadfd75ca02f74d2561d2f9bcd4cd3af4f995..f491e678b00e3a11efe463778aa9b443167619fc 100644 --- a/device-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java +++ b/device-manager/src/main/java/com/mortals/xhx/base/system/role/web/RoleController.java @@ -5,21 +5,18 @@ import com.alibaba.fastjson.JSONObject; import com.mortals.framework.common.IBaseEnum; import com.mortals.framework.common.code.UserType; import com.mortals.framework.model.Context; - import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; -import com.mortals.framework.web.BasePhpCRUDJsonMappingController; -import com.mortals.xhx.base.system.role.model.RoleQuery; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import com.mortals.framework.web.BaseCRUDJsonMappingController; import com.mortals.xhx.base.system.role.model.RoleEntity; import com.mortals.xhx.base.system.role.model.RoleUserEntity; import com.mortals.xhx.base.system.role.service.RoleService; import com.mortals.xhx.base.system.role.service.RoleUserService; import com.mortals.xhx.common.code.RoleType; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java index e74c0e0dc0ced1a125ec8713dd2f916c93e82258..a794e62808c033f7433fea01d31378e4901e6d6c 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/service/impl/DeviceServiceImpl.java @@ -50,6 +50,7 @@ import org.springframework.amqp.rabbit.listener.DirectMessageListenerContainer; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; @@ -74,6 +75,7 @@ import static java.math.BigDecimal.ROUND_HALF_DOWN; public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, DeviceEntity, Long> implements DeviceService { @Autowired + @Lazy private ProductService productService; @Autowired private PlatformService platformService; @@ -81,7 +83,6 @@ public class DeviceServiceImpl extends AbstractCRUDCacheServiceImpl<DeviceDao, D private ISiteFeign siteFeign; @Autowired private DeviceLogService deviceLogService; - @Autowired private MessageProducer messageProducer; @Autowired diff --git a/device-manager/src/main/java/com/mortals/xhx/module/device/web/DeviceController.java b/device-manager/src/main/java/com/mortals/xhx/module/device/web/DeviceController.java index 2f0fdc72af84b3d979a7b627c8926dd14d6e1069..f6d759f8e0c2fa059cce057bd9c6ee01d5d21ac8 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/device/web/DeviceController.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/device/web/DeviceController.java @@ -10,6 +10,7 @@ import com.mortals.framework.model.Context; import com.mortals.framework.model.OrderCol; import com.mortals.framework.util.FileUtil; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; +import com.mortals.xhx.annotation.DataPermission; import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.upload.service.UploadService; import com.mortals.xhx.common.code.*; @@ -119,6 +120,12 @@ public class DeviceController extends BaseCRUDJsonBodyMappingController<DeviceSe super.init(model, context); } + @Override + @DataPermission + public Rest<Object> list(@RequestBody DeviceEntity query) { + return super.list(query); + } + @Override protected void doListBefore(DeviceEntity query, Map<String, Object> model, Context context) throws AppException { if (ObjectUtils.isEmpty(query.getOrderColList())) { diff --git a/device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductServiceImpl.java index 3df0ad0e6cf36ce28e0f70d13b924c11ac40c033..d1c6043684341e75ee0c31034e2ca21543e3031a 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductServiceImpl.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductServiceImpl.java @@ -18,7 +18,6 @@ import com.mortals.xhx.common.key.QueueKey; import com.mortals.xhx.common.model.DefaultTbQueueMsgHeaders; import com.mortals.xhx.common.model.MessageHeader; import com.mortals.xhx.common.utils.BeanUtil; -import com.mortals.xhx.feign.site.ISiteFeign; import com.mortals.xhx.module.device.model.DeviceEntity; import com.mortals.xhx.module.device.model.DeviceLogEntity; import com.mortals.xhx.module.device.model.DeviceQuery; @@ -39,6 +38,7 @@ import com.mortals.xhx.queue.TbQueueMsgHeaders; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; @@ -65,8 +65,10 @@ import static com.mortals.xhx.common.key.ErrorCode.DEVICE_VERSION_UNEXIST_CONTEN public class ProductServiceImpl extends AbstractCRUDCacheServiceImpl<ProductDao, ProductEntity, Long> implements ProductService { @Autowired + @Lazy private ProductVersionService productVersionService; @Autowired + @Lazy private DeviceService deviceService; @Autowired private PlatformService platformService; @@ -74,8 +76,7 @@ public class ProductServiceImpl extends AbstractCRUDCacheServiceImpl<ProductDao, private DeviceLogService deviceLogService; @Autowired private MessageProducer messageProducer; - @Autowired - private ISiteFeign siteFeign; + @Override protected String getExtKey(ProductEntity data) { diff --git a/device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductVersionServiceImpl.java b/device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductVersionServiceImpl.java index a7338dbc937a277aeff61dabea3d6438ac7613a4..df99b668fcb1b059a4c824a9b8a6050002dab380 100644 --- a/device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductVersionServiceImpl.java +++ b/device-manager/src/main/java/com/mortals/xhx/module/product/service/impl/ProductVersionServiceImpl.java @@ -20,7 +20,9 @@ import com.mortals.xhx.common.model.DefaultTbQueueMsgHeaders; import com.mortals.xhx.common.model.MessageHeader; import com.mortals.xhx.common.pdu.site.SitePdu; import com.mortals.xhx.feign.site.ISiteFeign; -import com.mortals.xhx.module.device.model.*; +import com.mortals.xhx.module.device.model.DeviceEntity; +import com.mortals.xhx.module.device.model.DeviceLogEntity; +import com.mortals.xhx.module.device.model.DeviceQuery; import com.mortals.xhx.module.device.service.DeviceLogService; import com.mortals.xhx.module.device.service.DeviceService; import com.mortals.xhx.module.product.dao.ProductVersionDao; diff --git a/device-manager/src/main/resources/config/mybatis-sqlmap-config.xml b/device-manager/src/main/resources/config/mybatis-sqlmap-config.xml index c92e8cf3d325487dc3ca2703bc18a988d19c0b5f..6fc59dfa8ea15be41e804d4fcc20e1c6e2bff0f6 100644 --- a/device-manager/src/main/resources/config/mybatis-sqlmap-config.xml +++ b/device-manager/src/main/resources/config/mybatis-sqlmap-config.xml @@ -17,9 +17,9 @@ <property name="showSql" value="MySql" /> </plugin> -<!-- <plugin interceptor="com.mortals.framework.thirty.mybatis.LogInterceptor"> + <plugin interceptor="com.mortals.framework.thirty.mybatis.LogInterceptor"> <property name="enableExecutorTime" value="true" /> - <property name="showSql" value="false" /> - </plugin>--> + <property name="showSql" value="true" /> + </plugin> </plugins> </configuration> \ No newline at end of file diff --git a/device-manager/src/main/resources/sqlmap/module/device/DeviceMapper.xml b/device-manager/src/main/resources/sqlmap/module/device/DeviceMapper.xml index c1e48a8d77cb42b6e20491d9fbe88792b1febeb7..2c1dd65508c8b4065b90b90bacb02849a1f521d9 100644 --- a/device-manager/src/main/resources/sqlmap/module/device/DeviceMapper.xml +++ b/device-manager/src/main/resources/sqlmap/module/device/DeviceMapper.xml @@ -1067,6 +1067,10 @@ <!-- 鏉′欢鏄犲皠-浠e弬鏁� --> <sql id="_condition_param_"> <bind name="conditionParamRef" value="${_conditionParam_}"/> + <if test="permissionSql != null and permissionSql != ''"> + ${permissionSql} + </if> + <if test="conditionParamRef.containsKey('id')"> <if test="conditionParamRef.id != null"> ${_conditionType_} a.id=#{${_conditionParam_}.id} diff --git a/device-manager/src/test/java/com/mortals/httpclient/system.http b/device-manager/src/test/java/com/mortals/httpclient/system.http index 059ad9a800475167fdf1c61d3586e0c4e85fffd2..67bb27c4a9e682eb1bc8c212bc73445da51de4ec 100644 --- a/device-manager/src/test/java/com/mortals/httpclient/system.http +++ b/device-manager/src/test/java/com/mortals/httpclient/system.http @@ -4,9 +4,8 @@ POST {{baseUrl}}/login/login Content-Type: application/json { - "loginName":"admin", - "password":"admin", - "securityCode":"8888" + "loginName":"xinhx", + "password":"xhxADMIN8@a" } > {% @@ -15,6 +14,17 @@ client.global.set("authToken", JSON.parse(response.body).data.token); %} +###璁惧鍒楄〃 +POST {{baseUrl}}/device/list +Authorization: {{authToken}} +Content-Type: application/json + +{ + "page": 1, + "size": 10, + "source": 1 +} + ###棣栭〉 POST {{baseUrl}}/login/index