Bläddra i källkod

升级hutool,APP端添加我的好友功能

Alex 4 år sedan
förälder
incheckning
68dc0f7d9a
21 ändrade filer med 309 tillägg och 51 borttagningar
  1. 7 1
      pom.xml
  2. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbAppUserController.java
  3. 3 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbMyPublishController.java
  4. 3 2
      ruoyi-app/src/main/java/com/ruoyi/app/base/AppTokenService.java
  5. 46 0
      ruoyi-app/src/main/java/com/ruoyi/app/controller/AppUserController.java
  6. 141 0
      ruoyi-app/src/main/java/com/ruoyi/app/controller/MyFriendController.java
  7. 4 4
      ruoyi-app/src/main/java/com/ruoyi/app/controller/MyProfileController.java
  8. 27 13
      ruoyi-app/src/main/java/com/ruoyi/app/controller/MyPublishController.java
  9. 6 6
      ruoyi-app/src/main/java/com/ruoyi/app/controller/PublishThumbsController.java
  10. 5 8
      ruoyi-app/src/main/java/com/ruoyi/app/controller/base/AppBaseController.java
  11. 6 0
      ruoyi-common/pom.xml
  12. 3 0
      ruoyi-system/src/main/java/com/ruoyi/app/domain/TbAppUser.java
  13. 5 0
      ruoyi-system/src/main/java/com/ruoyi/app/domain/TbFamilyMember.java
  14. 10 0
      ruoyi-system/src/main/java/com/ruoyi/app/domain/vo/AppMemberVo.java
  15. 1 1
      ruoyi-system/src/main/java/com/ruoyi/app/mapper/TbAppUserMapper.java
  16. 1 1
      ruoyi-system/src/main/java/com/ruoyi/app/service/ITbAppUserService.java
  17. 15 2
      ruoyi-system/src/main/java/com/ruoyi/app/service/impl/TbAppUserServiceImpl.java
  18. 4 4
      ruoyi-system/src/main/java/com/ruoyi/app/service/impl/TbMyFriendsServiceImpl.java
  19. 7 1
      ruoyi-system/src/main/resources/mapper/app/TbAppUserMapper.xml
  20. 2 0
      ruoyi-system/src/main/resources/mapper/app/TbFamilyMemberMapper.xml
  21. 12 7
      ruoyi-system/src/main/resources/mapper/app/TbMyFriendsMapper.xml

+ 7 - 1
pom.xml

@@ -31,7 +31,7 @@
         <velocity.version>1.7</velocity.version>
         <jwt.version>0.9.1</jwt.version>
         <mybatis-plus.version>3.3.0</mybatis-plus.version>
-        <hutool.version>5.1.0</hutool.version>
+        <hutool.version>5.4.1</hutool.version>
     </properties>
 	
     <!-- 依赖声明 -->
@@ -216,6 +216,12 @@
                 <version>${ruoyi.version}</version>
             </dependency>
 
+            <!-- pinyin4j -->
+            <dependency>
+                <groupId>com.belerweb</groupId>
+                <artifactId>pinyin4j</artifactId>
+                <version>2.5.1</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbAppUserController.java

