소스 검색

修改返回值判断逻辑

tianboguang 3 년 전
부모
커밋
a6e7bd7492

+ 11 - 11
platform-common/src/main/java/com/platform/controller/SysLoginController.java

@@ -14,6 +14,7 @@ import com.platform.service.SysDeptService;
 import com.platform.service.impl.SysSmsLogServiceImpl;
 import com.platform.service.impl.SysUserRoleServiceImpl;
 import com.platform.service.impl.SysUserServiceImpl;
+import com.platform.service.impl.ZhiHouseService;
 import com.platform.utils.*;
 import com.platform.vos.CurrentUserLoginVo;
 import com.platform.vos.UserOnlyLoginVo;
@@ -77,11 +78,14 @@ public class SysLoginController {
     private SysDeptService sysDeptService;
 
     @Value("${scenePath}")
-    private String KankanHost;
+    private String zhiHouseHost;
 
     @Autowired
     private RestTemplate restTemplate;
 
+    @Autowired
+    private ZhiHouseService zhiHouseService;
+
 
     @RequestMapping("captcha.jpg")
     public void captcha(HttpServletResponse response) throws IOException {
@@ -195,7 +199,7 @@ public class SysLoginController {
         userOnlyLoginVo.setPassword(password);
         userLoginVo.setUserPassword(userOnlyLoginVo.getPassword());
         userLoginVo.setArea("1234");
-        String url = KankanHost + "api/platform/login";
+        String url = zhiHouseHost + "api/platform/login";
         ResponseEntity<String> kankanResult = restTemplate.postForEntity(url, userLoginVo,String.class);
         if(kankanResult.getStatusCode()!= HttpStatus.OK){
             return R.error("账户验证失败");
@@ -231,17 +235,12 @@ public class SysLoginController {
         //对前端传的密码解密
         password = Base64Converter.decode(Base64Converter.subText(password));
 
-        ZhiHouseUserLoginVo userLoginVo = new ZhiHouseUserLoginVo();
-        userLoginVo.setUserName(username);
-        userLoginVo.setUserPassword(password);
-        userLoginVo.setArea("1234");
-        String url = KankanHost + "api/platform/login";
-        ResponseEntity<String> resultEntity = restTemplate.postForEntity(url, userLoginVo, String.class);
-        if(resultEntity.getStatusCode()!= HttpStatus.OK){
-            return R.error("账户验证失败");
+        ResponseEntity<String> loginResult = zhiHouseService.login(username, password);
+        if(loginResult.getStatusCode()!= HttpStatus.OK){
+            return R.error("登录失败");
         }
         //解析返回结果
-        JSONObject res = JSONObject.parseObject(resultEntity.getBody());
+        JSONObject res = JSONObject.parseObject(loginResult.getBody());
         R result = parseResultWithoutAddUser(res, "登录失败");
         if (null != result && result.containsKey("code") && result.get("code").equals(0)) {
             log.info("四维看看登录完成,将执行本地登录验证");
@@ -307,6 +306,7 @@ public class SysLoginController {
                 userVo.setDeptExpirationDate(deptEntity.getExpirationDate());
                 userVo.setParentDeptId(deptEntity.getParentId());
                 userVo.setParentDeptName(deptEntity.getParentName());
+                userVo.setFdkkPassword(null);
             }
             resultMap.put("user", userVo);
             return R.ok(resultMap);

+ 9 - 9
platform-common/src/main/java/com/platform/entity/SysUserEntity.java

@@ -59,11 +59,6 @@ public class SysUserEntity implements Serializable {
     private List<Long> roleIdList;
 
     /**
-     * 关联的品牌id列表
-     */
-    private List<Long> brandIdList;
-
-    /**
      * 关联的品牌列表
      */
     private List<SysUserBrand> brandList;
@@ -86,6 +81,11 @@ public class SysUserEntity implements Serializable {
     private Long deptId;
 
     /**
+     * 是否是平台主持人
+     */
+    private Boolean isPlatformStreamer;
+
+    /**
      * 部门名称
      */
     private String deptName;
@@ -323,11 +323,11 @@ public class SysUserEntity implements Serializable {
         this.deptName = deptName;
     }
 
-    public List<Long> getBrandIdList() {
-        return brandIdList;
+    public Boolean getIsPlatformStreamer() {
+        return isPlatformStreamer;
     }
 
-    public void setBrandIdList(List<Long> brandIdList) {
-        this.brandIdList = brandIdList;
+    public void setIsPlatformStreamer(Boolean platformStreamer) {
+        isPlatformStreamer = platformStreamer;
     }
 }

+ 34 - 0
platform-common/src/main/java/com/platform/enums/SysRoleEnum.java

@@ -0,0 +1,34 @@
+package com.platform.enums;
+
+public enum SysRoleEnum {
+    ADMIN(5, "超级管理员"),
+    COMPONY_ADMIN(6, "平台主持人"),
+    COMPONY_EMPLOYEE(8, "公司员工"),
+    PLATFORM_STREAMER(9, "平台主持人");
+
+    private int code;
+    private String desc;
+
+    public static int PLATFORM_STREAMER_CODE = 9;
+
+    SysRoleEnum(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+}

+ 1 - 1
platform-common/src/main/java/com/platform/service/SysUserService.java

@@ -95,7 +95,7 @@ public interface SysUserService {
      * @param password    原密码
      * @param newPassword 新密码
      */
-    int updatePassword(Long userId, String password, String newPassword, String fdkkUser);
+    void updatePassword(String mobile, String password, String newPassword, String fdkkUser);
 
     /**
      * 根据条件分页查询

+ 34 - 0
platform-common/src/main/java/com/platform/service/impl/FdkkService.java

@@ -0,0 +1,34 @@
+package com.platform.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class FdkkService {
+
+    @Value("${fdkankan.host}")
+    private String kankanHost;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    /**
+     * 登录指房宝
+     * @param username
+     * @param password
+     * @return
+     */
+    public ResponseEntity<String> login(String username, String password) {
+        Map<String,String> params = new HashMap<>();
+        params.put("password",password);
+        params.put("phoneNum",username);
+        String url = kankanHost + "api/sso/user/getToken";
+        return restTemplate.postForEntity(url, params, String.class);
+    }
+}

+ 49 - 16
platform-common/src/main/java/com/platform/service/impl/SysUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.platform.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.pagehelper.util.StringUtil;
@@ -9,6 +10,7 @@ import com.platform.entity.SysRoleEntity;
 import com.platform.entity.SysUserEntity;
 import com.platform.entity.UserWindowDto;
 import com.platform.enums.ResultCodeEnum;
+import com.platform.enums.SysRoleEnum;
 import com.platform.exception.CommonBaseException;
 import com.platform.page.Page;
 import com.platform.page.PageHelper;
@@ -16,13 +18,15 @@ import com.platform.service.SysDeptService;
 import com.platform.service.SysRoleService;
 import com.platform.service.SysUserRoleService;
 import com.platform.service.SysUserService;
-import com.platform.utils.Constant;
-import com.platform.utils.PasswordUtils;
-import com.platform.utils.RRException;
+import com.platform.utils.*;
+import com.platform.vos.CurrentUserLoginVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.crypto.hash.Sha256Hash;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
@@ -52,6 +56,12 @@ public class SysUserServiceImpl implements SysUserService {
     @Autowired
     private SysDeptService sysDeptService;
 
+    @Autowired
+    private ZhiHouseService zhiHouseService;
+
+    @Autowired
+    private FdkkService fdkkService;
+
 
     @Override
     public Long getUserNumOfDept(Long dptId) {
@@ -199,9 +209,14 @@ public class SysUserServiceImpl implements SysUserService {
     @Transactional
     public void update(SysUserEntity user) {
         if(ObjectUtils.isEmpty(user.getUserId())){
-            throw new RuntimeException("id 为空!");
+            throw new CommonBaseException(500,"id 为空!");
+        }
+        if(user.getRoleIdList().contains(SysRoleEnum.PLATFORM_STREAMER.getCode())){
+            user.setIsPlatformStreamer(true);
+            user.setRoleIdList(Collections.singletonList(8L));
+        }else{
+            user.setIsPlatformStreamer(false);
         }
-
         SysUserEntity userEntity = queryObject(user.getUserId());
         //检查角色是否越权
         checkRole(user);
@@ -245,20 +260,38 @@ public class SysUserServiceImpl implements SysUserService {
     }
 
     @Override
-    public int updatePassword(Long userId, String password, String newPassword, String fdkkUser) {
+    public void updatePassword(String mobile,String password, String fdkkPassword, String fdkkUser) {
+        CurrentUserLoginVo userEntity = ShiroUtils.getUserEntity();
+        ResponseEntity<String> loginResult;
+        if(!ObjectUtils.isEmpty(password)){
+            // 对指房宝密码解密
+            password = Base64Converter.decode(Base64Converter.subText(password));
+            // 登录指房宝进行当前密码校验
+            loginResult = zhiHouseService.login(mobile, password);
+            if(loginResult.getStatusCode()!= HttpStatus.OK){
+                throw new CommonBaseException(500,"请求失败");
+            }
+        }
+        if(!ObjectUtils.isEmpty(fdkkPassword)){
+            // 对4d看看密码解密
+            String decryptFdkkPassword = Base64Converter.decode(Base64Converter.subText(fdkkPassword));
+            // 登录4dkankan
+            loginResult = fdkkService.login(fdkkUser,decryptFdkkPassword);
+            if(loginResult.getStatusCode()!= HttpStatus.OK){
+                throw new CommonBaseException(500,"请求失败");
+            }
+            JSONObject result = JSONObject.parseObject(loginResult.getBody());
+            if (result.getInteger("code") != 0) {
+                throw new CommonBaseException(500, "4d看看密码有误!");
+            }
+        }
         Map<String, Object> map = new HashMap<>();
-        map.put("userId", userId);
-        map.put("password", password);
-        map.put("newPassword", newPassword);
-        if(StringUtil.isNotEmpty(fdkkUser)){
+        map.put("userId", userEntity.getUserId());
+        if(!ObjectUtils.isEmpty(fdkkPassword)){
             map.put("fdkkUser", fdkkUser);
-
-            if(userId == 1){
-                String encryptPwd = PasswordUtils.encrypt(newPassword, fdkkUser, PasswordUtils.getStaticSalt());
-                map.put("fdkkPassword", encryptPwd);
-            }
+            map.put("fdkkPassword", fdkkPassword);
         }
-        return sysUserDao.updatePassword(map);
+        sysUserDao.updatePassword(map);
     }
 
     /**

+ 33 - 0
platform-common/src/main/java/com/platform/service/impl/ZhiHouseService.java

@@ -0,0 +1,33 @@
+package com.platform.service.impl;
+
+import com.platform.vos.ZhiHouseUserLoginVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+@Service
+public class ZhiHouseService {
+
+    @Value("${scenePath}")
+    private String zhiHouseHost;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    /**
+     * 登录指房宝
+     * @param username
+     * @param password
+     * @return
+     */
+    public ResponseEntity<String> login(String username, String password) {
+        ZhiHouseUserLoginVo userLoginVo = new ZhiHouseUserLoginVo();
+        userLoginVo.setUserName(username);
+        userLoginVo.setUserPassword(password);
+        userLoginVo.setArea("1234");
+        String url = zhiHouseHost + "api/platform/login";
+        return restTemplate.postForEntity(url, userLoginVo, String.class);
+    }
+}

+ 6 - 32
platform-common/src/main/resources/com/platform/dao/SysUserDao.xml

@@ -141,30 +141,10 @@
 	</select>
 	
 	<insert id="save" parameterType="com.platform.entity.SysUserEntity" useGeneratedKeys="true" keyProperty="userId">
-		insert into sys_user
-		(
-			`user_id`, 
-			`username`, 
-			`password`, 
-			`email`, 
-			`mobile`, 
-			`status`, 
-			`create_user_id`,
-			`dept_id`,
-			`create_time`
-		)
-		values
-		(
-			#{userId}, 
-			#{username}, 
-			#{password}, 
-			#{email}, 
-			#{mobile}, 
-			#{status}, 
-			#{createUserId},
-			#{deptId},
-			#{createTime}
-		)
+		insert into sys_user(`user_id`, `username`, `password`, `email`, `mobile`, `status`, `create_user_id`,
+		`dept_id`, `create_time`, `is_platform_streamer`)
+		values(#{userId}, #{username}, #{password},#{email}, #{mobile}, #{status}, #{createUserId},#{deptId},
+			#{createTime},#{isPlatformStreamer})
 	</insert>
 	 
 	<update id="update" parameterType="com.platform.entity.SysUserEntity">
@@ -175,6 +155,7 @@
 			<if test="mobile != null">`mobile` = #{mobile}, </if>
 			<if test="status != null">`status` = #{status}, </if>
 			<if test="deptId != null">`dept_id` = #{deptId}, </if>
+			<if test="isPlatformStreamer != null">`is_platform_streamer` = #{isPlatformStreamer}, </if>
 		</set>
 		where user_id = #{userId} 
 		<if test="createUserId != null">
@@ -183,14 +164,7 @@
 	</update>
 	
 	<update id="updatePassword" parameterType="map">
-		update sys_user set `password` = #{newPassword}
-			<if test="fdkkUser != null">
-				, fdkk_user = #{fdkkUser}
-			</if>
-			<if test="fgkkPassword != null">
-				, fgkk_password = #{fgkkPassword}
-			</if>
-			where user_id = #{userId} and password = #{password}
+		update sys_user set fdkk_user = #{fdkkUser} ,fdkk_password = #{fdkkPassword} where user_id = #{userId}
 	</update>
 	
 	<delete id="deleteBatch">

+ 37 - 50
platform-shop/src/main/java/com/platform/controller/SysUserController.java

@@ -6,6 +6,7 @@ import com.platform.annotation.SysLog;
 import com.platform.entity.SysDeptEntity;
 import com.platform.entity.SysRoleEntity;
 import com.platform.entity.SysUserEntity;
+import com.platform.enums.SysRoleEnum;
 import com.platform.service.SysRoleService;
 import com.platform.service.SysUserRoleService;
 import com.platform.service.SysUserService;
@@ -39,7 +40,6 @@ import java.util.stream.Collectors;
  * @email 939961241@qq.com
  * @date 2016年10月31日 上午10:40:10
  */
-@Api(tags = "管理后台系统管理员操作相关接口")
 @RestController
 @RequestMapping("/sys/user")
 @Slf4j
@@ -69,15 +69,8 @@ public class SysUserController extends AbstractController {
     /**
      * 店铺绑定的用户列表
      */
-    @ApiOperation(value = "店铺绑定的用户列表")
     @GetMapping("/bindList")
     @RequiresPermissions("sys:user:list")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "deptId", value = "部门ID", dataType = "long"),
-            @ApiImplicitParam(name = "key", value = "搜索条件", dataType = "String"),
-            @ApiImplicitParam(name = "pageNum", value = "当前页码", dataType = "long"),
-            @ApiImplicitParam(name = "pageSize", value = "每页大小", dataType = "long"),
-    })
     public R userBindList(@RequestParam(name = "deptId") long deptId,
                           String key,
                           @RequestParam(name = "brandId") long brandId,
@@ -96,28 +89,30 @@ public class SysUserController extends AbstractController {
     /**
      * 所有管理员列表
      */
-    @ApiOperation("列出所有系统管理员")
     @GetMapping("/list")
     @RequiresPermissions("sys:user:list")
     public R list(@RequestParam Map<String, Object> params) {
         //只有超级管理员,才能查看所有管理员列表
         if (getUserId() != Constant.SUPER_ADMIN) {
-            //TODO:如果有大客户,部门多了,可能会出现慢查询
             params.put("deptIdList", sysDeptService.getSubDeptIdList(getDeptId()));
         }
-
         //查询列表数据
         Query query = new Query(params);
         List<SysUserEntity> userList = sysUserService.queryList(query);
         int total = sysUserService.queryTotal(query);
-        List<SysUserEntity> totalUserList = new ArrayList<>();
-        for (SysUserEntity userEntity : userList) {
-            userEntity.setBrandList(mySysUserBrandService.queryList(userEntity.getUserId()));
-            List<SysRoleEntity> curRoleList = sysRoleService.queryListByUserId(userEntity.getUserId());
-            userEntity.setRoleList(curRoleList);
-            totalUserList.add(userEntity);
-        }
-        PageUtils pageUtil = new PageUtils(totalUserList, total, query.getLimit(), query.getPage());
+        userList.parallelStream().forEach(userEntity -> {
+                    List<SysRoleEntity> curRoleList = new ArrayList<>();
+                    if (!ObjectUtils.isEmpty(userEntity.getIsPlatformStreamer()) && userEntity.getIsPlatformStreamer()) {
+                        SysRoleEntity sysRoleEntity = new SysRoleEntity();
+                        sysRoleEntity.setRoleName("平台主持人");
+                        curRoleList.add(sysRoleEntity);
+                    } else {
+                        curRoleList = sysRoleService.queryListByUserId(userEntity.getUserId());
+                    }
+                    userEntity.setRoleList(curRoleList);
+                }
+        );
+        PageUtils pageUtil = new PageUtils(userList, total, query.getLimit(), query.getPage());
         return R.ok().put("page", pageUtil);
     }
 
@@ -192,27 +187,24 @@ public class SysUserController extends AbstractController {
      * 修改登录用户密码
      */
     @SysLog("修改密码")
-    @PostMapping("/password")
-    public R password(String password, String newPassword, String fdkkUser) {
-        if (ResourceUtil.getConfigByName("sys.demo").equals("1")) {
-            throw new RRException("演示环境无法修改密码!");
-        }
-        Assert.isBlank(newPassword, "新密码不为能空");
-
-        //sha256加密
-        password = new Sha256Hash(password).toHex();
-        //sha256加密
-        newPassword = new Sha256Hash(newPassword).toHex();
-
+    @PostMapping("/bind4dkkUser")
+    public R password(String fdkkPassword, String fdkkUser) {
+        Assert.isBlank(fdkkUser, "手机号不为能空");
+        Assert.isBlank(fdkkPassword, "4d看看密码不为能空");
         //更新密码
-        int count = sysUserService.updatePassword(getUserId(), password, newPassword, fdkkUser);
-        if (count == 0) {
-            return R.error("原密码不正确");
-        }
-
-        //退出
-        ShiroUtils.logout();
+        sysUserService.updatePassword(getUser().getMobile(), null, fdkkPassword, fdkkUser);
+        return R.ok();
+    }
 
+    /**
+     * 修改登录用户密码
+     */
+    @SysLog("修改密码")
+    @PostMapping("/unBind4dkkUser")
+    public R unBind4dkkUser(String fdkkUser) {
+        Assert.isBlank(fdkkUser, "手机号不为能空");
+        //更新密码
+        sysUserService.updatePassword(getUser().getMobile(), null, null, fdkkUser);
         return R.ok();
     }
 
@@ -228,8 +220,6 @@ public class SysUserController extends AbstractController {
         List<Long> roleIdList = sysUserRoleService.queryRoleIdList(userId);
         user.setRoleIdList(roleIdList);
 
-        user.setBrandList(mySysUserBrandService.queryList(userId));
-
         return R.ok().put("user", user);
     }
 
@@ -244,15 +234,12 @@ public class SysUserController extends AbstractController {
             user.setRoleIdList(roleIdList);
         }
 
-        user.setBrandList(mySysUserBrandService.queryList(userId));
-
         return R.ok().put("user", user);
     }
 
     /**
      * 保存用户
      */
-    @ApiOperation("新增系统管理员接口")
     @SysLog("保存用户")
     @PostMapping("/save")
     @RequiresPermissions("sys:user:save")
@@ -265,8 +252,13 @@ public class SysUserController extends AbstractController {
         }
 
         user.setCreateUserId(getUserId());
-        sysUserService.save(user);
 
+        // 如果是平台主持人,则设置为公司员工
+        if(user.getRoleIdList().contains(SysRoleEnum.PLATFORM_STREAMER.getCode())){
+            user.setIsPlatformStreamer(true);
+            user.setRoleIdList(Collections.singletonList(8L));
+        }
+        sysUserService.save(user);
         return R.ok();
     }
 
@@ -326,12 +318,7 @@ public class SysUserController extends AbstractController {
     @RequiresPermissions("sys:user:update")
     public R update(@RequestBody SysUserEntity user) {
         ValidatorUtils.validateEntity(user, UpdateGroup.class);
-        try {
-            sysUserService.update(user);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return R.error(e.getMessage());
-        }
+        sysUserService.update(user);
         return R.ok();
     }
 

+ 2 - 2
platform-shop/src/main/java/com/platform/controller/TokenController.java

@@ -23,7 +23,7 @@ public class TokenController {
     protected Logger log = LoggerFactory.getLogger(this.getClass());
 
     @Value("${scenePath}")
-    private String KankanHost;
+    private String zhiHouseHost;
 
     @Autowired
     private RestTemplate restTemplate;
@@ -35,7 +35,7 @@ public class TokenController {
             return Result.failure("参数有误!");
         }
         // 判断token是否有效
-        String url = KankanHost + "api/platform/generateSceneEditToken";
+        String url = zhiHouseHost + "api/platform/generateSceneEditToken";
         HttpHeaders headers = new HttpHeaders();
         headers.add("token", param.get("token"));
         HttpEntity<Object> formEntity = new HttpEntity<>(param, headers);