Browse Source

update:修改mall-admin用户连通

liujunchi 2 years ago
parent
commit
8874bb6656

+ 2 - 0
cooleshow-gateway/gateway-web/src/main/java/com/yonge/gateway/web/config/SwaggerDocumentConfig.java

@@ -24,6 +24,8 @@ public class SwaggerDocumentConfig implements SwaggerResourcesProvider {
 		resources.add(swaggerResource("STUDENT服务", "/student-server/v2/api-docs", "2.0"));
 		resources.add(swaggerResource("TEACHER服务", "/teacher-server/v2/api-docs", "2.0"));
 		resources.add(swaggerResource("ADMIN服务", "/admin-server/v2/api-docs", "2.0"));
+		resources.add(swaggerResource("MALL_ADMIN服务", "/mall-admin-server/v2/api-docs", "2.0"));
+		resources.add(swaggerResource("MALL_PORTAL服务", "/mall-portal-server/v2/api-docs", "2.0"));
 		return resources;
 	}
 

+ 4 - 4
cooleshow-mall/mall-admin/pom.xml

@@ -40,10 +40,10 @@
             <groupId>com.yonge.cooleshow</groupId>
             <artifactId>mall-security</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.yonge.cooleshow</groupId>-->
-<!--            <artifactId>auth-api</artifactId>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>com.yonge.cooleshow</groupId>
+            <artifactId>auth-api</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.aliyun.oss</groupId>
             <artifactId>aliyun-sdk-oss</artifactId>

+ 3 - 1
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/MallAdminApplication.java

@@ -5,6 +5,7 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.ComponentScan;
 
 /**
@@ -14,8 +15,9 @@ import org.springframework.context.annotation.ComponentScan;
 @SpringBootApplication
 @EnableDiscoveryClient
 @MapperScan({"com.yonge.cooleshow.admin.dao","com.yonge.cooleshow.mbg.mapper"})
-@ComponentScan(basePackages = {"com.yonge.cooleshow.admin", "com.yonge.cooleshow.mbg", "com.yonge.cooleshow.mall.common" ,"com.macro.mall.security"})
+@ComponentScan(basePackages = {"com.yonge.cooleshow.admin", "com.yonge.cooleshow.mbg", "com.yonge.cooleshow.mall.common" ,"com.yonge.cooleshow.mall.security"})
 @EnableSwagger2Doc
+@EnableFeignClients("com.yonge.cooleshow")
 public class MallAdminApplication {
     public static void main(String[] args) {
         SpringApplication.run(MallAdminApplication.class, args);

+ 37 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java

@@ -0,0 +1,37 @@
+package com.yonge.cooleshow.admin.config;
+
+import com.yonge.cooleshow.common.config.EnumConverterFactory;
+import com.yonge.cooleshow.common.config.LocalFastJsonHttpMessageConverter;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.format.FormatterRegistry;
+import org.springframework.http.MediaType;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+
+
+	/**
+	 * 枚举类的转换器 addConverterFactory
+	 */
+	@Override
+	public void addFormatters(FormatterRegistry registry) {
+		registry.addConverterFactory(new EnumConverterFactory());
+	}
+
+
+	@Bean
+	public HttpMessageConverters fastJsonHttpMessageConverters() {
+		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
+		List<MediaType> fastMediaTypes = new ArrayList<>();
+		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+		converter.setSupportedMediaTypes(fastMediaTypes);
+		return new HttpMessageConverters(converter);
+	}
+}

+ 34 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsAdminController.java

@@ -1,6 +1,8 @@
 package com.yonge.cooleshow.admin.controller;
 
 import cn.hutool.core.collection.CollUtil;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.mall.common.api.CommonPage;
 import com.yonge.cooleshow.mall.common.api.CommonResult;
 import com.yonge.cooleshow.admin.dto.UmsAdminLoginParam;
@@ -41,6 +43,8 @@ public class UmsAdminController {
     private UmsAdminService adminService;
     @Autowired
     private UmsRoleService roleService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "用户注册")
     @RequestMapping(value = "/register", method = RequestMethod.POST)
@@ -67,6 +71,36 @@ public class UmsAdminController {
         return CommonResult.success(tokenMap);
     }
 
