Sfoglia il codice sorgente

增加用户管理、用户角色相关接口
增加部门管理列表和新增接口
增加通用获取下拉选项管理
去掉import * 优化打包

marxjaw 3 mesi fa
parent
commit
9c0ad6cd27
22 ha cambiato i file con 586 aggiunte e 21 eliminazioni
  1. 13 4
      yt-advertise/advertise-feign/src/main/java/com/ytpm/feign/AdvertiseFeign.java
  2. 11 4
      yt-advertise/advertise-service/src/main/java/com/ytpm/service/TakuApiService.java
  3. 32 0
      yt-common/src/main/java/com/ytpm/middle/model/YtMiddleDept.java
  4. 24 0
      yt-common/src/main/java/com/ytpm/middle/model/YtMiddleUserRole.java
  5. 20 0
      yt-common/src/main/java/com/ytpm/middle/param/MiddleDeptListParam.java
  6. 32 0
      yt-common/src/main/java/com/ytpm/middle/param/MiddleDeptParam.java
  7. 2 0
      yt-common/src/main/java/com/ytpm/middle/param/MiddleUserParam.java
  8. 18 0
      yt-common/src/main/java/com/ytpm/middle/view/DropDownVO.java
  9. 32 0
      yt-common/src/main/java/com/ytpm/middle/view/MiddleDeptVO.java
  10. 41 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DeptController.java
  11. 27 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DropdownController.java
  12. 19 1
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/UserController.java
  13. 32 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/MiddleDeptMapper.java
  14. 16 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/MiddleUserMapper.java
  15. 25 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/DeptService.java
  16. 10 1
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/UserService.java
  17. 0 2
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/AgentServiceImpl.java
  18. 59 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/DeptServiceImpl.java
  19. 65 4
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/UserServiceImpl.java
  20. 58 4
      yt-middle/middle-platform/src/main/resources/mapper/MiddleUserMapper.xml
  21. 49 0
      yt-middle/middle-platform/src/main/resources/mapper/MiddlerDeptMapper.xml
  22. 1 1
      yt-risk/risk-manage/src/main/resources/mapper/AgentUserMapper.xml

+ 13 - 4
yt-advertise/advertise-feign/src/main/java/com/ytpm/feign/AdvertiseFeign.java

@@ -1,11 +1,20 @@
 package com.ytpm.feign;
 
-import com.ytpm.advertise.param.*;
-import com.ytpm.advertise.view.*;
+import com.ytpm.advertise.param.AddAppParam;
+import com.ytpm.advertise.param.AddPlacementParam;
+import com.ytpm.advertise.param.ComprehensiveReportParam;
+import com.ytpm.advertise.param.ConcurrentHourReportsParams;
+import com.ytpm.advertise.param.HourReportParam;
+import com.ytpm.advertise.param.RelativeChannelParam;
+import com.ytpm.advertise.param.UnitsParam;
+import com.ytpm.advertise.view.AddAppResponse;
+import com.ytpm.advertise.view.AddPlacementResponse;
+import com.ytpm.advertise.view.ComprehensiveAppReport;
+import com.ytpm.advertise.view.ComprehensiveReportView;
+import com.ytpm.advertise.view.HourReportRes;
+import com.ytpm.advertise.view.HourReportView;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
-import io.swagger.annotations.ApiOperation;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;

+ 11 - 4
yt-advertise/advertise-service/src/main/java/com/ytpm/service/TakuApiService.java

@@ -8,12 +8,19 @@ import com.ytpm.advertise.param.RelativeChannelParam;
 import com.ytpm.advertise.param.RoiReportParam;
 import com.ytpm.advertise.param.UnitsListParam;
 import com.ytpm.advertise.param.UnitsParam;
