Browse Source

新增修改用户标签、修改用户名称及备注接口

Long 2 months ago
parent
commit
54377c112c

+ 33 - 1
fs-company-app/src/main/java/com/fs/app/controller/FsUserController.java

@@ -1,14 +1,19 @@
 package com.fs.app.controller;
 
 
+import com.alibaba.fastjson.JSON;
 import com.fs.app.annotation.Login;
+import com.fs.app.param.FsUserTagUpdateParam;
+import com.fs.app.param.FsUserUpdateParam;
 import com.fs.app.utils.ValidateUtil;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.ResponseResult;
+import com.fs.common.exception.ServiceException;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyTagUserService;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.company.vo.CompanyQueryVo;
+import com.fs.store.domain.FsUser;
 import com.fs.store.param.h5.FsUserPageListParam;
 import com.fs.store.param.h5.TagListParam;
 import com.fs.store.service.IFsUserService;
@@ -18,16 +23,19 @@ import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
-
+@Slf4j
 @Api(tags = "用户会员相关接口")
 @RestController
 @RequestMapping("/app/fs/user")
@@ -189,4 +197,28 @@ public class FsUserController extends AppBaseController {
         return ResponseResult.ok(list);
     }
 
+    @Login
+    @ApiOperation("修改用户备注、姓名")
+    @PostMapping("/changeUserInfo")
+    public ResponseResult<Object> changeUserInfo(@Valid @RequestBody FsUserUpdateParam param) {
+        log.debug("修改用户备注、姓名 param:{}", JSON.toJSONString(param));
+        FsUser fsUser = fsUserService.selectFsUserById(param.getFsUserId());
+        if (Objects.isNull(fsUser)) {
+            throw new ServiceException("用户不存在");
+        }
+
+        fsUser.setUsername(param.getUserName());
+        fsUser.setRemark(param.getRemark());
+        fsUserService.updateFsUser(fsUser);
+        return ResponseResult.ok();
+    }
+
+    @Login
+    @ApiOperation("修改用户标签")
+    @PostMapping("/changeUserTags")
+    public ResponseResult<Object> changeUserTags(@Valid @RequestBody FsUserTagUpdateParam param) {
+        companyTagUserService.changeUserTags(param.getFsUserId(), param.getTagIds());
+        return ResponseResult.ok();
+    }
+
 }

+ 22 - 0
fs-company-app/src/main/java/com/fs/app/param/FsUserTagUpdateParam.java

@@ -0,0 +1,22 @@
+package com.fs.app.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Data
+public class FsUserTagUpdateParam {
+    /**
+     * 用户ID
+     */
+    @ApiModelProperty("用户ID")
+    @NotNull(message = "用户ID不能为空")
+    private Long fsUserId;
+    /**
+     * 标签ID
+     */
+    @ApiModelProperty("标签ID集合")
+    private List<Long> tagIds;
+}

+ 26 - 0
fs-company-app/src/main/java/com/fs/app/param/FsUserUpdateParam.java

@@ -0,0 +1,26 @@
+package com.fs.app.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class FsUserUpdateParam {
+    /**
+     * 用户ID
+     */
+    @ApiModelProperty("用户ID")
+    @NotNull(message = "用户ID不能为空")
+    private Long fsUserId;
+    /**
+     * 用户名称
+     */
+    @ApiModelProperty("用户名称")
+    private String userName;
+    /**
+     * 用户备注
+     */
+    @ApiModelProperty("用户备注")
+    private String remark;
+}

+ 6 - 0
fs-service-system/src/main/java/com/fs/company/mapper/CompanyTagUserMapper.java

@@ -73,4 +73,10 @@ public interface CompanyTagUserMapper
      * @return  list
      */
     List<CompanyTagUserVO> selectUserListByMap(@Param("params") Map<String, Object> params);
+
+    /**
+     * 删除用户标签
+     * @param params    条件
+     */
+    void deleteCompanyTagUserByMap(@Param("params") Map<String, Object> params);
 }

+ 9 - 0
fs-service-system/src/main/java/com/fs/company/service/ICompanyTagUserService.java

@@ -8,6 +8,8 @@ import com.fs.company.vo.CompanyTagUserVO;
 import com.fs.store.param.h5.TagListParam;
 import com.fs.store.vo.h5.CompanyUserTagListVO;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * companyService接口
  *
