Bläddra i källkod

Merge branch 'develop' of http://132.232.206.88:3000/lift-manager/lift-server into huangyuan-user

黄远 5 år sedan
förälder
incheckning
e3090352e7

+ 3 - 1
lift-push/src/main/java/cn/com/ty/lift/push/app/PushConsumer.java

@@ -139,7 +139,7 @@ public class PushConsumer {
      */
     private void saveMessage(PushMessage pushMessage) {
         List<String> toList = pushMessage.getToList();
-        List<UserAccount> userAccounts = userAccountService.list(Wrappers.<UserAccount>query().in("device_flag", toList));
+        List<UserAccount> userAccounts = userAccountService.list(Wrappers.<UserAccount>query().in(!toList.isEmpty(),"device_flag", toList));
         List<TimeMessage> timeMessages = new ArrayList<>();
         for (UserAccount userAccount : userAccounts) {
             TimeMessage timeMessage = new TimeMessage();
@@ -162,7 +162,9 @@ public class PushConsumer {
             timeMessage.setDeviceModel(userAccount.getDeviceModel());
             timeMessage.setUserId(10000L);
             timeMessage.setCreateTime(LocalDateTime.now());
+            timeMessages.add(timeMessage);
         }
+        log.info("消息记录列表:"+timeMessages.toString());
         timeMessageService.saveBatch(timeMessages);
     }
 }

+ 32 - 6
lift-push/src/main/java/cn/com/ty/lift/push/message/controller/TimeMessageController.java

@@ -14,32 +14,58 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Collection;
+import java.util.List;
+
 @RestController
 @AllArgsConstructor
 @RequestMapping("message")
 public class TimeMessageController {
     private final TimeMessageService timeMessageService;
 
+    /**
+     * 消息列表
+     *
+     * @param messageVo 分页数据的请求对象
+     * @return 带已读,未读条数的分页列表
+     */
     @PostMapping("list")
-    public RestResponse list(@RequestBody MessageVo messageVo) {
+    public RestResponse<MessageBO> list(@RequestBody MessageVo messageVo) {
         IPage<TimeMessage> page = new Page<>(messageVo.getPageNum(), messageVo.getPageSize());
         IPage<TimeMessage> result = timeMessageService.page(page, Wrappers.<TimeMessage>query()
+                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
                 .eq(messageVo.getType() != null, "type", messageVo.getType())
                 .orderByAsc("view_flag", "create_time"));
         MessageBO messageBO = MessageBO.pageCastMessageBo(result);
-        messageBO.setReadCount(timeMessageService.count(Wrappers.<TimeMessage>query()
+        messageBO.setReadCount((long) timeMessageService.count(Wrappers.<TimeMessage>query()
+                .eq(messageVo.getUserId() != null, "user_id", messageVo.getUserId())
                 .eq("view_flag", 1)
                 .eq("type", messageVo.getType())));
-        messageBO.setUnreadCount(timeMessageService.count(Wrappers.<TimeMessage>query()
-                .eq("view_flag", 0)
-                .eq("type", messageVo.getType())));
+        messageBO.setUnreadCount(messageBO.getTotal() - messageBO.getReadCount());
         return RestResponse.success(messageBO);
     }
 
+    /**
+     * @param messageVo 分页功能的请求对象
+     * @return 一条消息详情
+     */
     @PostMapping
-    public RestResponse message(@RequestBody MessageVo messageVo) {
+    public RestResponse<TimeMessage> message(@RequestBody MessageVo messageVo) {
         TimeMessage byId = timeMessageService.getById(messageVo.getId());
         byId.setViewFlag(1);
+        timeMessageService.updateById(byId);
         return RestResponse.success(byId);
     }
+
+    /**
+     * @param messageVo id列表
+     * @return 多条消息详情
+     */
+    @PostMapping("details")
+    public RestResponse<Collection<TimeMessage>> messages(@RequestBody MessageVo messageVo) {
+        Collection<TimeMessage> timeMessages = timeMessageService.listByIds(messageVo.getIds());
+        timeMessages.forEach(timeMessage -> timeMessage.setViewFlag(1));
+        timeMessageService.updateBatchById(timeMessages);
+        return RestResponse.success(timeMessages);
+    }
 }

+ 2 - 2
lift-push/src/main/java/cn/com/ty/lift/push/message/object/MessageBO.java

@@ -9,8 +9,8 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 @Data
 public class MessageBO extends Page<TimeMessage> implements IPage<TimeMessage> {
-    private Integer readCount;
-    private Integer unreadCount;
+    private Long readCount;
+    private Long unreadCount;
 
     public static MessageBO pageCastMessageBo(IPage<TimeMessage> page) {
         MessageBO messageBO = new MessageBO();

+ 3 - 0
lift-push/src/main/java/cn/com/ty/lift/push/message/object/MessageVo.java

@@ -4,9 +4,12 @@ import cn.com.ty.lift.push.message.dao.entity.TimeMessage;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 @EqualsAndHashCode(callSuper = true)
 @Data
 public class MessageVo extends TimeMessage {
     private long pageNum = 1;
     private long pageSize = 10;
+    private List<Long> ids;
 }

+ 52 - 0
lift-push/src/main/java/cn/com/ty/lift/push/push/PushUserService.java

@@ -0,0 +1,52 @@
+package cn.com.ty.lift.push.push;
+
+import cn.com.ty.lift.common.constants.CommonEnum;
+import cn.com.ty.lift.common.model.PushUserInfo;
+import cn.com.ty.lift.push.push.mapper.PushUserMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 推送用户
+ *
+ * @author wcz
+ * @since 2020/4/24
+ */
+@Service
+public class PushUserService extends ServiceImpl<PushUserMapper, PushUserInfo> {
+
+    public PushUserInfo listByUserId(Long mtCompanyId, Long userId){
+        return baseMapper.listByUserId(mtCompanyId, userId);
+    }
+
+    public List<PushUserInfo> listByUserIds(Long mtCompanyId, List<Long> userIds){
+        return baseMapper.listByUserIds(mtCompanyId, userIds);
+    }
+
+    public List<PushUserInfo> listByRoleCodes(Long mtCompanyId, List<String> roleCodes){
+        return baseMapper.listByRoleCodes(mtCompanyId, roleCodes);
+    }
+
+    /**
+     * 查询公司下总经理
+     */
+    public List<PushUserInfo> listHighDirector(Long mtCompanyId){
+        return baseMapper.listByRoleCode(mtCompanyId, CommonEnum.DefaultRole.HIGH_DIRECTOR.getCode());
+    }
+    /**
+     * 查询公司下管理员
+     */
+    public List<PushUserInfo> listEnterpriseAdmin(Long mtCompanyId){
+        return baseMapper.listByRoleCode(mtCompanyId, CommonEnum.DefaultRole.ENTERPRISE_ADMIN.getCode());
+    }
+
+    /**
+     * 分页查询公司下所有的人员
+     */
+    public IPage<PushUserInfo> pageByMtCompany(IPage<PushUserInfo> page, Long mtCompanyId){
+        return baseMapper.pageByMtCompany(page, mtCompanyId);
+    }
+}

+ 29 - 0
lift-push/src/main/java/cn/com/ty/lift/push/push/mapper/PushUserMapper.java

@@ -0,0 +1,29 @@
+package cn.com.ty.lift.push.push.mapper;
+
+import cn.com.ty.lift.common.model.PushUserInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  推送用户账号 Mapper 接口
+ * </p>
+ *
+ * @author wcz
+ * @since 2020-04-17
+ */
+public interface PushUserMapper extends BaseMapper<PushUserInfo> {
+
+    List<PushUserInfo> listByUserIds(@Param("mtCompanyId") Long mtCompanyId, @Param("userIds") List<Long> userIds);
+
+    PushUserInfo listByUserId(@Param("mtCompanyId") Long mtCompanyId, @Param("userId") Long userId);
+
+    List<PushUserInfo> listByRoleCodes(@Param("mtCompanyId") Long mtCompanyId, @Param("roleCodes") List<String> roleCodes);
+
+    List<PushUserInfo> listByRoleCode(@Param("mtCompanyId") Long mtCompanyId, @Param("roleCode") String roleCode);
+
+    IPage<PushUserInfo> pageByMtCompany(IPage<PushUserInfo> page, @Param("mtCompanyId") Long mtCompanyId);
+}

+ 1 - 1
lift-push/src/main/resources/application.yml

@@ -5,7 +5,7 @@ spring:
   application:
     name: lift-push-service
   profiles:
-    active: test
+    active: prod
   datasource:
     hikari:
       max-lifetime: 1200000 # default: 1800000

+ 133 - 0
lift-push/src/main/resources/mapper/push/PushUserMapper.xml

@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.com.ty.lift.push.push.mapper.PushUserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="cn.com.ty.lift.common.model.PushUserInfo">
+        <id column="user_id" property="userId"/>
+        <result column="username" property="userName"/>
+        <result column="mobile" property="mobile"/>
+        <result column="device_model" property="deviceModel"/>
+        <result column="device_flag" property="deviceFlag"/>
+        <result column="role_name" property="roleName"/>
+    </resultMap>
+
+    <select id="listByUserId" resultMap="BaseResultMap">
+        SELECT
+            ui.user_id,
+            ui.NAME AS username,
+            ua.mobile,
+            ua.device_model,
+            ua.device_flag,
+            ro.NAME AS role_name
+        FROM
+            user_info ui
+            LEFT JOIN user_account ua ON ui.user_id = ua.user_id
+            LEFT JOIN user_role ur ON ui.user_id = ur.user_id
+            LEFT JOIN role ro ON ro.id = ur.role_id
+        <where>
+            <if test="mtCompanyId != null and mtCompanyId > 0">
+                AND ur.company_id = #{mtCompanyId}
+            </if>
+            <if test="userId != null and userId > 0">
+                AND ui.user_id = #{userId}
+            </if>
+        </where>
+    </select>
+
+    <select id="listByUserIds" resultMap="BaseResultMap">
+        SELECT
+            ui.user_id,
+            ui.NAME AS username,
+            ua.mobile,
+            ua.device_model,
+            ua.device_flag,
+            ro.NAME AS role_name
+        FROM
+            user_info ui
+            LEFT JOIN user_account ua ON ui.user_id = ua.user_id
+            LEFT JOIN user_role ur ON ui.user_id = ur.user_id
+            LEFT JOIN role ro ON ro.id = ur.role_id
+        <where>
+            <if test="mtCompanyId != null and mtCompanyId > 0">
+                AND ur.company_id = #{mtCompanyId}
+            </if>
+            <if test="userIds != null">
+                AND ui.user_id IN
+                <foreach collection="userIds" item="userId" open="(" separator="," close=")">
+                    #{userId, jdbcType=BIGINT}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="listByRoleCodes" resultMap="BaseResultMap">
+        SELECT
+            ui.user_id,
+            ui.NAME AS username,
+            ua.mobile,
+            ua.device_model,
+            ua.device_flag,
+            ro.NAME AS role_name
+        FROM
+            user_info ui
+            LEFT JOIN user_account ua ON ui.user_id = ua.user_id
+            LEFT JOIN user_role ur ON ui.user_id = ur.user_id
+            LEFT JOIN role ro ON ro.id = ur.role_id
+        <where>
+            <if test="mtCompanyId != null and mtCompanyId > 0">
+                AND ur.company_id = #{mtCompanyId}
+            </if>
+            <if test="roleCodes != null">
+                AND ro.code IN
+                <foreach collection="roleCodes" item="roleCode" open="(" separator="," close=")">
+                    #{roleCode, jdbcType=VARCHAR}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="listByRoleCode" resultMap="BaseResultMap">
+        SELECT
+        ui.user_id,
+        ui.NAME AS username,
+        ua.mobile,
+        ua.device_model,
+        ua.device_flag,
+        ro.NAME AS role_name
+        FROM
+        user_info ui
+        LEFT JOIN user_account ua ON ui.user_id = ua.user_id
+        LEFT JOIN user_role ur ON ui.user_id = ur.user_id
+        LEFT JOIN role ro ON ro.id = ur.role_id
+        <where>
+            <if test="mtCompanyId != null and mtCompanyId > 0">
+                AND ur.company_id = #{mtCompanyId}
+            </if>
+            <if test="roleCode != null and roleCode != ''">
+                AND ro.code = #{roleCode, jdbcType=VARCHAR}
+            </if>
+        </where>
+    </select>
+
+    <select id="pageByMtCompany" resultMap="BaseResultMap" parameterType="java.lang.Long">
+        SELECT
+            ui.user_id,
+            ui.NAME AS username,
+            ua.mobile,
+            ua.device_model,
+            ua.device_flag,
+            ro.NAME AS role_name
+        FROM
+            user_info ui
+            LEFT JOIN user_account ua ON ui.user_id = ua.user_id
+            LEFT JOIN user_role ur ON ui.user_id = ur.user_id
+            LEFT JOIN role ro ON ro.id = ur.role_id
+            LEFT JOIN mt_company_user mcu ON mcu.user_id = ui.user_id AND mcu.mt_company_id = ur.company_id
+        <where>
+            <if test="mtCompanyId != null and mtCompanyId > 0">
+                mcu.mt_company_id = #{mtCompanyId}
+            </if>
+        </where>
+    </select>
+</mapper>

+ 1 - 2
lift-quan-service/src/main/java/cn/com/ty/lift/quan/news/controller/QuanNewsController.java

@@ -48,7 +48,6 @@ public class QuanNewsController {
         return quanNewsService.news(quanNews);
     }
 
-
     /**
      * 获取新闻
      *
@@ -56,7 +55,7 @@ public class QuanNewsController {
      * @return 新闻信息
      */
     @PostMapping
-    public RestResponse News(@RequestBody QuanNewsReq quanNews) {
+    public RestResponse news(@RequestBody QuanNewsReq quanNews) {
         return quanNewsService.getNews(quanNews);
     }
 

+ 2 - 2
lift-quan-service/src/main/java/cn/com/ty/lift/quan/news/service/impl/QuanNewsServiceImpl.java

@@ -46,7 +46,7 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
     public RestResponse appNews(QuanNewsReq request) {
         Page<QuanNews> page = new Page<>(request.getPageNum(), request.getPageSize());
         IPage<QuanNews> news = this.page(page, Wrappers.<QuanNews>query()
-                .like(null != request.getTitle(), "title", request.getTitle())
+                .like(null != request.getTitle() && !request.getTitle().isEmpty(), "title", request.getTitle())
                 .eq("is_top", false)
                 .orderByDesc("release_date"));
         //全部新闻的浏览量列表
@@ -58,7 +58,7 @@ public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> i
         result.put("news", news);
         if (request.getHaveTops() == 1) {
             List<QuanNews> topNews = this.list(Wrappers.<QuanNews>query()
-                    .ne("is_top", true)
+                    .eq("is_top", true)
                     .orderByAsc("top_serial"));
             //把点赞的用户数量和浏览量整入新闻字段中
             newsAddLookAndLike(topNews, lookTimes, likeUsers);