-import com.ytpm.advertise.view.*;
-import com.ytpm.agent.param.ChannelParam;
+import com.ytpm.advertise.view.AddAppResponse;
+import com.ytpm.advertise.view.AddPlacementResponse;
+import com.ytpm.advertise.view.AppV1View;
+import com.ytpm.advertise.view.ComprehensiveAppReport;
+import com.ytpm.advertise.view.ComprehensiveReportView;
+import com.ytpm.advertise.view.HourReportRes;
+import com.ytpm.advertise.view.HourReportView;
+import com.ytpm.advertise.view.ReportRoiView;
+import com.ytpm.advertise.view.UnitsListView;
+import com.ytpm.advertise.view.UnitsView;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.advertise.param.AddAppParam;
-import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
@@ -61,7 +68,7 @@ public interface TakuApiService {
     /**
      * 获取广告源详情
      */
-    ResultTable<UnitsView> getUnitsView(List<Integer> ids,String takuPublicKey);
+    ResultTable<UnitsView> getUnitsView(List<Integer> ids, String takuPublicKey);
 
     /**
      * 保存广告源信息

+ 32 - 0
yt-common/src/main/java/com/ytpm/middle/model/YtMiddleDept.java

@@ -0,0 +1,32 @@
+package com.ytpm.middle.model;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("部门信息表")
+public class YtMiddleDept extends BaseParam {
+    /** 部门ID */
+    @ApiModelProperty("部门ID")
+    private Integer deptId;
+    /** 父级部门ID */
+    @ApiModelProperty("父级部门ID")
+    private Integer parentId;
+    /** 部门名称 */
+    @ApiModelProperty("部门名称")
+    private String deptName;
+    /** 描述 */
+    @ApiModelProperty("描述")
+    private String describe;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private int sort;
+}

+ 24 - 0
yt-common/src/main/java/com/ytpm/middle/model/YtMiddleUserRole.java

@@ -0,0 +1,24 @@
+package com.ytpm.middle.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("用户角色信息")
+public class YtMiddleUserRole {
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("角色ID")
+    private Integer roleId;
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    @ApiModelProperty("创建人")
+    private String createUserId;
+}

+ 20 - 0
yt-common/src/main/java/com/ytpm/middle/param/MiddleDeptListParam.java

@@ -0,0 +1,20 @@
+package com.ytpm.middle.param;
+
+import com.ytpm.general.PageMeta;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("部门信息列表过滤")
+public class MiddleDeptListParam extends PageMeta {
+    /** 部门名称 */
+    @ApiModelProperty("部门名称")
+    private String deptName;
+}

+ 32 - 0
yt-common/src/main/java/com/ytpm/middle/param/MiddleDeptParam.java

@@ -0,0 +1,32 @@
+package com.ytpm.middle.param;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("部门信息表单")
+public class MiddleDeptParam extends BaseParam {
+    /** 部门ID */
+    @ApiModelProperty("部门ID")
+    private Integer deptId;
+    /** 父级部门ID */
+    @ApiModelProperty("父级部门ID")
+    private Integer parentId;
+    /** 部门名称 */
+    @ApiModelProperty("部门名称")
+    private String deptName;
+    /** 描述 */
+    @ApiModelProperty("描述")
+    private String describe;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private int sort;
+}

+ 2 - 0
yt-common/src/main/java/com/ytpm/middle/param/MiddleUserParam.java

@@ -39,4 +39,6 @@ public class MiddleUserParam extends MiddleUserListParam{
     private String password;
     @ApiModelProperty(value = "角色列表",required = false)
     private List<MiddleRoleVO> roleList;
+    @ApiModelProperty(value = "操作人ID",hidden = true)
+    private String operatorId;
 }

+ 18 - 0
yt-common/src/main/java/com/ytpm/middle/view/DropDownVO.java

@@ -0,0 +1,18 @@
+package com.ytpm.middle.view;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("下拉选项信息类")
+public class DropDownVO {
+    @ApiModelProperty("下拉选项名")
+    private String optionName;
+    @ApiModelProperty("下拉选项值")
+    private String optionVal;
+}

+ 32 - 0
yt-common/src/main/java/com/ytpm/middle/view/MiddleDeptVO.java

@@ -0,0 +1,32 @@
+package com.ytpm.middle.view;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("部门信息")
+public class MiddleDeptVO extends BaseParam {
+    /** 部门ID */
+    @ApiModelProperty("部门ID")
+    private Integer deptId;
+    /** 父级部门ID */
+    @ApiModelProperty("父级部门ID")
+    private Integer parentId;
+    /** 部门名称 */
+    @ApiModelProperty("部门名称")
+    private String deptName;
+    /** 描述 */
+    @ApiModelProperty("描述")
+    private String describe;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private int sort;
+}

+ 41 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DeptController.java

