diff --git a/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java b/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java index c34f5da8..ca932aaa 100644 --- a/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java +++ b/server/like-front/src/main/java/com/mdd/front/config/FrontConfig.java @@ -13,6 +13,7 @@ public class FrontConfig { "/api/login", "/api/index", "/api/config", + "/api/policy", "/api/decorate", "/api/sms/send", diff --git a/server/like-front/src/main/java/com/mdd/front/controller/IndexController.java b/server/like-front/src/main/java/com/mdd/front/controller/IndexController.java index d591a0ac..6cda6216 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/IndexController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/IndexController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; import java.util.Map; @RestController @@ -56,4 +57,29 @@ public class IndexController { return AjaxResult.success(map); } + /** + * 协议 + * + * @author fzr + * @param type 类型 service=服务协议,privacy=隐私协议 + * @return Object + */ + @GetMapping("/policy") + public Object policy(@RequestParam String type) { + Map map = iIndexService.policy(type); + return AjaxResult.success(map); + } + + /** + * 热搜 + * + * @author fzr + * @return Object + */ + @GetMapping("/search") + public Object search() { + List list = iIndexService.search(); + return AjaxResult.success(list); + } + } diff --git a/server/like-front/src/main/java/com/mdd/front/controller/UserController.java b/server/like-front/src/main/java/com/mdd/front/controller/UserController.java index 2d5d2b26..c779cde5 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/UserController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/UserController.java @@ -1,24 +1,53 @@ package com.mdd.front.controller; import com.mdd.common.core.AjaxResult; +import com.mdd.front.LikeFrontThreadLocal; +import com.mdd.front.service.IUserService; +import com.mdd.front.vo.user.UserCenterVo; +import com.mdd.front.vo.user.UserInfoVo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + @RestController @RequestMapping("api/user") public class UserController { + @Resource + IUserService iUserService; + + /** + * 个人中心 + * + * @author fzr + * @return Object + */ @GetMapping("/center") public Object center() { - return AjaxResult.success(); + UserCenterVo vo = iUserService.center(LikeFrontThreadLocal.getUserId()); + return AjaxResult.success(vo); } + /** + * 个人信息 + * + * @author fzr + * @return Object + */ @GetMapping("/info") public Object info() { - return AjaxResult.success(); + UserInfoVo vo = iUserService.info(LikeFrontThreadLocal.getUserId()); + return AjaxResult.success(vo); } + /** + * 政策协议 + * + * @author fzr + * @return Object + */ @GetMapping("/agreement") public Object agreement() { return AjaxResult.success(); diff --git a/server/like-front/src/main/java/com/mdd/front/service/IIndexService.java b/server/like-front/src/main/java/com/mdd/front/service/IIndexService.java index 60552777..77274477 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/IIndexService.java +++ b/server/like-front/src/main/java/com/mdd/front/service/IIndexService.java @@ -1,5 +1,6 @@ package com.mdd.front.service; +import java.util.List; import java.util.Map; /** @@ -31,4 +32,21 @@ public interface IIndexService { */ Map config(); + /** + * 政策 + * + * @author fzr + * @param type 类型 service=服务协议,privacy=隐私协议 + * @return Map + */ + Map policy(String type); + + /** + * 热搜 + * + * @author fzr + * @return List + */ + List search(); + } diff --git a/server/like-front/src/main/java/com/mdd/front/service/IUserService.java b/server/like-front/src/main/java/com/mdd/front/service/IUserService.java index 902fe124..4dc85bd8 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/IUserService.java +++ b/server/like-front/src/main/java/com/mdd/front/service/IUserService.java @@ -1,4 +1,11 @@ package com.mdd.front.service; +import com.mdd.front.vo.user.UserCenterVo; +import com.mdd.front.vo.user.UserInfoVo; + public interface IUserService { + + UserCenterVo center(Integer userId); + + UserInfoVo info(Integer userId); } diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/IndexServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/IndexServiceImpl.java index 700bc1f8..6e4e4f65 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/IndexServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/IndexServiceImpl.java @@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Assert; import com.mdd.common.entity.decorate.DecoratePage; import com.mdd.common.entity.decorate.DecorateTabbar; +import com.mdd.common.entity.setting.HotSearch; import com.mdd.common.mapper.decorate.DecoratePageMapper; import com.mdd.common.mapper.decorate.DecorateTabbarMapper; +import com.mdd.common.mapper.setting.HotSearchMapper; import com.mdd.common.utils.ConfigUtil; import com.mdd.common.utils.ToolsUtil; import com.mdd.common.utils.UrlUtil; @@ -13,10 +15,7 @@ import com.mdd.front.service.IIndexService; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 首页服务实现类 @@ -30,6 +29,9 @@ public class IndexServiceImpl implements IIndexService { @Resource DecorateTabbarMapper decorateTabbarMapper; + @Resource + HotSearchMapper hotSearchMapper; + /** * 首页 * @@ -100,4 +102,47 @@ public class IndexServiceImpl implements IIndexService { return response; } + /** + * 政策 + * + * @author fzr + * @param type 类型 service=服务协议,privacy=隐私协议 + * @return Map + */ + @Override + public Map policy(String type) { + Map map = ConfigUtil.getMap("protocol", type); + if (map == null) { + Map m = new LinkedHashMap<>(); + m.put("name", ""); + m.put("content", ""); + return m; + } + return map; + } + + /** + * 热搜 + * + * @author fzr + * @return List + */ + @Override + public List search() { + String isHotSearch = ConfigUtil.get("search", "isHotSearch", "0"); + + List list = new LinkedList<>(); + if (Integer.parseInt(isHotSearch) == 1) { + List hotSearches = hotSearchMapper.selectList( + new QueryWrapper() + .orderByDesc(Arrays.asList("sort", "id"))); + + for (HotSearch hotSearch : hotSearches) { + list.add(hotSearch.getName()); + } + } + + return list; + } + } diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/UserServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/UserServiceImpl.java index 72dabd34..8ef83280 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/UserServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/UserServiceImpl.java @@ -1,7 +1,88 @@ package com.mdd.front.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mdd.common.config.GlobalConfig; +import com.mdd.common.entity.user.User; +import com.mdd.common.entity.user.UserAuth; +import com.mdd.common.enums.ClientEnum; +import com.mdd.common.mapper.user.UserAuthMapper; +import com.mdd.common.mapper.user.UserMapper; +import com.mdd.common.utils.ConfigUtil; +import com.mdd.common.utils.TimeUtil; +import com.mdd.common.utils.UrlUtil; +import com.mdd.front.service.IUserService; +import com.mdd.front.vo.user.UserCenterVo; +import com.mdd.front.vo.user.UserInfoVo; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; @Service -public class UserServiceImpl { +public class UserServiceImpl implements IUserService { + + @Resource + UserMapper userMapper; + + @Resource + UserAuthMapper userAuthMapper; + + /** + * 个人中心 + * + * @author fzr + * @param userId 用户ID + * @return UserCenterVo + */ + @Override + public UserCenterVo center(Integer userId) { + User user = userMapper.selectOne(new QueryWrapper() + .select("id,sn,avatar,real_name,nickname,username,mobile") + .eq("id", userId) + .last("limit 1")); + + UserCenterVo vo = new UserCenterVo(); + BeanUtils.copyProperties(user, vo); + if (user.getAvatar().equals("")) { + String avatar = ConfigUtil.get("user", "defaultAvatar", ""); + vo.setAvatar(UrlUtil.toAbsoluteUrl(avatar)); + } else { + vo.setAvatar(UrlUtil.toAbsoluteUrl(user.getAvatar())); + } + + return vo; + } + + @Override + public UserInfoVo info(Integer userId) { + User user = userMapper.selectOne(new QueryWrapper() + .select("id,sn,avatar,real_name,nickname,username,mobile,password,sex,create_time") + .eq("id", userId) + .last("limit 1")); + + UserAuth userAuth = userAuthMapper.selectOne(new QueryWrapper() + .select("id,openid") + .eq("user_id", userId) + .eq("client", ClientEnum.MNP.getCode()) + .last("limit 1")); + + UserInfoVo vo = new UserInfoVo(); + BeanUtils.copyProperties(user, vo); + vo.setIsPassword(!user.getPassword().equals("")); + vo.setIsBindMnp(userAuth != null); + vo.setVersion(GlobalConfig.version); + vo.setSex(user.getSex()); + vo.setCreateTime(TimeUtil.timestampToDate(user.getCreateTime())); + + if (!user.getAvatar().equals("")) { + vo.setAvatar(UrlUtil.toAbsoluteUrl(user.getAvatar())); + } else { + String avatar = ConfigUtil.get("user", "defaultAvatar", ""); + vo.setAvatar(UrlUtil.toAbsoluteUrl(avatar)); + } + + return vo; + } + } diff --git a/server/like-front/src/main/java/com/mdd/front/vo/user/UserCenterVo.java b/server/like-front/src/main/java/com/mdd/front/vo/user/UserCenterVo.java new file mode 100644 index 00000000..fb369df1 --- /dev/null +++ b/server/like-front/src/main/java/com/mdd/front/vo/user/UserCenterVo.java @@ -0,0 +1,23 @@ +package com.mdd.front.vo.user; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 用户个人中心Vo + */ +@Data +public class UserCenterVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer id; + private Integer sn; + private String avatar; + private String realName; + private String nickname; + private String username; + private String mobile; + +} diff --git a/server/like-front/src/main/java/com/mdd/front/vo/user/UserInfoVo.java b/server/like-front/src/main/java/com/mdd/front/vo/user/UserInfoVo.java new file mode 100644 index 00000000..21eb0b12 --- /dev/null +++ b/server/like-front/src/main/java/com/mdd/front/vo/user/UserInfoVo.java @@ -0,0 +1,42 @@ +package com.mdd.front.vo.user; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 用户个人中心Vo + */ +@Data +public class UserInfoVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer id; + private Integer sn; + private String avatar; + private String realName; + private String nickname; + private String username; + private String mobile; + private String sex; + private Boolean isPassword; + private Boolean isBindMnp; + private String version; + private String createTime; + + public void setSex(Integer sex) { + switch (sex) { + case 0: + this.sex = "未知"; + break; + case 1: + this.sex = "男"; + break; + case 2: + this.sex = "女"; + break; + } + } + +}