+
+    @ApiOperation(value = "登录以后返回token")
+    @RequestMapping(value = "/login/token", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult login() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+
+        UmsAdmin admin = adminService.getAdminById(sysUser.getId());
+        // 设置首次登录 拥有全部权限
+        if (admin == null || admin.getId() == null) {
+            admin = new UmsAdmin();
+            admin.setId(sysUser.getId());
+            admin.setCreateTime(sysUser.getCreateTime());
+            admin.setUsername(sysUser.getUsername());
+            admin.setPassword(sysUser.getPassword());
+            admin.setStatus(1);
+            admin.setIcon(sysUser.getAvatar());
+            adminService.createRootAdmin(admin);
+        }
+
+        String token = adminService.login(admin.getUsername(), admin.getPassword());
+        if (token == null) {
+            return CommonResult.validateFailed("用户名或密码错误");
+        }
+        Map<String, String> tokenMap = new HashMap<>();
+        tokenMap.put("token", token);
+        tokenMap.put("tokenHead", tokenHead);
+        return CommonResult.success(tokenMap);
+    }
+
     @ApiOperation(value = "刷新token")
     @RequestMapping(value = "/refreshToken", method = RequestMethod.GET)
     @ResponseBody

+ 3 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsRoleController.java

@@ -49,6 +49,9 @@ public class UmsRoleController {
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ResponseBody
     public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        if (ids.stream().anyMatch(id -> id.equals(1L))) {
+            return CommonResult.failed("默认角色不能删除");
+        }
         int count = roleService.delete(ids);
         if (count > 0) {
             return CommonResult.success(count);

+ 16 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/UmsAdminService.java

@@ -84,4 +84,20 @@ public interface UmsAdminService {
      * 获取用户信息
      */
     UserDetails loadUserByUsername(String username);
+
+    /**
+     * 获取用户信息
+     *
+     * @param id id
+     * @return
+     */
+    UmsAdmin getAdminById(Long id);
+
+    /**
+     *  创建root用户
+     *
+     * @param admin 用户信息
+     * @return
+     */
+    boolean createRootAdmin(UmsAdmin admin);
 }

+ 16 - 3
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/UmsAdminServiceImpl.java

@@ -100,9 +100,9 @@ public class UmsAdminServiceImpl implements UmsAdminService {
         //密码需要客户端加密后传递
         try {
             UserDetails userDetails = loadUserByUsername(username);
-            if(!passwordEncoder.matches(password,userDetails.getPassword())){
-                Asserts.fail("密码不正确");
-            }
+            // if(!passwordEncoder.matches(password,userDetails.getPassword())){
+            //     Asserts.fail("密码不正确");
+            // }
             if(!userDetails.isEnabled()){
                 Asserts.fail("帐号已被禁用");
             }
@@ -267,4 +267,17 @@ public class UmsAdminServiceImpl implements UmsAdminService {
         }
         throw new UsernameNotFoundException("用户名或密码错误");
     }
+
+    @Override
+    public UmsAdmin getAdminById(Long id) {
+        return adminMapper.selectByPrimaryKey(id);
+    }
+
+    @Override
+    public boolean createRootAdmin(UmsAdmin admin) {
+        adminMapper.addRootAdmin(admin);
+        List<Long> roleIds = new ArrayList<>();
+        roleIds.add(1L);
+        return updateRole(admin.getId(),roleIds) > 0;
+    }
 }

+ 2 - 0
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/UmsAdminMapper.java

@@ -27,4 +27,6 @@ public interface UmsAdminMapper {
     int updateByPrimaryKeySelective(UmsAdmin record);
 
     int updateByPrimaryKey(UmsAdmin record);
+
+    int addRootAdmin(UmsAdmin admin);
 }

+ 11 - 0
cooleshow-mall/mall-mbg/src/main/resources/config/mybatis/UmsAdminMapper.xml

@@ -287,4 +287,15 @@
       status = #{status,jdbcType=INTEGER}
     where id = #{id,jdbcType=BIGINT}
   </update>
+
+  <insert id="addRootAdmin"  parameterType="com.yonge.cooleshow.mbg.model.UmsAdmin">
+    insert into ums_admin (id,username, password, icon,
+    email, nick_name, note,
+    create_time, login_time, status
+    )
+    values (#{id,jdbcType=BIGINT},#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR},
+    #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR},
+    #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}
+    )
+  </insert>
 </mapper>

+ 0 - 12
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UmsMemberServiceImpl.java

@@ -3,7 +3,6 @@ package com.yonge.cooleshow.portal.service.impl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.common.exception.BizException;
-import com.yonge.cooleshow.mall.common.exception.Asserts;
 import com.yonge.cooleshow.mbg.mapper.UmsMemberLevelMapper;
 import com.yonge.cooleshow.mbg.mapper.UmsMemberMapper;
 import com.yonge.cooleshow.mbg.model.UmsMember;
@@ -16,23 +15,12 @@ import com.yonge.cooleshow.portal.service.UmsMemberService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.security.authentication.BadCredentialsException;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.context.SecurityContext;
-import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
 
-import java.util.Date;
 import java.util.List;
-import java.util.Random;
 
 /**
  * 会员管理Service实现类