@@ -0,0 +1,41 @@
+package com.ytpm.middle.controller;
+
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.param.MiddleDeptListParam;
+import com.ytpm.middle.param.MiddleDeptParam;
+import com.ytpm.middle.service.DeptService;
+import com.ytpm.middle.view.MiddleDeptVO;
+import com.ytpm.middle.view.MiddleUserInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/dept")
+@Api(tags = "部门管理")
+public class DeptController {
+
+    @Resource
+    private DeptService deptService;
+
+    @ApiOperation("查询部门列表")
+    @PostMapping("/queryList")
+    public ResultTable<MiddleDeptVO> queryList(@RequestBody MiddleDeptListParam param) {
+        return deptService.queryList(param);
+    }
+
+    @ApiOperation("新增部门")
+    @PostMapping("/addOne")
+    public Result<String> addOne(@RequestBody MiddleDeptParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        param.setDefaultParam(userInfo.getUserId());
+        return deptService.addOne(param);
+    }
+}

+ 27 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DropdownController.java

@@ -0,0 +1,27 @@
+package com.ytpm.middle.controller;
+
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.service.DeptService;
+import com.ytpm.middle.view.DropDownVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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;
+
+@Api(tags = "前端获取选项模块")
+@RestController
+@RequestMapping("/dropdown")
+public class DropdownController {
+
+    @Resource
+    private DeptService deptService;
+
+    @ApiOperation("查询部门列表")
+    @GetMapping("/deptList")
+    public ResultTable<DropDownVO> deptList() {
+        return deptService.getDropDownList();
+    }
+}

+ 19 - 1
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/UserController.java

@@ -8,10 +8,14 @@ import com.ytpm.middle.service.UserService;
 import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+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.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
 
