Explorar el Código

操作员用户列表

skyline hace 2 años
padre
commit
add4552f39

+ 5 - 0
admin/src/main/java/com/kym/admin/controller/AdminUserController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSONObject;
 import com.kym.common.R;
 import com.kym.common.annotation.SysLog;
 import com.kym.common.controller.IController;
+import com.kym.entity.admin.queryParams.CommonQueryParam;
 import com.kym.service.admin.AdminUserService;
 import org.springframework.web.bind.annotation.*;
 
@@ -45,4 +46,8 @@ public class AdminUserController extends IController {
         return resp(adminUserService::profile);
     }
 
+    @GetMapping("listAdminUser")
+    R<?> listAdminUser(@ModelAttribute CommonQueryParam params) {
+        return R.success(adminUserService.listAdminUser(params));
+    }
 }

+ 1 - 1
entity/src/main/java/com/kym/entity/admin/queryParams/CommonQueryParam.java

@@ -8,7 +8,7 @@ import lombok.Data;
  * @date 2023-08-22 18:56
  */
 @Data
-public class CommonQueryParam {
+public class CommonQueryParam extends PageParams {
     /**
      * 手机号
      */

+ 3 - 1
mapper/src/main/java/com/kym/mapper/admin/AdminUserMapper.java

@@ -2,7 +2,7 @@ package com.kym.mapper.admin;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kym.entity.admin.AdminUser;
-import com.kym.entity.admin.Role;
+import com.kym.entity.admin.queryParams.CommonQueryParam;
 import com.kym.entity.admin.vo.AdminUserVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -18,4 +18,6 @@ import java.util.List;
  */
 public interface AdminUserMapper extends BaseMapper<AdminUser> {
     List<AdminUserVo> listUserPermissions(@Param("userId") Long loginId);
+
+    List<AdminUserVo> listAdminUser(@Param("params") CommonQueryParam params);
 }

+ 31 - 0
mapper/src/main/resources/mappers/admin/AdminUserMapper.xml

@@ -58,4 +58,35 @@
         WHERE t1.id = #{userId}
     </select>
 
+
+    <select id="listAdminUser" resultMap="AdminUserVoMap" parameterType="com.kym.entity.admin.queryParams.CommonQueryParam">
+        SELECT
+        t1.*,
+        t4.role_name,
+        t4.permissions
+        FROM
+        t_admin_user t1
+        LEFT JOIN
+        (SELECT
+        t2.admin_user_id,
+        t3.role_name,
+        t3.permissions
+        FROM
+        t_admin_user_role t2
+        LEFT JOIN t_role t3
+        ON t2.role_id = t3.id) t4
+        ON t1.id = t4.admin_user_id
+        <where>
+            <if test="params.username != null">
+                and t1.username = #{params.username}
+            </if>
+            <if test="params.mobilePhone != null">
+                and t1.mobile_phone = #{params.mobilePhone}
+            </if>
+            <if test="params.status != null">
+                and t1.status = #{params.mobilePhone}
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 7 - 3
service/src/main/java/com/kym/service/admin/AdminUserService.java

@@ -1,10 +1,11 @@
 package com.kym.service.admin;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.kym.common.R;
 import com.kym.entity.admin.AdminUser;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.kym.entity.admin.Role;
+import com.kym.entity.admin.queryParams.CommonQueryParam;
 import com.kym.entity.admin.vo.AdminUserVo;
+import com.kym.entity.common.PageBean;
 
 import java.util.List;
 
@@ -18,11 +19,14 @@ import java.util.List;
  */
 public interface AdminUserService extends IService<AdminUser> {
 
-    R login(String mobilePhone,String password);
+    R login(String mobilePhone, String password);
+
     R logout(Long id);
 
 
     Object profile();
 
     List<AdminUserVo> listUserPermissions(Long loginId);
+
+    PageBean<AdminUserVo> listAdminUser(CommonQueryParam params);
 }

+ 10 - 0
service/src/main/java/com/kym/service/admin/impl/AdminUserServiceImpl.java

@@ -7,10 +7,13 @@ import cn.hutool.crypto.digest.DigestAlgorithm;
 import cn.hutool.crypto.digest.Digester;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
 import com.kym.common.R;
 import com.kym.common.constant.ResponseEnum;
 import com.kym.entity.admin.AdminUser;
+import com.kym.entity.admin.queryParams.CommonQueryParam;
 import com.kym.entity.admin.vo.AdminUserVo;
+import com.kym.entity.common.PageBean;
 import com.kym.mapper.admin.AdminUserMapper;
 import com.kym.service.admin.AdminUserRoleService;
 import com.kym.service.admin.AdminUserService;
@@ -92,4 +95,11 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
     public List<AdminUserVo> listUserPermissions(Long loginId) {
         return baseMapper.listUserPermissions(loginId);
     }
+
+    @Override
+    public PageBean<AdminUserVo> listAdminUser(CommonQueryParam params) {
+        PageHelper.startPage(params.getPageNum(), params.getPageSize());
+        var list = baseMapper.listAdminUser(params);
+        return new PageBean<>(list);
+    }
 }

+ 4 - 4
service/src/main/java/com/kym/service/enplus/impl/EnNotifyServiceImpl.java

@@ -74,18 +74,18 @@ public class EnNotifyServiceImpl implements EnNotifyService {
     @Override
     @DS("db-admin")
     public String handleNotificationStationStatus(JSONObject json) {
-        // TODO: 2023-08-30 注意!!!EN+分布式事务BUG导致无法接收到离线状态(0)的推送,待对方解决后再开发测试
         var data = enPlusService.signValidation(json);
         LOGGER.info("【EN+推送】收到充电桩设备状态变化推送:\n{},解密数据:\\n{}\"", json, data);
-        // TODO: 2023-08-21 更新数据库中设备的状态
+        // 更新数据库,存入redis,发送邮件通知
         var connectorStatusInfo = JSONObject.parseObject(data).getJSONObject("ConnectorStatusInfo").toJavaObject(EnConnectorStatusInfo.class);
         if (connectorStatusInfo.getStatus() == 0) {
             LOGGER.info("充电桩设备离线:{}", connectorStatusInfo.getConnectorId());
-            // 如果设备离线,则存入redis,有效期24h,5分钟之内如果收到该设备上线的推送,则不发送通知并删除redis记录,否则发送通知
+            // 如果设备离线,则存入redis,有效期24h
             var monitorLog = new MonitorLog()
                     .setStationId(kymCache.getStationId(connectorStatusInfo.getConnectorId()))
                     .setSn(connectorStatusInfo.getConnectorId())
-                    .setOfflineTime(LocalDateTime.now()).setType(2)
+                    .setOfflineTime(LocalDateTime.now())
+                    .setType(2)
                     .setOfflineStatus(connectorStatusInfo.getStatus());
             monitorLogService.save(monitorLog);
             redisTemplate.opsForValue().set(RedisKeys.OFFLINE.concat(connectorStatusInfo.getConnectorId()), "", 1, TimeUnit.DAYS);