Commit d650878c authored by 万成波's avatar 万成波

优化代码

parent 9fd968f4
......@@ -2,6 +2,7 @@ package com.tangguo.web.controller.system;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSON;
import com.tangguo.common.annotation.Log;
import com.tangguo.common.constant.Constants;
import com.tangguo.common.core.domain.AjaxResult;
import com.tangguo.common.core.domain.entity.SysMenu;
......@@ -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.LoginUser;
import com.tangguo.common.core.domain.model.WxcpCodeLogin;
import com.tangguo.common.enums.BusinessType;
import com.tangguo.common.exception.ServiceException;
import com.tangguo.common.utils.SecurityUtils;
import com.tangguo.common.utils.StringUtils;
import com.tangguo.framework.config.ServerConfig;
import com.tangguo.framework.web.service.SysLoginService;
import com.tangguo.framework.web.service.SysPermissionService;
import com.tangguo.framework.web.service.TokenService;
import com.tangguo.framework.web.service.UserDetailsServiceImpl;
import com.tangguo.system.service.ISysMenuService;
import com.tangguo.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.cp.api.WxCpOAuth2Service;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpOauth2UserInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
......@@ -62,6 +63,9 @@ public class SysLoginController {
@Autowired
private ServerConfig serverConfig;
@Autowired
private ISysUserService userService;
/**
* 登录方法
......@@ -122,6 +126,8 @@ public class SysLoginController {
@PostMapping("/bbs/mobile/user/code/login")
public AjaxResult codeLogin(@RequestBody WxcpCodeLogin bo) {
LoginUser loginUser = SecurityUtils.getLoginUserNotEx();
log.info("=> 登录请求参数:{}", bo);
log.info("=> 当前登录用户:{}", loginUser);
// 企微登录认证链接
String authCode = bo.getCode();
......@@ -130,6 +136,7 @@ public class SysLoginController {
WxCpOAuth2Service oauth2Service = this.wxCpService.getOauth2Service();
if (Objects.isNull(loginUser) && StrUtil.isBlank(authCode)) {
String oauth2Url = oauth2Service.buildAuthorizationUrl(redirectUrl, null);
log.info("=> 认证失败,返回Oauth2登录链接:{}", oauth2Url);
return AjaxResult.error(401, "身份认证失败", oauth2Url);
}
......@@ -146,6 +153,8 @@ public class SysLoginController {
throw new ServiceException("登录失败,查询用户信息失败。");
}
}
log.info("=> 登录结果:{}", token);
return AjaxResult.success("登录成功", token);
}
......@@ -157,6 +166,7 @@ public class SysLoginController {
*/
@GetMapping("/bbs/mobile/user/profile")
public AjaxResult getUserProfile() {
log.info("=> 查询用户信息,当前登录用户名:{}", SecurityUtils.getUsername());
final String bbsAdmin = "bbs_admin";
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
......@@ -165,4 +175,28 @@ public class SysLoginController {
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 @@
<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="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="commentCount" align="center" width="100"></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;
import com.tangguo.common.annotation.Excels;
import com.tangguo.common.core.domain.BaseEntity;
import com.tangguo.common.xss.Xss;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
......@@ -20,6 +21,7 @@ import java.util.List;
*
* @author ruoyi
*/
@ToString
public class SysUser extends BaseEntity {
private static final long serialVersionUID = 1L;
......@@ -309,28 +311,4 @@ public class SysUser extends BaseEntity {
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;
import com.tangguo.common.utils.ServletUtils;
import com.tangguo.common.utils.StringUtils;
import com.tangguo.framework.config.ServerConfig;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.cp.api.WxCpOAuth2Service;
import me.chanjar.weixin.cp.api.WxCpService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -25,6 +26,7 @@ import java.util.Objects;
*
* @author ruoyi
*/
@Slf4j
@Component
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, Serializable {
private static final long serialVersionUID = -8970718410437077606L;
......@@ -38,10 +40,11 @@ public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint, S
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e)
throws IOException {
String uri = request.getRequestURI();
int code = HttpStatus.UNAUTHORIZED;
log.info("=> 身份认证失败,Token:{}", request.getHeader("Authorization"));
if (uri.startsWith("/bbs/mobile")) {
String baseUrl = this.serverConfig.getUrl();
String redirectUrl = baseUrl + "/bbs/h5/pages/login/login/";
......
......@@ -118,6 +118,13 @@ public class BbsMoment extends BaseEntity {
@TableField(exist = false)
private String deptName;
@TableField(exist = false)
private String ancestors;
@TableField(exist = false)
private String fullDeptName;
/** 动态附件 */
@TableField(exist = false)
private List<BbsMomentAttachment> attachments;
......
......@@ -30,6 +30,9 @@ public class BbsMomentListVO {
/** 发布人用户名 */
private String userName;
/** 发布人头像 */
private String avatar;
/** 动态内容 */
private String content;
......
package com.tangguo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tangguo.common.core.domain.entity.SysDept;
import com.tangguo.domain.BbsMoment;
import com.tangguo.domain.bo.QueryMomentBO;
import com.tangguo.domain.vo.BbsMomentListVO;
......@@ -19,6 +20,8 @@ public interface BbsMomentMapper extends BaseMapper<BbsMoment> {
List<BbsMoment> selectBbsMomentList(@Param("moment") BbsMoment moment);
List<String> selectBbsMomentDepts(@Param("deptIds") String[] deptIds);
BbsUserMomentCountVO selectUserMomentCount(@Param("userName") String userName);
......
package com.tangguo.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.dfa.FoundWord;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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.enums.*;
import com.tangguo.common.exception.ServiceException;
......@@ -77,6 +79,14 @@ public class BbsMomentServiceImpl extends ServiceImpl<BbsMomentMapper, BbsMoment
.filter(a -> dbMoment.getId().equals(a.getMomentId()))
.collect(Collectors.toList());
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;
}
......
......@@ -8,7 +8,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT
m.*,
uv.nick_name,
ud.dept_name
ud.dept_name,
ud.ancestors
FROM
bbs_moment m
LEFT JOIN
......@@ -28,12 +29,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="moment.params.endTime != null and moment.params.endTime != ''">
AND DATE_FORMAT(m.create_time, '%Y-%m-%d') &lt;= #{moment.params.endTime}
</if>
<if test="moment.deptName != null and moment.deptName != ''">
AND d.dept_name LIKE CONCAT('%', #{moment.deptName}, '%')
</if>
</where>
ORDER BY
m.create_time DESC
</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
(SELECT COUNT(*) FROM bbs_moment WHERE user_name = #{userName}) AS moment_count,
......@@ -45,10 +62,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectUserMoments" resultType="com.tangguo.domain.vo.BbsMomentListVO">
SELECT
m.*,
uv.nick_name,
uv.avatar,
IF(l.id IS NOT NULL, 1, 0) AS is_like,
IF(v.id IS NOT NULL, 1, 0) AS is_vote
FROM
bbs_moment m
LEFT JOIN
sys_user uv ON uv.user_name = m.user_name
LEFT JOIN
(
SELECT
......@@ -84,6 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT
m.*,
uv.nick_name,
uv.avatar,
IF(l.id IS NOT NULL, 1, 0) AS is_like,
IF(v.id IS NOT NULL, 1, 0) AS is_vote,
IF(m.user_name = #{userName}, 1, 0) AS is_self
......@@ -129,6 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT
m.*,
uv.nick_name,
uv.avatar,
IF(l.id IS NOT NULL, 1, 0) AS is_like,
IF(v.id IS NOT NULL, 1, 0) AS is_vote,
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