@@ -32,8 +36,22 @@ public class UserController {
 
     @ApiOperation("新增用户")
     @PostMapping("/addOne")
-    public Result<MiddleUserParam> addOne(@RequestBody MiddleUserParam param) {
+    public Result<String> addOne(@RequestBody MiddleUserParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        param.setOperatorId(userInfo.getUserId());
         return userService.addOne(param);
     }
 
+    @ApiOperation("修改用户")
+    @PostMapping("/updateOne")
+    public Result<String> updateOne(@RequestBody MiddleUserParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        param.setOperatorId(userInfo.getUserId());
+        return userService.updateOne(param);
+    }
+
+    @ApiOperation("删除用户")
+    @GetMapping("/deleteOne")
+    public Result<String> deleteOne(@RequestParam(name = "userId")String userId) {
+        return userService.delOne(userId);
+    }
+
 }

+ 32 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/MiddleDeptMapper.java

@@ -0,0 +1,32 @@
+package com.ytpm.middle.dao;
+
+import com.ytpm.middle.model.YtMiddleDept;
+import com.ytpm.middle.param.MiddleDeptListParam;
+import com.ytpm.middle.view.DropDownVO;
+import com.ytpm.middle.view.MiddleDeptVO;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface MiddleDeptMapper {
+    /**
+     * 部门信息列表
+     */
+    List<MiddleDeptVO> queryList(MiddleDeptListParam param);
+    /**
+     * 获取部门下拉列表
+     */
+    List<DropDownVO> getDropDownList();
+
+    /**
+     * 根据部门名称查询部门信息
+     */
+    YtMiddleDept selectByName(@Param("deptName") String deptName);
+
+    /**
+     * 新增部门信息
+     */
+    void insertOne(YtMiddleDept dept);
+}

+ 16 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/MiddleUserMapper.java

@@ -1,5 +1,6 @@
 package com.ytpm.middle.dao;
 
+import com.ytpm.middle.model.YtMiddleUserRole;
 import com.ytpm.middle.param.MiddleUserListParam;
 import com.ytpm.middle.view.MiddleRoleVO;
 import com.ytpm.middle.view.MiddleUserInfo;
@@ -21,6 +22,11 @@ public interface MiddleUserMapper {
      */
     MiddleUserInfo getByPhone(@Param("phone") String phone);
 
+    /**
+     * 主键查询
+     */
+    MiddleUserInfo selectPrimary(@Param("userId") String userId);
+
     /**
      * 根据用户ID查询用户角色
      */
@@ -40,4 +46,14 @@ public interface MiddleUserMapper {
      * 修改用户
      */
     void updateById(YtPlatformUser user);
+
+    /**
+     * 新增用户角色
+     */
+    void addUserRoleList(@Param("userId")String userId, @Param("roleIdList") List<Integer> roleIdList,@Param("operatorId")String operatorId);
+
+    /**
+     * 根据用户ID删除用户角色
+     */
+    void deleteByUserId(@Param("userId")String userId);
 }

+ 25 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/DeptService.java

@@ -0,0 +1,25 @@
+package com.ytpm.middle.service;
+
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.param.MiddleDeptListParam;
+import com.ytpm.middle.param.MiddleDeptParam;
+import com.ytpm.middle.view.DropDownVO;
+import com.ytpm.middle.view.MiddleDeptVO;
+
+public interface DeptService {
+    /**
+     * 查询部门列表
+     */
+    ResultTable<MiddleDeptVO> queryList(MiddleDeptListParam param);
+
+    /**
+     * 新增部门信息
+     */
+    Result<String> addOne(MiddleDeptParam param);
+
+    /**
+     * 查询部门下拉列表
+     */
+    ResultTable<DropDownVO> getDropDownList();
+}

+ 10 - 1
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/UserService.java

@@ -15,5 +15,14 @@ public interface UserService {
     /**
      * 新增用户
      */
-    Result<MiddleUserParam> addOne(MiddleUserParam param);
+    Result<String> addOne(MiddleUserParam param);
+    /**
+     * 修改用户
+     */
+    Result<String> updateOne(MiddleUserParam param);
+
+    /**
+     * 删除用户信息
+     */
+    Result<String> delOne(String userId);
 }

+ 0 - 2
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/AgentServiceImpl.java

@@ -153,8 +153,6 @@ public class AgentServiceImpl implements AgentService {
         user.setRegistryTime(new Date());
         user.setUserId(accountId);
         user.setAccountStatus(1);
-        user.setChannelId(accountId);
-        user.setLoginDays(1);
         agentMapper.addOneUser(user);
         //短信通知企业负责人 账号密码,邀请其登录代理商管理系统
         try {

+ 59 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/DeptServiceImpl.java

@@ -0,0 +1,59 @@
+package com.ytpm.middle.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.ytpm.general.RepMessage;
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.middle.dao.MiddleDeptMapper;
+import com.ytpm.middle.model.YtMiddleDept;
+import com.ytpm.middle.param.MiddleDeptListParam;
+import com.ytpm.middle.param.MiddleDeptParam;
+import com.ytpm.middle.service.DeptService;
+import com.ytpm.middle.view.DropDownVO;
+import com.ytpm.middle.view.MiddleDeptVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Objects;
+
+@Service
+public class DeptServiceImpl implements DeptService {
+
+    @Resource
+    private MiddleDeptMapper deptMapper;
+
+    /**
+     * 部门信息列表
+     */
+    @Override
+    public ResultTable<MiddleDeptVO> queryList(MiddleDeptListParam param) {
+        PageHelper.startPage(param.getPage(), param.getLimit());
+        return ResultTable.resultTableOk(new PageInfo<>(deptMapper.queryList(param)));
+    }
+
+    /**
+     * 新增部门信息
+     */
+    @Override
+    public Result<String> addOne(MiddleDeptParam param) {
+        YtMiddleDept old = deptMapper.selectByName(param.getDeptName());
+        if(Objects.nonNull(old)){
+            return Result.resultErr(RepMessage.OBJECT_ALREADY_EXIST);
+        }
+        YtMiddleDept dept = new YtMiddleDept();
+        BeanUtils.copyProperties(param, dept);
+        dept.setDefaultParam(param.getCreateUserId());
+        deptMapper.insertOne(dept);
+        return Result.resultOk(RepMessage.SAVE_SUCCESS);
+    }
+
+    /**
+     * 获取部门下拉列表
+     */
+    @Override
+    public ResultTable<DropDownVO> getDropDownList() {
+        return ResultTable.resultTableOk(new PageInfo<>(deptMapper.getDropDownList()));
+    }
+}

+ 65 - 4
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/UserServiceImpl.java

@@ -1,23 +1,31 @@
 package com.ytpm.middle.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.dao.MiddleUserMapper;
+import com.ytpm.middle.model.YtMiddleRole;
+import com.ytpm.middle.model.YtMiddleUser;
+import com.ytpm.middle.model.YtMiddleUserRole;
 import com.ytpm.middle.param.MiddleUserListParam;
 import com.ytpm.middle.param.MiddleUserParam;
 import com.ytpm.middle.service.UserService;
+import com.ytpm.middle.view.MiddleRoleVO;
 import com.ytpm.middle.view.MiddleUserInfo;
 import com.ytpm.oauth.model.YtPlatformUser;
 import com.ytpm.util.IDUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 @Service
 public class UserServiceImpl implements UserService {
@@ -38,19 +46,72 @@ public class UserServiceImpl implements UserService {
      * 新增用户
      */
     @Override
-    public Result<MiddleUserParam> addOne(MiddleUserParam param) {
+    @Transactional(rollbackFor = Exception.class)
+    public Result<String> addOne(MiddleUserParam param) {
         MiddleUserInfo byPhone = userMapper.getByPhone(param.getPhone());
         if(Objects.nonNull(byPhone)){
             return Result.resultErr(RepMessage.OBJECT_ALREADY_EXIST);
         }
-        //新增用户角色信息
+        //新增用户信息
         YtPlatformUser user = new YtPlatformUser();
         BeanUtils.copyProperties(param, user);
         user.setUserId(IDUtil.generateFlowID("middle_"));
         user.setUserType(99);
         user.setRegistryTime(new Date());
         userMapper.insertOne(user);
-        //新增用户信息
-        return null;
+        param.setUserId(user.getUserId());
+        //新增用户角色信息
+        if(CollUtil.isNotEmpty(param.getRoleList())){
+            addUserRole(param);
+        }
+        return Result.resultOk(RepMessage.SAVE_SUCCESS);
+    }
+    /**
+     * 修改用户
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<String> updateOne(MiddleUserParam param) {
+        MiddleUserInfo byPhone = userMapper.selectPrimary(param.getUserId());
+        if(Objects.nonNull(byPhone)){
+            return Result.resultErr(RepMessage.OBJECT_ALREADY_EXIST);
+        }
+        //修改用户信息
+        YtPlatformUser user = new YtPlatformUser();
+        BeanUtils.copyProperties(param, user);
+        userMapper.updateById(user);
+        param.setUserId(user.getUserId());
+        //角色列表先删后增
+        userMapper.deleteByUserId(param.getUserId());
+        if(CollUtil.isNotEmpty(param.getRoleList())){
+            addUserRole(param);
+        }
+        return Result.resultOk(RepMessage.MODIFY_SUCCESS);
+    }
+
+    /**
+     * 删除用户
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<String> delOne(String userId) {
+        MiddleUserInfo old = userMapper.selectPrimary(userId);
+        if(Objects.nonNull(old)){
+            return Result.resultErr(RepMessage.OBJECT_ALREADY_EXIST);
+        }
+        YtPlatformUser platformUser = new YtPlatformUser();
+        platformUser.setUserId(userId);
+        platformUser.setAccountStatus(2);
+        userMapper.updateById(platformUser);
+        userMapper.deleteByUserId(userId);
+        return Result.resultOk(RepMessage.DELETE_SUCCESS);
+    }
+
+    /**
+     * 增加用户角色
+     */
+    private void addUserRole(MiddleUserParam param) {
+        List<Integer> roleIds = param.getRoleList().stream().map(MiddleRoleVO::getRoleId).collect(Collectors.toList());
+        userMapper.addUserRoleList(param.getUserId(),roleIds,param.getOperatorId());
     }
 }

+ 58 - 4
yt-middle/middle-platform/src/main/resources/mapper/MiddleUserMapper.xml

@@ -32,12 +32,61 @@
             #{deptId}
         );
     </insert>
+    <insert id="addUserRoleList">
+        insert into yt_middle_user_role (user_id, role_id, create_time, create_user_id)
+        values
+        <foreach collection="roleIdList" separator="," item="item">
+            (#{userId},#{item},#{operatorId},now())
+        </foreach>
+    </insert>
+    <update id="updateById">
+        update yt_platform_user
+        <set>
+            <if test="nickName != null">
+                nick_name = #{nickName},
+            </if>
+            <if test="headImage != null">
+                head_image = #{headImage},
+            </if>
+            <if test="loginName != null">
+                login_name = #{loginName},
+            </if>
+            <if test="encryptPwd != null">
+                encrypt_pwd = #{encryptPwd},
+            </if>
+            <if test="salt != null">
+                salt = #{salt},
+            </if>
+            <if test="phone != null">
+                phone = #{phone},
+            </if>
+            <if test="lastLoginTime != null">
+                last_login_time = #{lastLoginTime},
+            </if>
+            <if test="accountStatus != null">
+                account_status = #{accountStatus},
+            </if>
+            <if test="userType != null">
+                user_type = #{userType},
+            </if>
+            <if test="registryTime != null">
+                registry_time = #{registryTime},
+            </if>
+            <if test="deptId != null">
+                dept_id = #{deptId}
+            </if>
+        </set>
+        where user_id = #{userId}
+    </update>
+    <delete id="deleteByUserId">
+        delete from yt_middle_user_role where user_id = #{userId}
+    </delete>
 
     <select id="getByLoginName" resultType="com.ytpm.middle.view.MiddleUserInfo">
         select
             user_id, nick_name, head_image, login_name, encrypt_pwd, salt, phone, last_login_time,  account_status,  user_type, registry_time
         from yt_platform_user
-        where user_type = 99 and login_name = #{userName}
+        where user_type = 99 and account_status = 1 and login_name = #{userName}
     </select>
     <select id="getRoleList" resultType="com.ytpm.middle.view.MiddleRoleVO">
         select
@@ -72,12 +121,11 @@
             ypu.head_image,
             ypu.login_name,
             ypu.phone,
-            ypu.last_login_time,
-            ypu.last_login_ip
+            ypu.last_login_time
         from yt_platform_user ypu
         left join yt_middle_user_role ymur on ypu.user_id = ymur.user_id
         left join yt_middle_dept ymd on ypu.dept_id = ymd.dept_id
-        where ypu.user_type = 99
+        where ypu.user_type = 99 and ypu.account_status = 1
         <if test=" nickName!= null and nickName!= ''">
             and ypu.nick_name like concat('%', #{nickName} ,'%')
         </if>
@@ -97,4 +145,10 @@
         from yt_platform_user
         where user_type = 99 and account_status = 1 and phone = #{phone}
     </select>
+    <select id="selectPrimary" resultType="com.ytpm.middle.view.MiddleUserInfo">
+        select
+            user_id, nick_name, head_image, login_name, encrypt_pwd, salt, phone, last_login_time,  account_status,  user_type,  registry_time
+        from yt_platform_user
+        where user_id = #{userId}
+    </select>
 </mapper>

+ 49 - 0
yt-middle/middle-platform/src/main/resources/mapper/MiddlerDeptMapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ytpm.middle.dao.MiddleDeptMapper">
+    <insert id="insertOne">
+        insert into yt_middle_dept
+        (
+         parent_id,
+         dept_name,
+         `describe`,
+         sort,
+         create_time,
+         create_user_id,
+         available
+        )
+        values
+        (
+         #{parentId},
+         #{deptName},
+         #{describe},
+         #{sort},
+         #{createTime},
+         #{createUserId},
+         #{available}
+        )
+    </insert>
+
+    <select id="queryList" resultType="com.ytpm.middle.view.MiddleDeptVO">
+        select
+            dept_id, parent_id, dept_name, `describe`, sort, create_time, create_user_id, update_time, update_user_id, available
+        from yt_middle_dept
+        <where>
+            <if test="deptName != null and deptName != ''">
+                and dept_name like concat('%',#{deptName},'%')
+            </if>
+        </where>
+    </select>
+    <select id="getDropDownList" resultType="com.ytpm.middle.view.DropDownVO">
+        select
+            dept_id optionName, dept_name optionVal
+        from yt_middle_dept
+        where available = 1
+    </select>
+    <select id="selectByName" resultType="com.ytpm.middle.model.YtMiddleDept">
+        select
+            dept_id, parent_id, dept_name, `describe`, sort, create_time, create_user_id, update_time, update_user_id, available
+        from yt_middle_dept
+        where available = 1 and dept_name = #{deptName}
+    </select>
+</mapper>

+ 1 - 1
yt-risk/risk-manage/src/main/resources/mapper/AgentUserMapper.xml

@@ -4,7 +4,7 @@
 
     <select id="getCurrentUserInfo" resultType="com.ytpm.agent.view.AgentUserInfo">
         select
-            user_id, nick_name, head_image, login_name, encrypt_pwd, salt, phone, last_login_time, last_login_ip, phone_brand, phone_model, account_status, channel_id, user_type, login_days, total_income, app_id, registry_time, transfer_amount
+            user_id, nick_name, head_image, login_name, encrypt_pwd, salt, phone, last_login_time, account_status, user_type,  registry_time
         from yt_platform_user
         where account_status = 1
         and user_type in (1,2,99)