@@ -119,7 +119,7 @@ public class TbAppUserController extends BaseController {
     @GetMapping(value = "/{id}" )
     public AjaxResult getInfo(@PathVariable("id" ) Long id) {
 
-        return AjaxResult.success(iTbAppUserService.getAppMember(id.toString()));
+        return AjaxResult.success(iTbAppUserService.getAppMember(id.toString(),""));
     }
 
     /**

+ 3 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TbMyPublishController.java

@@ -113,6 +113,9 @@ public class TbMyPublishController extends BaseController {
     @Log(title = "我的近况" , businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}" )
     public AjaxResult remove(@PathVariable Long[] ids) {
+        if (ids.length <= 0) {
+            return AjaxResult.error("id不能为空");
+        }
         return toAjax(iTbMyPublishService.delPublish(Arrays.asList(ids)) ? 1 : 0);
     }
 

+ 3 - 2
ruoyi-app/src/main/java/com/ruoyi/app/base/AppTokenService.java

@@ -143,9 +143,10 @@ public class AppTokenService {
      *
      * @param loginUser 登录信息
      */
-    public void refreshToken(AppLoginUser loginUser) {
+    public void refreshToken(AppLoginUser loginUser)
+    {
         loginUser.setLoginTime(System.currentTimeMillis());
-        loginUser.setExpireTime(loginUser.getLoginTime() + expireTime);
+        loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
         // 根据mobile将loginUser缓存
         String userKey = getTokenKey(loginUser.getUser().getMobile());
         redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);

+ 46 - 0
ruoyi-app/src/main/java/com/ruoyi/app/controller/AppUserController.java

@@ -0,0 +1,46 @@
+package com.ruoyi.app.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.app.controller.base.AppBaseController;
+import com.ruoyi.app.domain.TbAppUser;
+import com.ruoyi.app.domain.vo.AppMemberVo;
+import com.ruoyi.app.service.ITbAppUserService;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 会员管理
+ *
+ * @author Alex
+ * @date 2020-09-24
+ */
+@Api(value = "会员管理",tags = "会员管理")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/app/user" )
+public class AppUserController extends AppBaseController {
+
+    private final ITbAppUserService userService;
+
+    /**
+     * 修改会员+家族成员
+     */
+    @ApiOperation("修改会员信息")
+    @PutMapping("/editAppUser")
+    public AjaxResult editAppUser(@RequestBody AppMemberVo memberVo) {
+
+        return toAjax(userService.saveOrUpdate(memberVo) ? 1 : 0);
+    }
+}

+ 141 - 0
ruoyi-app/src/main/java/com/ruoyi/app/controller/MyFriendController.java

@@ -0,0 +1,141 @@
+package com.ruoyi.app.controller;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.ruoyi.app.controller.base.AppBaseController;
+import com.ruoyi.app.domain.TbAppUser;
+import com.ruoyi.app.domain.TbMyFriends;
+import com.ruoyi.app.service.ITbAppUserService;
+import com.ruoyi.app.service.ITbMyFriendsService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.net.Inet4Address;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 我的好友
+ *
+ * @author Alex
+ * @date 2020-10-11
+ */
+@Api(value = "我的好友",tags = "我的好友")
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/app/friend" )
+public class MyFriendController extends AppBaseController {
+
+    private final ITbMyFriendsService friendsService;
+    private final ITbAppUserService userService;
+
+
+    /**
+     * 查询我的好友列表
+     */
+    @ApiOperation("好友列表")
+    @ApiImplicitParam(name = "searchValue", value = "模糊条件:好友ID、好友昵称、拼音大写首字母",paramType="String")
+    @GetMapping("/myList")
+    public TableDataInfo list(String searchValue) {
+        TbMyFriends tbMyFriends = new TbMyFriends();
+        //已通过的好友
+        tbMyFriends.setStatus("2");
+        tbMyFriends.setSearchValue(searchValue);
+        List<TbMyFriends> list = friendsService.pageList(tbMyFriends);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("添加好友-搜索")
+    @ApiImplicitParam(name = "searchValue", value = "查询条件:会员号/手机号",paramType="String")
+    @GetMapping("/getByMobile")
+    public AjaxResult getByMobile(String searchValue) {
+        if (StringUtils.isBlank(searchValue)){
+            return AjaxResult.error("会员号/手机号不能为空");
+        }
+        return AjaxResult.success(userService.getAppMember(null,searchValue));
+    }
+    @ApiOperation("根据id获取好友")
+    @ApiImplicitParam(name = "id", value = "好友id",paramType="Long")
+    @GetMapping("/getById")
+    public AjaxResult get(Long id) {
+        if (id == null){
+            return AjaxResult.error("id不能为空");
+        }
+        return AjaxResult.success(userService.getAppMember(id.toString(),null));
+    }
+
+    @ApiOperation("添加申请好友")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody TbMyFriends friends) {
+        if (friends.getAppUserId() == null || friends.getFriendsUserId() == null) {
+            return AjaxResult.error("参数异常");
+        }
+        // 查询是否已经存在
+        TbMyFriends item = friendsService.getOne(new LambdaQueryWrapper<TbMyFriends>()
+                .nested(
+                        i -> i.eq(TbMyFriends::getAppUserId, friends.getAppUserId())
+                        .eq(TbMyFriends::getFriendsUserId, friends.getFriendsUserId())
+                )
+                .or(
+                        i -> i.eq(TbMyFriends::getAppUserId,friends.getFriendsUserId())
+                        .eq(TbMyFriends::getFriendsUserId,friends.getAppUserId())
+                )
+        );
+        TbAppUser user = getLoginUser().getUser();
+        // 已存在并已通过
+        if (item != null && item.getStatus().equals("2")) {
+            return AjaxResult.success();
+        }
+        friends.setStatus("1"); //申请
+        friends.setCreateBy(user.getId().toString());
+        friends.setCreateTime(new Date());
+        // 不存在则新增
+        if (item == null) {
+            friendsService.save(friends);
+        }else{
+            // 已存在未通过
+            // id为空
+            if (friends.getId() == null) {
+                return AjaxResult.error("申请失败");
+            }
+            friendsService.updateById(friends);
+        }
+        return AjaxResult.success();
+    }
+
+
+    @ApiOperation("申请列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "appUserId", value = "会员id",paramType="Long"),
+            @ApiImplicitParam(name = "pageNum", value = "当前页",paramType="int"),
+            @ApiImplicitParam(name = "pageSize", value = "每页行数",paramType="int")
+    })
+    @GetMapping("/selectApply")
+    public TableDataInfo selectApply(Long appUserId, Integer pageNum, Integer pageSize) {
+        if (appUserId == null) {
+            return new TableDataInfo();
+        }
+        pageNum = pageNum == null ? 1 : pageNum;
+        pageSize = pageSize == null ? 10 : pageSize;
+        PageHelper.startPage(pageNum, pageSize, "create_time desc");
+        List<TbMyFriends> list = friendsService.list(new LambdaQueryWrapper<TbMyFriends>()
+                .eq(TbMyFriends::getAppUserId, appUserId)
+                .and(
+                        i -> i.eq(TbMyFriends::getStatus,"1").or()
+                        .eq(TbMyFriends::getStatus,"3")
+                )
+        );
+        return getDataTable(list);
+    }
+}

+ 4 - 4
ruoyi-app/src/main/java/com/ruoyi/app/controller/MyProfileController.java

@@ -32,14 +32,14 @@ public class MyProfileController extends AppBaseController {
     private final ITbMyProfileService profileService;
 
     @ApiOperation("个人详情列表")
-    @ApiImplicitParam(name = "userId", value = "会员ID",paramType="Long")
+    @ApiImplicitParam(name = "appUserId", value = "会员ID",paramType="Long")
     @GetMapping("/list")
-    public AjaxResult list(Long userId) {
-        if (userId == null){
+    public AjaxResult list(Long appUserId) {
+        if (appUserId == null){
             return AjaxResult.error("参数为空");
         }
         List<TbMyProfile> profileList = profileService.list(new LambdaQueryWrapper<TbMyProfile>()
-            .eq(TbMyProfile::getAppUserId, userId)
+            .eq(TbMyProfile::getAppUserId, appUserId)
         );
         return AjaxResult.success(profileList);
     }

+ 27 - 13
ruoyi-app/src/main/java/com/ruoyi/app/controller/MyPublishController.java

@@ -9,9 +9,11 @@ import com.ruoyi.app.domain.TbPublishImg;
 import com.ruoyi.app.service.ITbAppUserService;
 import com.ruoyi.app.service.ITbMyPublishService;
 import com.ruoyi.app.service.ITbPublishImgService;
+import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.framework.config.ServerConfig;
@@ -26,10 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 我的近况
@@ -53,14 +52,14 @@ public class MyPublishController extends AppBaseController {
      * @return
      */
     @ApiOperation("族友圈 分页列表")
-    @ApiImplicitParam(name = "userId", value = "会员ID",paramType="Long")
+    @ApiImplicitParam(name = "appUserId", value = "会员ID",paramType="Long")
     @GetMapping("/selectCircle")
-    public TableDataInfo selectCircle(Long userId){
-        if (userId == null) {
+    public TableDataInfo selectCircle(Long appUserId){
+        if (appUserId == null) {
             return new TableDataInfo();
         }
         List<TbMyPublish> list = publishService.selectPublish(new LambdaQueryWrapper<TbMyPublish>()
-                .eq(TbMyPublish::getAppUserId,userId)
+                .eq(TbMyPublish::getAppUserId,appUserId)
         );
         return getDataTable(list);
     }
@@ -69,14 +68,14 @@ public class MyPublishController extends AppBaseController {
      * 查询我的近况 列表
      */
     @ApiOperation("我的近况 分页列表")
-    @ApiImplicitParam(name = "userId", value = "会员ID",paramType="Long")
+    @ApiImplicitParam(name = "appUserId", value = "会员ID",paramType="Long")
     @GetMapping("/list")
-    public TableDataInfo pageList(Long userId) {
-        if (userId == null) {
+    public TableDataInfo pageList(Long appUserId) {
+        if (appUserId == null) {
             return new TableDataInfo();
         }
         TbMyPublish tbMyPublish = new TbMyPublish();
-        tbMyPublish.setAppUserId(userId);
+        tbMyPublish.setAppUserId(appUserId);
         tbMyPublish.setDeleted("N");
         return publishService.pageList(tbMyPublish);
     }
@@ -94,7 +93,7 @@ public class MyPublishController extends AppBaseController {
     @ApiOperation("上传图片")
     @ResponseBody
     @PostMapping("/upload")
-    public AjaxResult upload(@RequestParam(value = "file") MultipartFile files[]) throws Exception {
+    public AjaxResult upload(@RequestParam(value = "file") MultipartFile files[]) {
 
         // 上传文件路径
         String filePath = RuoYiConfig.getUploadPath()+"/publish";
@@ -148,4 +147,19 @@ public class MyPublishController extends AppBaseController {
         }
         return AjaxResult.error("发表失败");
     }
+
+
+    /**
+     * 逻辑删除我的近况
+     */
+    @ApiOperation("逻辑删除我的近况 ")
+    @ApiImplicitParam(name = "ids", value = "主键id数组",paramType="Long")
+    @DeleteMapping("/del/{ids}" )
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        if (ids.length <= 0) {
+            return AjaxResult.error("id不能为空");
+        }
+        return toAjax(publishService.delPublish(Arrays.asList(ids)) ? 1 : 0);
+    }
+
 }

+ 6 - 6
ruoyi-app/src/main/java/com/ruoyi/app/controller/PublishThumbsController.java

@@ -37,31 +37,31 @@ public class PublishThumbsController extends AppBaseController {
 
     /**
      * 点赞/取消
-     * @param userId
+     * @param appUserId
      * @param publishId
      * @return
      */
     @ApiOperation("点赞/取消")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "userId", value = "点赞人id",paramType="Long"),
+            @ApiImplicitParam(name = "appUserId", value = "点赞人id",paramType="Long"),
             @ApiImplicitParam(name = "publishId", value = "发表id",paramType="Long")
     })
     @GetMapping("/action")
-    public AjaxResult action(Long userId,Long publishId){
+    public AjaxResult action(Long appUserId,Long publishId){
         // TODO 在点赞或取消时,APP端的点赞数组异步增加或去掉记录
-        if (userId == null || publishId == null) {
+        if (appUserId == null || publishId == null) {
             return AjaxResult.error("参数不能为空");
         }
         TbPublishThumbs thumbs = thumbsService.getOne(new LambdaQueryWrapper<TbPublishThumbs>()
                 .eq(TbPublishThumbs::getPublishId, publishId)
-                .eq(TbPublishThumbs::getAppUserId,userId)
+                .eq(TbPublishThumbs::getAppUserId,appUserId)
         );
         TbAppUser user = getLoginUser().getUser();
         Date date = new Date();
         // 点赞
         if (thumbs == null) {
             thumbs = new TbPublishThumbs();
-            thumbs.setAppUserId(userId);
+            thumbs.setAppUserId(appUserId);
             thumbs.setPublishId(publishId);
             thumbs.setCreateBy(user.getId().toString());
             thumbs.setCreateTime(date);

+ 5 - 8
ruoyi-app/src/main/java/com/ruoyi/app/controller/base/AppBaseController.java

@@ -35,8 +35,7 @@ public class AppBaseController {
      * 将前台传递过来的日期格式的字符串,自动转化为Date类型
      */
     @InitBinder
-    public void initBinder(WebDataBinder binder)
-    {
+    public void initBinder(WebDataBinder binder) {
         // Date 类型转换
         binder.registerCustomEditor(Date.class, new PropertyEditorSupport()
         {
@@ -51,11 +50,10 @@ public class AppBaseController {
     /**
      * 设置请求分页数据
      */
-    protected void startPage()
-    {
+    protected void startPage() {
         PageDomain pageDomain = TableSupport.buildPageRequest();
-        Integer pageNum = pageDomain.getPageNum();
-        Integer pageSize = pageDomain.getPageSize();
+        Integer pageNum = pageDomain.getPageNum() == null ? 1 : pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize() == null ? 10 : pageDomain.getPageSize();
         if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
         {
             String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
@@ -67,8 +65,7 @@ public class AppBaseController {
      * 响应请求分页数据
      */
     @SuppressWarnings({ "rawtypes", "unchecked" })
-    protected TableDataInfo getDataTable(List<?> list)
-    {
+    protected TableDataInfo getDataTable(List<?> list) {
         TableDataInfo rspData = new TableDataInfo();
         rspData.setCode(HttpStatus.SUCCESS);
         rspData.setMsg("查询成功");

+ 6 - 0
ruoyi-common/pom.xml

@@ -160,6 +160,12 @@
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger-ui</artifactId>
         </dependency>
+
+        <!-- pinyin4j -->
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/app/domain/TbAppUser.java

@@ -77,6 +77,9 @@ public class TbAppUser implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date loginTime;
 
+    private String pyCode;
+    private String pyFirst;
+
     /** 创建者 */
     private Long createBy;
 

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/app/domain/TbFamilyMember.java

@@ -54,6 +54,11 @@ public class TbFamilyMember implements Serializable {
     @Excel(name = "姓名")
     private String name;
 
+    @ApiModelProperty(value="姓名拼音首字母")
+    private String pyCode;
+    @ApiModelProperty(value="拼音第一个字母")
+    private String pyFirst;
+
     /** 生日 */
     @ApiModelProperty(value="生日")
     @Excel(name = "生日" , width = 30, dateFormat = "yyyy-MM-dd")

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/app/domain/vo/AppMemberVo.java

@@ -81,6 +81,16 @@ public class AppMemberVo extends BaseEntity {
     private String deleted;
 
 
+    @ApiModelProperty(value="会员昵称拼音首字母")
+    private String userPyCode;
+    @ApiModelProperty(value="会员拼音第一个字母")
+    private String userPyFirst;
+
+    @ApiModelProperty(value="族员姓名拼音首字母")
+    private String MemberPyCode;
+    @ApiModelProperty(value="族员拼音第一个字母")
+    private String MemberPyFirst;
+
 
 
     /** 配偶 */

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/app/mapper/TbAppUserMapper.java

@@ -30,5 +30,5 @@ public interface TbAppUserMapper extends BaseMapper<TbAppUser> {
                                        @Param("beginTime") String beginTime,
                                        @Param("endTime") String endTime);
 
-    AppMemberVo getAppMember(@Param("type") String type, @Param("id") String id);
+    AppMemberVo getAppMember(@Param("type") String type, @Param("id") String id, @Param("search") String search);
 }

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/app/service/ITbAppUserService.java

@@ -19,5 +19,5 @@ public interface ITbAppUserService extends IService<TbAppUser> {
 
     boolean saveOrUpdate(AppMemberVo memberVo);
 
-    AppMemberVo getAppMember(String id);
+    AppMemberVo getAppMember(String id,String search);
 }

+ 15 - 2
ruoyi-system/src/main/java/com/ruoyi/app/service/impl/TbAppUserServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ruoyi.app.service.impl;
 
+import cn.hutool.core.comparator.PinyinComparator;
+import cn.hutool.extra.pinyin.PinyinUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.app.domain.TbAppUser;
 import com.ruoyi.app.domain.TbFamilyMember;
@@ -10,6 +12,7 @@ import com.ruoyi.app.service.ITbAppUserService;
 import com.ruoyi.app.service.ITbFamilyMemberService;
 import com.ruoyi.app.service.ITbMemberMiddleService;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -83,6 +86,16 @@ public class TbAppUserServiceImpl extends ServiceImpl<TbAppUserMapper, TbAppUser
         appUser.setRemark(memberVo.getUserRemark());
         member.setUpdateBy(memberVo.getUserUpdateBy());
         member.setUpdateTime(date);
+        if (StringUtils.isNotBlank(memberVo.getNickName())) {
+            String py = PinyinUtil.getFirstLetter(memberVo.getNickName(), "").toUpperCase();
+            appUser.setPyCode(py);
+            appUser.setPyFirst(StringUtils.substring(py,0,1));
+        }
+        if (StringUtils.isNotBlank(memberVo.getName())) {
+            String py = PinyinUtil.getFirstLetter(memberVo.getName(), "").toUpperCase();
+            member.setPyCode(py);
+            member.setPyFirst(StringUtils.substring(py,0,1));
+        }
         //新增用户
         if (memberVo.getUserId() == null) {
             appUser.setQrcode(DateUtils.getCurrentTimeRandom());
@@ -107,7 +120,7 @@ public class TbAppUserServiceImpl extends ServiceImpl<TbAppUserMapper, TbAppUser
     }
 
     @Override
-    public AppMemberVo getAppMember(String id) {
-        return baseMapper.getAppMember("user", id);
+    public AppMemberVo getAppMember(String id,String search) {
+        return baseMapper.getAppMember("user", id, search);
     }
 }

+ 4 - 4
ruoyi-system/src/main/java/com/ruoyi/app/service/impl/TbMyFriendsServiceImpl.java

@@ -37,18 +37,18 @@ public class TbMyFriendsServiceImpl extends ServiceImpl<TbMyFriendsMapper, TbMyF
     public List<TbMyFriends> pageList(TbMyFriends tbMyFriends) {
         startPage();
         Long uid = null;
-        String nickName = null;
+        String search = null;
         String status = null;
         if (tbMyFriends.getAppUserId() != null){
             uid = tbMyFriends.getAppUserId();
         }
-        if (StringUtils.isNotBlank(tbMyFriends.getNickName())){
-            nickName = tbMyFriends.getNickName();
+        if (StringUtils.isNotBlank(tbMyFriends.getSearchValue())){
+            search = tbMyFriends.getSearchValue();
         }
         if (StringUtils.isNotBlank(tbMyFriends.getStatus())){
             status = tbMyFriends.getStatus();
         }
-        List<TbMyFriends> list = baseMapper.listFriends(uid,status,nickName);
+        List<TbMyFriends> list = baseMapper.listFriends(uid,status,search);
         return list;
     }
 

+ 7 - 1
ruoyi-system/src/main/resources/mapper/app/TbAppUserMapper.xml

@@ -23,13 +23,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
         <result property="remark"    column="remark"    />
+        <result property="pyCode"    column="py_code"    />
+        <result property="pyFirst"    column="py_first"    />
     </resultMap>
     
     <sql id="sqlAppMember">
         select a.id user_id,a.joins,a.template_id,a.nick_name,a.avatar,a.qrcode,a.mobile,a.openid,a.ver_code,a.deleted,a.enable,a.login_time,a.login_ip,
+        a.py_code user_py_code,a.py_first user_,py_first
         a.create_by user_create_by,a.create_time user_create_time, a.update_by user_update_by, a.update_time user_update_time, a.remark user_remark
         ,
-        b.id member_id,b.spouse,b.name,b.birthday,b.gender,b.education,b.state,
+        b.id member_id,b.spouse,b.name,b.birthday,b.gender,b.education,b.state,b.py_code member_py_code,b.py_first member_py_first,
         b.create_by member_create_by,b.create_time member_create_time,b.update_by member_update_by,b.update_time member_update_time,b.remark member_remark
         from tb_app_user a
         <if test="type == 'user' ">
@@ -85,6 +88,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     AND b.id = #{id}
                 </if>
             </if>
+            <if test="search != null and search != '' ">
+                and (a.mobile = #{search} or a.qrcode = #{search})
+            </if>
         </where>
     </select>
 </mapper>

+ 2 - 0
ruoyi-system/src/main/resources/mapper/app/TbFamilyMemberMapper.xml

@@ -18,6 +18,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
         <result property="remark"    column="remark"    />
+        <result property="pyCode"    column="py_code"    />
+        <result property="pyFirst"    column="py_first"    />
     </resultMap>
 
     <select id="selectFamilyMember" resultType="com.ruoyi.app.domain.vo.AppMemberVo">

+ 12 - 7
ruoyi-system/src/main/resources/mapper/app/TbMyFriendsMapper.xml

@@ -18,17 +18,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="listFriends" resultType="com.ruoyi.app.domain.TbMyFriends" parameterType="String">
         select * from (
-        select f.*,(select u.nick_name from tb_app_user u where f.app_user_id = u.id) nick_name
-        from tb_my_friends f where friends_user_id = #{id}
-        union all
-        select g.*,(select u.nick_name from tb_app_user u where g.friends_user_id = u.id) nick_name
-        from tb_my_friends g  where app_user_id = #{id}
+            select f.*,u.nick_name,u.qrcode,u.py_code
+            from tb_my_friends f left join tb_app_user u on f.app_user_id = u.id
+            where f.friends_user_id = #{id}
+            union all
+            select g.*,u.nick_name,u.qrcode,u.py_code
+            from tb_my_friends g left join tb_app_user u on g.app_user_id = u.id
+            where app_user_id = #{id}
         ) a where 1=1
         <if test="status != null and status != '' ">
            and a.status = #{status}
         </if>
-        <if test="nickName != null and nickName != '' ">
-            and a.nick_name like concat('%',#{nickName},'%')
+        <if test="search != null and search != '' ">
+            and (
+                a.nick_name like concat('%',#{search},'%') or a.qrcode like concat('%',#{search},'%')
+                or a.py_code like concat('%',#{search},'%')
+            )
         </if>
     </select>