@@ -77,4 +79,11 @@ public interface ICompanyTagUserService
      * @return  list
      */
     List<CompanyTagUserVO> selectUserListByMap(Map<String, Object> params);
+
+    /**
+     * 修改用户标签
+     * @param fsUserId 用户ID
+     * @param tagIds   标签ID集合
+     */
+    void changeUserTags(Long fsUserId, List<Long> tagIds);
 }

+ 38 - 3
fs-service-system/src/main/java/com/fs/company/service/impl/CompanyTagUserServiceImpl.java

@@ -1,15 +1,16 @@
 package com.fs.company.service.impl;
 
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
+import com.fs.common.exception.ServiceException;
 import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.vo.CompanyTagUserVO;
+import com.fs.store.domain.FsUser;
+import com.fs.store.mapper.FsUserMapper;
 import com.fs.store.param.h5.TagListParam;
 import com.fs.store.vo.h5.CompanyUserTagListVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +18,7 @@ import org.springframework.stereotype.Service;
 import com.fs.company.mapper.CompanyTagUserMapper;
 import com.fs.company.domain.CompanyTagUser;
 import com.fs.company.service.ICompanyTagUserService;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * companyService业务层处理
@@ -32,6 +34,8 @@ public class CompanyTagUserServiceImpl implements ICompanyTagUserService
 
     @Autowired
     private CompanyUserMapper  companyUserMapper;
+    @Autowired
+    private FsUserMapper fsUserMapper;
 
     /**
      * 查询company
@@ -133,4 +137,35 @@ public class CompanyTagUserServiceImpl implements ICompanyTagUserService
     public List<CompanyTagUserVO> selectUserListByMap(Map<String, Object> params) {
         return companyTagUserMapper.selectUserListByMap(params);
     }
+
+    /**
+     * 修改用户标签
+     * @param fsUserId 用户ID
+     * @param tagIds   标签ID集合
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void changeUserTags(Long fsUserId, List<Long> tagIds) {
+        FsUser fsUser = fsUserMapper.selectFsUserById(fsUserId);
+        if (Objects.isNull(fsUser)) {
+            throw new ServiceException("用户不存在");
+        }
+
+        // 删除原标签
+        Map<String, Object> params = new HashMap<>();
+        params.put("userId", fsUserId);
+        params.put("companyId", fsUser.getCompanyId());
+        params.put("companyUserId", fsUser.getCompanyUserId());
+        companyTagUserMapper.deleteCompanyTagUserByMap(params);
+
+        // 不为空则添加新标签
+        if (Objects.nonNull(tagIds) && !tagIds.isEmpty()) {
+            CompanyTagUser companyTagUser = new CompanyTagUser();
+            companyTagUser.setUserId(fsUserId);
+            companyTagUser.setCompanyId(fsUser.getCompanyId());
+            companyTagUser.setCompanyUserId(fsUser.getCompanyUserId());
+            companyTagUser.setTagIds(tagIds.stream().map(String::valueOf).collect(Collectors.joining(",")));
+            companyTagUserMapper.insertCompanyTagUser(companyTagUser);
+        }
+    }
 }

+ 1 - 1
fs-service-system/src/main/resources/mapper/company/CompanyTagMapper.xml

@@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <!-- 查询用户标签列表 -->
     <select id="selectCompanyTagListByUserId" resultType="com.fs.company.domain.CompanyTag">
         select ct.* from company_tag ct
-        inner join company_tag_user ctu on find_in_set(ct.tag_id, ctu.tag_ids) > 0
+        inner join company_tag_user ctu on ctu.company_id = ct.company_id and find_in_set(ct.tag_id, ctu.tag_ids) > 0
         where ctu.user_id = #{userId}
     </select>
 

+ 6 - 0
fs-service-system/src/main/resources/mapper/company/CompanyTagUserMapper.xml

@@ -73,6 +73,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </delete>
 
+    <!-- 删除用户标签 -->
+    <delete id="deleteCompanyTagUserByMap">
+        delete from company_tag_user
+        where user_id = #{params.userId} and company_id = #{params.companyId} and company_user_id = #{params.companyUserId}
+    </delete>
+
     <select id="getTagList" resultType="CompanyUserTagListVO">
         SELECT
         company_tag.tag as tagName,