Pārlūkot izejas kodu

中康bug修复

ct 2 nedēļas atpakaļ
vecāks
revīzija
0f23df6787

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsUserMapper.java

@@ -318,4 +318,6 @@ public interface FsUserMapper
     List<FsUserWatchCourseStatistics> selectFsUserDetail();
 
     List<FsUser> selectFsUserListByJointUserNameKey(String userNameKey);
+
+    Map<String, Long> countUserCourse2(UserStatisticsCommonParam param);
 }

+ 49 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/FsUserServiceImpl.java

@@ -777,7 +777,8 @@ public class FsUserServiceImpl implements IFsUserService
 
     @Override
     public FsUserStatisticsVO userStatisticsDetails(UserStatisticsCommonParam param) {
-        FsUserStatisticsVO userStatisticsVO = getUserStatistics(param);
+//        FsUserStatisticsVO userStatisticsVO = getUserStatistics(param);
+        FsUserStatisticsVO userStatisticsVO = getUserStatistics2(param);
 
         // 判断是否是管理员
         CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getUserId());
@@ -794,6 +795,53 @@ public class FsUserServiceImpl implements IFsUserService
         return userStatisticsVO;
     }
 
+    private FsUserStatisticsVO getUserStatistics2(UserStatisticsCommonParam param) {
+        FsUserStatisticsVO fsUserStatisticsVO = new FsUserStatisticsVO();
+
+        // 判断是否是管理员
+        CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getUserId());
+        if (companyUser != null && companyUser.isAdmin()){
+            param.setUserId(0L);
+            param.setCompanyId(companyUser.getCompanyId());
+        }
+        // 获取课程统计
+        Map<String, Long> couserMap = fsUserMapper.countUserCourse2(param);
+        if (couserMap != null) {
+            //看课人数
+            fsUserStatisticsVO.setCourseWatchNum(couserMap.get("courseWatchNum").intValue()).setCourseCompleteNum(couserMap.get("courseCompleteNum").intValue());
+
+            if (couserMap.get("courseCompleteNum") != null && couserMap.get("courseWatchNum") > 0) {
+                int courseCompleteRate = BigDecimal.valueOf(couserMap.get("courseCompleteNum"))
+                        .divide(BigDecimal.valueOf(couserMap.get("courseWatchNum")), 2, RoundingMode.HALF_UP)
+                        .multiply(BigDecimal.valueOf(100))
+                        .intValue();
+                fsUserStatisticsVO.setCourseCompleteRate(courseCompleteRate);
+            }
+        }
+
+        // 获取答题统计
+        Map<String, Long> answerMap = fsUserMapper.countUserAnswer(param);
+        if (answerMap != null) {
+            fsUserStatisticsVO.setAnswerNum(answerMap.get("answerNum").intValue()).setAnswerRightNum(answerMap.get("answerRightNum").intValue());
+
+            if (answerMap.get("answerRightNum") != null && answerMap.get("answerNum") > 0) {
+                int answerCompleteRate = BigDecimal.valueOf(answerMap.get("answerRightNum"))
+                        .divide(BigDecimal.valueOf(answerMap.get("answerNum")), 2, RoundingMode.HALF_UP)
+                        .multiply(BigDecimal.valueOf(100))
+                        .intValue();
+                fsUserStatisticsVO.setAnswerRightRate(answerCompleteRate);
+            }
+        }
+
+        // 获取红包统计
+        Map<String, Object> redPacketMap = fsUserMapper.countUserRedPacket(param);
+        if(redPacketMap != null && redPacketMap.get("redPacketNum") != null && redPacketMap.get("redPacketAmount") != null) {
+            fsUserStatisticsVO.setRedPacketNum(Integer.parseInt(redPacketMap.get("redPacketNum").toString()))
+                    .setRedPacketAmount(new BigDecimal(redPacketMap.get("redPacketAmount").toString()));
+        }
+        return fsUserStatisticsVO;
+    }
+
     @Override
     public List<FsUserRankingVO> userRanking(Long userId, String startTime, String endTime, String periodId, String videoId, String order, Integer type) {
         List<FsUserRankingVO> listVO = Collections.emptyList();

+ 52 - 0
fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

@@ -1745,5 +1745,57 @@
         </where>
         order by user_id desc
     </select>
+    <select id="countUserCourse2" resultType="java.util.Map">
+        SELECT
+        (
+        SELECT
+        count(1)
+        FROM
+        fs_course_watch_log l
+        LEFT JOIN company_user ON l.company_user_id = company_user.user_id
+        where
+            l.log_type != 3
+            <if test="userId != null and userId != 0 ">
+                and (l.company_user_id = #{userId} OR company_user.parent_id = #{userId} )
+            </if>
+            <if test="userId != null and userId == 0 ">
+                and l.company_id = #{companyId}
+            </if>
+            <if test="periodId != null and periodId != ''">
+                AND l.period_id = #{periodId}
+            </if>
+            <if test="videoId != null and videoId != ''">
+                AND l.video_id = #{videoId}
+            </if>
+            <if test="companyUserId != null and companyUserId != ''">
+                AND l.user_id = #{companyUserId}
+            </if>
+        ) as courseWatchNum,
+        (
+        SELECT
+        count(1)
+        FROM
+        fs_course_watch_log l
+        LEFT JOIN company_user ON l.company_user_id = company_user.user_id
+        where
+        l.log_type = 2
+        <if test="userId != null and userId != 0 ">
+            and (l.company_user_id = #{userId} OR company_user.parent_id = #{userId} )
+        </if>
+        <if test="userId != null and userId == 0 ">
+            and l.company_id = #{companyId}
+        </if>
+        <if test="periodId != null and periodId != ''">
+            AND l.period_id = #{periodId}
+        </if>
+        <if test="videoId != null and videoId != ''">
+            AND l.video_id = #{videoId}
+        </if>
+        -- 单独通过销售id查询
+        <if test="companyUserId != null and companyUserId != ''">
+            AND l.user_id = #{companyUserId}
+        </if>
+        ) as courseCompleteNum
+    </select>
 
 </mapper>

+ 3 - 0
fs-user-app/src/main/java/com/fs/app/controller/WxCompanyUserController.java

@@ -71,6 +71,9 @@ public class WxCompanyUserController extends AppBaseController {
         if (StringUtils.isBlank(param.getCode())) {
             return R.error("code不存在");
         }
+        if (param.getNickname().length()>100){
+            return R.error("昵称不符合标准!");
+        }
         //获取第二个小程序配置,序号从0开始
         final WxMaService wxService = WxMaConfiguration.getMaService(maProperties.getConfigs().get(1).getAppid());
         try {

+ 2 - 2
fs-user-app/src/main/java/com/fs/app/param/LoginMaWxParam.java

@@ -28,11 +28,11 @@ public class LoginMaWxParam implements Serializable {
     @ApiModelProperty(value = "销售id")
     private Long companyUserId;
 
-    @NotNull(message = "用户昵称不能为空")
+    @NotBlank(message = "用户昵称不能为空")
     @ApiModelProperty(value = "用户昵称")
     private String nickname;
 
-    @NotNull(message = "用户头像不能为空")
+    @NotBlank(message = "用户头像不能为空")
     @ApiModelProperty(value = "用户头像")
     private String avatar;