Commit 8a7caf6c authored by yuwenwen's avatar yuwenwen
parents 8d98f46a d650878c
...@@ -2,6 +2,7 @@ package com.tangguo.web.controller.system; ...@@ -2,6 +2,7 @@ package com.tangguo.web.controller.system;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.tangguo.common.annotation.Log;
import com.tangguo.common.constant.Constants; import com.tangguo.common.constant.Constants;
import com.tangguo.common.core.domain.AjaxResult; import com.tangguo.common.core.domain.AjaxResult;
import com.tangguo.common.core.domain.entity.SysMenu; import com.tangguo.common.core.domain.entity.SysMenu;
...@@ -10,24 +11,24 @@ import com.tangguo.common.core.domain.entity.SysUser; ...@@ -10,24 +11,24 @@ import com.tangguo.common.core.domain.entity.SysUser;
import com.tangguo.common.core.domain.model.LoginBody; import com.tangguo.common.core.domain.model.LoginBody;
import com.tangguo.common.core.domain.model.LoginUser; import com.tangguo.common.core.domain.model.LoginUser;
import com.tangguo.common.core.domain.model.WxcpCodeLogin; import com.tangguo.common.core.domain.model.WxcpCodeLogin;
import com.tangguo.common.enums.BusinessType;
import com.tangguo.common.exception.ServiceException; import com.tangguo.common.exception.ServiceException;
import com.tangguo.common.utils.SecurityUtils; import com.tangguo.common.utils.SecurityUtils;
import com.tangguo.common.utils.StringUtils;
import com.tangguo.framework.config.ServerConfig; import com.tangguo.framework.config.ServerConfig;
import com.tangguo.framework.web.service.SysLoginService; import com.tangguo.framework.web.service.SysLoginService;
import com.tangguo.framework.web.service.SysPermissionService; import com.tangguo.framework.web.service.SysPermissionService;
import com.tangguo.framework.web.service.TokenService; import com.tangguo.framework.web.service.TokenService;
import com.tangguo.framework.web.service.UserDetailsServiceImpl; import com.tangguo.framework.web.service.UserDetailsServiceImpl;
import com.tangguo.system.service.ISysMenuService; import com.tangguo.system.service.ISysMenuService;
import com.tangguo.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.cp.api.WxCpOAuth2Service; import me.chanjar.weixin.cp.api.WxCpOAuth2Service;
import me.chanjar.weixin.cp.api.WxCpService; import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpOauth2UserInfo; import me.chanjar.weixin.cp.bean.WxCpOauth2UserInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -62,6 +63,9 @@ public class SysLoginController { ...@@ -62,6 +63,9 @@ public class SysLoginController {
@Autowired @Autowired
private ServerConfig serverConfig; private ServerConfig serverConfig;
@Autowired
private ISysUserService userService;
/** /**
* 登录方法 * 登录方法
...@@ -122,6 +126,8 @@ public class SysLoginController { ...@@ -122,6 +126,8 @@ public class SysLoginController {
@PostMapping("/bbs/mobile/user/code/login") @PostMapping("/bbs/mobile/user/code/login")
public AjaxResult codeLogin(@RequestBody WxcpCodeLogin bo) { public AjaxResult codeLogin(@RequestBody WxcpCodeLogin bo) {
LoginUser loginUser = SecurityUtils.getLoginUserNotEx(); LoginUser loginUser = SecurityUtils.getLoginUserNotEx();
log.info("=> 登录请求参数:{}", bo);
log.info("=> 当前登录用户:{}", loginUser);
// 企微登录认证链接 // 企微登录认证链接
String authCode = bo.getCode(); String authCode = bo.getCode();
...@@ -130,6 +136,7 @@ public class SysLoginController { ...@@ -130,6 +136,7 @@ public class SysLoginController {
WxCpOAuth2Service oauth2Service = this.wxCpService.getOauth2Service(); WxCpOAuth2Service oauth2Service = this.wxCpService.getOauth2Service();
if (Objects.isNull(loginUser) && StrUtil.isBlank(authCode)) { if (Objects.isNull(loginUser) && StrUtil.isBlank(authCode)) {
String oauth2Url = oauth2Service.buildAuthorizationUrl(redirectUrl, null); String oauth2Url = oauth2Service.buildAuthorizationUrl(redirectUrl, null);
log.info("=> 认证失败,返回Oauth2登录链接:{}", oauth2Url);
return AjaxResult.error(401, "身份认证失败", oauth2Url); return AjaxResult.error(401, "身份认证失败", oauth2Url);
} }
...@@ -146,6 +153,8 @@ public class SysLoginController { ...@@ -146,6 +153,8 @@ public class SysLoginController {
throw new ServiceException("登录失败,查询用户信息失败。"); throw new ServiceException("登录失败,查询用户信息失败。");
} }
} }
log.info("=> 登录结果:{}", token);
return AjaxResult.success("登录成功", token); return AjaxResult.success("登录成功", token);
} }
...@@ -157,6 +166,7 @@ public class SysLoginController { ...@@ -157,6 +166,7 @@ public class SysLoginController {
*/ */
@GetMapping("/bbs/mobile/user/profile") @GetMapping("/bbs/mobile/user/profile")
public AjaxResult getUserProfile() { public AjaxResult getUserProfile() {
log.info("=> 查询用户信息,当前登录用户名:{}", SecurityUtils.getUsername());
final String bbsAdmin = "bbs_admin"; final String bbsAdmin = "bbs_admin";
SysUser sysUser = SecurityUtils.getLoginUser().getUser(); SysUser sysUser = SecurityUtils.getLoginUser().getUser();
List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles(); List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
...@@ -165,4 +175,28 @@ public class SysLoginController { ...@@ -165,4 +175,28 @@ public class SysLoginController {
return AjaxResult.success(sysUser); return AjaxResult.success(sysUser);
} }
/**
* 查询用户信息
*
* @return 用户信息
*/
@PutMapping("/bbs/mobile/user/profile")
public AjaxResult updateUserProfile(@RequestBody SysUser user) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser updUser = new SysUser();
updUser.setUserId(loginUser.getUserId());
updUser.setAvatar(user.getAvatar());
updUser.setNickName(user.getNickName());
if (this.userService.updateUserProfile(updUser) > 0) {
SysUser sysUser = loginUser.getUser();
sysUser.setAvatar(user.getAvatar());
sysUser.setNickName(user.getNickName());
tokenService.setLoginUser(loginUser);
return AjaxResult.success();
}
return AjaxResult.error("修改失败");
}
} }
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
<el-table-column label="帐号" prop="userName" align="center" width="140"></el-table-column> <el-table-column label="帐号" prop="userName" align="center" width="140"></el-table-column>
<el-table-column label="姓名" prop="nickName" align="center" width="120"></el-table-column> <el-table-column label="姓名" prop="nickName" align="center" width="120"></el-table-column>
<el-table-column label="部门" prop="deptName" align="center" width="160"></el-table-column> <el-table-column label="部门" prop="deptName" align="center" width="160"></el-table-column>
<el-table-column label="学院" prop="fullDeptName" align="center"></el-table-column>
<el-table-column label="点赞数" prop="likeCount" align="center" width="100"></el-table-column> <el-table-column label="点赞数" prop="likeCount" align="center" width="100"></el-table-column>
<el-table-column label="评论数" prop="commentCount" align="center" width="100"></el-table-column> <el-table-column label="评论数" prop="commentCount" align="center" width="100"></el-table-column>
<el-table-column label="创建时间" prop="createTime" align="center" width="160"></el-table-column> <el-table-column label="创建时间" prop="createTime" align="center" width="160"></el-table-column>
......
...@@ -6,6 +6,7 @@ import com.tangguo.common.annotation.Excel.Type; ...@@ -6,6 +6,7 @@ import com.tangguo.common.annotation.Excel.Type;
import com.tangguo.common.annotation.Excels; import com.tangguo.common.annotation.Excels;
import com.tangguo.common.core.domain.BaseEntity; import com.tangguo.common.core.domain.BaseEntity;
import com.tangguo.common.xss.Xss; import com.tangguo.common.xss.Xss;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
...@@ -20,6 +21,7 @@ import java.util.List; ...@@ -20,6 +21,7 @@ import java.util.List;
* *
* @author ruoyi * @author ruoyi
*/ */
@ToString
public class SysUser extends BaseEntity { public class SysUser extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -309,28 +311,4 @@ public class SysUser extends BaseEntity { ...@@ -309,28 +311,4 @@ public class SysUser extends BaseEntity {
this.roleId = roleId; this.roleId = roleId;
} }
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId())
.append("deptId", getDeptId())
.append("userName", getUserName())
.append("nickName", getNickName())
.append("email", getEmail())
.append("phonenumber", getPhonenumber())
.append("sex", getSex())
.append("avatar", getAvatar())
.append("password", getPassword())
.append("status", getStatus())
.append("delFlag", getDelFlag())
.append("loginIp", getLoginIp())
.append("loginDate", getLoginDate())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("dept", getDept())
.toString();
}
} }
...@@ -7,6 +7,7 @@ import com.tangguo.common.core.domain.AjaxResult; ...@@ -7,6 +7,7 @@ import com.tangguo.common.core.domain.AjaxResult;
import com.tangguo.common.utils.ServletUtils; import com.tangguo.common.utils.ServletUtils;
import com.tangguo.common.utils.StringUtils; import com.tangguo.common.utils.StringUtils;
import com.tangguo.framework.config.ServerConfig; import com.tangguo.framework.config.ServerConfig;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.cp.api.WxCpOAuth2Service; import me.chanjar.weixin.cp.api.WxCpOAuth2Service;
import me.chanjar.weixin.cp.api.WxCpService; import me.chanjar.weixin.cp.api.WxCpService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -25,6 +26,7 @@ import java.util.Objects; ...@@ -25,6 +26,7 @@ import java.util.Objects;
* *
* @author ruoyi * @author ruoyi
*/ */
@Slf4j
@Component @Component
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable { public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable {
private static final long serialVersionUID = -8970718410437077606L; private static final long serialVersionUID = -8970718410437077606L;
...@@ -38,10 +40,11 @@ public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, S ...@@ -38,10 +40,11 @@ public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, S
@Override @Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e)
throws IOException { throws IOException {
String uri = request.getRequestURI(); String uri = request.getRequestURI();
int code = HttpStatus.UNAUTHORIZED; int code = HttpStatus.UNAUTHORIZED;
log.info("=> 身份认证失败,Token:{}", request.getHeader("Authorization"));
if (uri.startsWith("/bbs/mobile")) { if (uri.startsWith("/bbs/mobile")) {
String baseUrl = this.serverConfig.getUrl(); String baseUrl = this.serverConfig.getUrl();
String redirectUrl = baseUrl + "/bbs/h5/pages/login/login/"; String redirectUrl = baseUrl + "/bbs/h5/pages/login/login/";
......
...@@ -118,6 +118,13 @@ public class BbsMoment extends BaseEntity { ...@@ -118,6 +118,13 @@ public class BbsMoment extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private String deptName; private String deptName;
@TableField(exist = false)
private String ancestors;
@TableField(exist = false)
private String fullDeptName;
/** 动态附件 */ /** 动态附件 */
@TableField(exist = false) @TableField(exist = false)
private List<BbsMomentAttachment> attachments; private List<BbsMomentAttachment> attachments;
......
...@@ -30,6 +30,9 @@ public class BbsMomentListVO { ...@@ -30,6 +30,9 @@ public class BbsMomentListVO {
/** 发布人用户名 */ /** 发布人用户名 */
private String userName; private String userName;
/** 发布人头像 */
private String avatar;
/** 动态内容 */ /** 动态内容 */
private String content; private String content;
......
package com.tangguo.mapper; package com.tangguo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tangguo.common.core.domain.entity.SysDept;
import com.tangguo.domain.BbsMoment; import com.tangguo.domain.BbsMoment;
import com.tangguo.domain.bo.QueryMomentBO; import com.tangguo.domain.bo.QueryMomentBO;
import com.tangguo.domain.vo.BbsMomentListVO; import com.tangguo.domain.vo.BbsMomentListVO;
...@@ -19,6 +20,8 @@ public interface BbsMomentMapper extends BaseMapper<BbsMoment> { ...@@ -19,6 +20,8 @@ public interface BbsMomentMapper extends BaseMapper<BbsMoment> {
List<BbsMoment> selectBbsMomentList(@Param("moment") BbsMoment moment); List<BbsMoment> selectBbsMomentList(@Param("moment") BbsMoment moment);
List<String> selectBbsMomentDepts(@Param("deptIds") String[] deptIds);
BbsUserMomentCountVO selectUserMomentCount(@Param("userName") String userName); BbsUserMomentCountVO selectUserMomentCount(@Param("userName") String userName);
......
package com.tangguo.service.impl; package com.tangguo.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.dfa.FoundWord; import cn.hutool.dfa.FoundWord;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tangguo.common.core.domain.entity.SysDept;
import com.tangguo.common.core.domain.entity.SysUser; import com.tangguo.common.core.domain.entity.SysUser;
import com.tangguo.common.enums.*; import com.tangguo.common.enums.*;
import com.tangguo.common.exception.ServiceException; import com.tangguo.common.exception.ServiceException;
...@@ -77,6 +79,14 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment ...@@ -77,6 +79,14 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
.filter(a -> dbMoment.getId().equals(a.getMomentId())) .filter(a -> dbMoment.getId().equals(a.getMomentId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
dbMoment.setAttachments(atts); dbMoment.setAttachments(atts);
String[] deptIds = dbMoment.getAncestors().split(",");
if (ArrayUtil.isNotEmpty(deptIds)) {
List<String> deptNames = this.baseMapper.selectBbsMomentDepts(deptIds);
String deptName = deptNames.stream().filter(s -> s.contains("学院"))
.reduce((first, second) -> second).orElse(null);
dbMoment.setFullDeptName(deptName);
}
} }
return dbMoments; return dbMoments;
} }
......
...@@ -8,7 +8,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -8,7 +8,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT SELECT
m.*, m.*,
uv.nick_name, uv.nick_name,
ud.dept_name ud.dept_name,
ud.ancestors
FROM FROM
bbs_moment m bbs_moment m
LEFT JOIN LEFT JOIN
...@@ -28,12 +29,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -28,12 +29,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="moment.params.endTime != null and moment.params.endTime != ''"> <if test="moment.params.endTime != null and moment.params.endTime != ''">
AND DATE_FORMAT(m.create_time, '%Y-%m-%d') &lt;= #{moment.params.endTime} AND DATE_FORMAT(m.create_time, '%Y-%m-%d') &lt;= #{moment.params.endTime}
</if> </if>
<if test="moment.deptName != null and moment.deptName != ''">
AND d.dept_name LIKE CONCAT('%', #{moment.deptName}, '%')
</if>
</where> </where>
ORDER BY ORDER BY
m.create_time DESC m.create_time DESC
</select> </select>
<select id="selectBbsMomentDepts" resultType="java.lang.String">
SELECT
dept_name
FROM
sys_dept
WHERE
dept_id IN
<foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</select>
<select id="selectUserMomentCount" resultType="com.tangguo.domain.vo.BbsUserMomentCountVO"> <select id="selectUserMomentCount" resultType="com.tangguo.domain.vo.BbsUserMomentCountVO">
SELECT SELECT
(SELECT COUNT(*) FROM bbs_moment WHERE user_name = #{userName}) AS moment_count, (SELECT COUNT(*) FROM bbs_moment WHERE user_name = #{userName}) AS moment_count,
...@@ -45,10 +62,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -45,10 +62,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectUserMoments" resultType="com.tangguo.domain.vo.BbsMomentListVO"> <select id="selectUserMoments" resultType="com.tangguo.domain.vo.BbsMomentListVO">
SELECT SELECT
m.*, m.*,
uv.nick_name,
uv.avatar,
IF(l.id IS NOT NULL, 1, 0) AS is_like, IF(l.id IS NOT NULL, 1, 0) AS is_like,
IF(v.id IS NOT NULL, 1, 0) AS is_vote IF(v.id IS NOT NULL, 1, 0) AS is_vote
FROM FROM
bbs_moment m bbs_moment m
LEFT JOIN
sys_user uv ON uv.user_name = m.user_name
LEFT JOIN LEFT JOIN
( (
SELECT SELECT
...@@ -84,6 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -84,6 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT SELECT
m.*, m.*,
uv.nick_name, uv.nick_name,
uv.avatar,
IF(l.id IS NOT NULL, 1, 0) AS is_like, IF(l.id IS NOT NULL, 1, 0) AS is_like,
IF(v.id IS NOT NULL, 1, 0) AS is_vote, IF(v.id IS NOT NULL, 1, 0) AS is_vote,
IF(m.user_name = #{userName}, 1, 0) AS is_self IF(m.user_name = #{userName}, 1, 0) AS is_self
...@@ -129,6 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -129,6 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT SELECT
m.*, m.*,
uv.nick_name, uv.nick_name,
uv.avatar,
IF(l.id IS NOT NULL, 1, 0) AS is_like, IF(l.id IS NOT NULL, 1, 0) AS is_like,
IF(v.id IS NOT NULL, 1, 0) AS is_vote, IF(v.id IS NOT NULL, 1, 0) AS is_vote,
IF(m.user_name = #{userName}, 1, 0) AS is_self IF(m.user_name = #{userName}, 1, 0) AS is_self
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment