diff --git a/cloud-auth/pom.xml b/cloud-auth/pom.xml index 0a76aae..340bd56 100644 --- a/cloud-auth/pom.xml +++ b/cloud-auth/pom.xml @@ -57,6 +57,10 @@ com.muyu cloud-common-api-doc + + com.mysql + mysql-connector-j + diff --git a/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java b/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java index d870762..76e9200 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java +++ b/cloud-auth/src/main/java/com/muyu/auth/controller/TokenController.java @@ -1,7 +1,9 @@ package com.muyu.auth.controller; +import com.muyu.auth.form.Firm; import com.muyu.auth.form.LoginBody; import com.muyu.auth.form.RegisterBody; +import com.muyu.auth.service.SysFirmService; import com.muyu.auth.service.SysLoginService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.JwtUtils; @@ -30,11 +32,22 @@ public class TokenController { @Autowired private SysLoginService sysLoginService; + @Autowired + private SysFirmService sysFirmService; + @PostMapping("login") public Result login (@RequestBody LoginBody form) { + //查询用户公司是否存在 + Firm firm = sysFirmService.findFirmByName(form.getFirmName()); + + //不能存在提示 + if (firm.getDatabaseName()==null){ + return Result.error(null,"公司不存在"); + } + // 用户登录 - LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); + LoginUser userInfo = sysLoginService.login(firm.getDatabaseName(),form.getUsername(), form.getPassword()); // 获取登录token return Result.success(tokenService.createToken(userInfo)); } diff --git a/cloud-auth/src/main/java/com/muyu/auth/form/Firm.java b/cloud-auth/src/main/java/com/muyu/auth/form/Firm.java new file mode 100644 index 0000000..14a9eed --- /dev/null +++ b/cloud-auth/src/main/java/com/muyu/auth/form/Firm.java @@ -0,0 +1,20 @@ +package com.muyu.auth.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Firm { + + private Integer id; + + private String firmName; + + private String databaseName; + + + +} diff --git a/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java b/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java index 354122e..63928db 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java +++ b/cloud-auth/src/main/java/com/muyu/auth/form/LoginBody.java @@ -1,11 +1,22 @@ package com.muyu.auth.form; +import lombok.Data; + /** * 用户登录对象 * * @author muyu */ + +@Data public class LoginBody { + + /** + * 公司名称 + */ + private String firmName; + + /** * 用户名 */ @@ -17,19 +28,5 @@ public class LoginBody { private String password; - public String getUsername () { - return username; - } - public void setUsername (String username) { - this.username = username; - } - - public String getPassword () { - return password; - } - - public void setPassword (String password) { - this.password = password; - } } diff --git a/cloud-auth/src/main/java/com/muyu/auth/service/SysFirmService.java b/cloud-auth/src/main/java/com/muyu/auth/service/SysFirmService.java new file mode 100644 index 0000000..da591db --- /dev/null +++ b/cloud-auth/src/main/java/com/muyu/auth/service/SysFirmService.java @@ -0,0 +1,56 @@ +package com.muyu.auth.service; + +import com.muyu.auth.form.Firm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.Statement; +import java.util.List; + + +@Component +public class SysFirmService { + + static final String USER="root"; + static final String PASSWORD="Lw030106"; + + @Autowired + private RedisTemplate redisTemplate; + + + public Firm findFirmByName(String firmName){ + Firm firm = new Firm(); + try { +// Class.forName("com.mysql.cj.jdbc.Driver"); + DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver()); + Connection connection= DriverManager.getConnection("jdbc:mysql://47.101.53.251:3306/datasource?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&useSSL=false",USER,PASSWORD); + String sql="select * from `datasource` where firm_name = '"+firmName+"'"; + + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery(sql); + + + while (rs.next()){ + firm.setId(rs.getInt("id")); + firm.setFirmName(rs.getString("firm_name")); + firm.setDatabaseName(rs.getString("database_name")); + } + + } catch (Exception e) { + throw new RuntimeException(e); + } + + //数据源不为空 + if (firm!=null){ + redisTemplate.opsForValue().set("datasource",firm.getDatabaseName()); + } + return firm; + }; + + + +} diff --git a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java index ff0af1a..2bce27b 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java +++ b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java @@ -12,6 +12,7 @@ import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.ip.IpUtils; import com.muyu.common.redis.service.RedisService; import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.Firm; import com.muyu.common.system.remote.RemoteUserService; import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.LoginUser; @@ -40,7 +41,7 @@ public class SysLoginService { /** * 登录 */ - public LoginUser login (String username, String password) { + public LoginUser login (String databaseName,String username, String password) { // 用户名或密码为空 错误 if (StringUtils.isAnyBlank(username, password)) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写"); @@ -64,8 +65,14 @@ public class SysLoginService { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单"); throw new ServiceException("很遗憾,访问IP已被列入系统黑名单"); } + + Firm firm = new Firm(); + firm.setDatabaseName(databaseName); + firm.setUserName(username); + + // 查询用户信息 - Result userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER); + Result userResult = remoteUserService.getUserInfo(firm, SecurityConstants.INNER); if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) { recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在"); diff --git a/cloud-auth/src/main/resources/bootstrap.yml b/cloud-auth/src/main/resources/bootstrap.yml index a0515a2..38c7f2a 100644 --- a/cloud-auth/src/main/resources/bootstrap.yml +++ b/cloud-auth/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 47.101.53.251:8848 user-name: nacos password: nacos - namespace: yzl + namespace: four # Spring spring: application: diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Firm.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Firm.java new file mode 100644 index 0000000..d468de4 --- /dev/null +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/Firm.java @@ -0,0 +1,22 @@ +package com.muyu.common.system.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Firm { + + private Integer id; + + private String firmName; + + private String databaseName; + + private String userName; + + + +} diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java index 3dc4521..9dec349 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java @@ -4,6 +4,7 @@ import com.muyu.common.core.constant.SecurityConstants; import com.muyu.common.core.constant.ServiceNameConstants; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.system.domain.Firm; import com.muyu.common.system.domain.SysFirmUser; import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory; @@ -23,13 +24,13 @@ public interface RemoteUserService { /** * 通过用户名查询用户信息 * - * @param username 用户名 + * @param * @param source 请求来源 * * @return 结果 */ - @GetMapping("/user/info/{username}") - public Result getUserInfo (@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @PostMapping("/user/info") + public Result getUserInfo (@RequestBody Firm firm, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 注册用户信息 diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java index 071490a..d3efb79 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java @@ -2,6 +2,7 @@ package com.muyu.common.system.remote.factory; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.system.domain.Firm; import com.muyu.common.system.domain.SysFirmUser; import com.muyu.common.system.remote.RemoteUserService; import com.muyu.common.system.domain.SysUser; @@ -26,8 +27,10 @@ public class RemoteUserFallbackFactory implements FallbackFactory getUserInfo (String username, String source) { + public Result getUserInfo(Firm firm, String source) { return Result.error("获取用户失败:" + throwable.getMessage()); } diff --git a/cloud-gateway/src/main/resources/bootstrap.yml b/cloud-gateway/src/main/resources/bootstrap.yml index de95a70..cf1cc9f 100644 --- a/cloud-gateway/src/main/resources/bootstrap.yml +++ b/cloud-gateway/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 47.101.53.251:8848 user-name: nacos password: nacos - namespace: yzl + namespace: four # Spring spring: diff --git a/cloud-modules/cloud-modules-breakdown/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-breakdown/src/main/resources/bootstrap.yml index a7f2757..9ce45cb 100644 --- a/cloud-modules/cloud-modules-breakdown/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-breakdown/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 47.101.53.251:8848 user-name: nacos password: nacos - namespace: yzl + namespace: four # SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all # Spring spring: diff --git a/cloud-modules/cloud-modules-car/pom.xml b/cloud-modules/cloud-modules-car/pom.xml index 85a3751..17330b6 100644 --- a/cloud-modules/cloud-modules-car/pom.xml +++ b/cloud-modules/cloud-modules-car/pom.xml @@ -80,6 +80,11 @@ cloud-common-api-doc + + com.muyu + cloud-common-saas + + diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/domain/resp/SysCarVo.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/domain/resp/SysCarVo.java index 19663ed..966e77c 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/domain/resp/SysCarVo.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/domain/resp/SysCarVo.java @@ -16,7 +16,7 @@ public class SysCarVo extends SysCar { @Excel(name = "车辆类型名称") private String typeName; @Excel(name = "策略名称") - private Long strategyName; + private String strategyName; diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/mapper/SysCarMapper.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/mapper/SysCarMapper.java index b78d8b3..aa60480 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/mapper/SysCarMapper.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/mapper/SysCarMapper.java @@ -21,4 +21,10 @@ public interface SysCarMapper extends BaseMapper { List findFenceByCarVin(@Param("carVin") String carVin); + //修改车辆 + Integer updSysCarById(SysCar sysCar); + + //添加车辆信息 + Integer addSysCar(SysCar sysCar); + } diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/service/impl/SysCarServiceImpl.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/service/impl/SysCarServiceImpl.java index ffec01c..e68b549 100644 --- a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/service/impl/SysCarServiceImpl.java +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/service/impl/SysCarServiceImpl.java @@ -30,7 +30,7 @@ public class SysCarServiceImpl extends ServiceImpl impleme @Override public int addSysCar(SysCar sysCar) { - return sysCarMapper.insert(sysCar); + return sysCarMapper.addSysCar(sysCar); } @Override @@ -40,7 +40,7 @@ public class SysCarServiceImpl extends ServiceImpl impleme @Override public int updateSysCar(SysCar sysCar) { - return sysCarMapper.updateById(sysCar); + return sysCarMapper.updSysCarById(sysCar); } @Override diff --git a/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml index ab80c71..8ac80be 100644 --- a/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml @@ -7,7 +7,7 @@ nacos: addr: 47.101.53.251:8848 user-name: nacos password: nacos - namespace: lgy + namespace: four # Spring spring: diff --git a/cloud-modules/cloud-modules-car/src/main/resources/mapper/SysCarMapper.xml b/cloud-modules/cloud-modules-car/src/main/resources/mapper/SysCarMapper.xml index 6f7d444..e095fcd 100644 --- a/cloud-modules/cloud-modules-car/src/main/resources/mapper/SysCarMapper.xml +++ b/cloud-modules/cloud-modules-car/src/main/resources/mapper/SysCarMapper.xml @@ -3,6 +3,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + INSERT INTO `four`.`sys_car` + ( `car_vin`, `car_type_id`, `state`, `car_motor_manufacturer`, `car_motor_model`, + `car_battery_manufacturer`, `car_battery_model`, `strategy_id`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) + VALUES (#{carVin}, #{carTypeId}, '1', #{carMotorManufacturer}, #{carMotorModel}, + #{carBatteryManufacturer}, #{carBatteryModel}, #{strategyId},#{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{remark}) + + + UPDATE `four`.`sys_car` + SET `car_vin` = #{carVin}, + `car_type_id` = #{carTypeId}, + `state` = #{state}, + `car_motor_manufacturer` = #{carMotorManufacturer}, + `car_motor_model` = #{carMotorModel}, + `car_battery_manufacturer` = #{carBatteryManufacturer}, + `car_battery_model` = #{carBatteryModel}, + `strategy_id` = #{strategyId}, + `create_by` = #{createBy}, + `create_time` = #{createTime}, + `update_by` = #{updateBy}, + `update_time` = #{updateTime}, + `remark` = #{remark} WHERE `id` = #{id} +