Compare commits

..

2 Commits

Author SHA1 Message Date
WeiRan 3bf6f0d929 更新 2024-09-29 22:18:34 +08:00
WeiRan f27b14dc33 更新 2024-09-29 17:51:53 +08:00
30 changed files with 723 additions and 11 deletions

View File

@ -30,6 +30,10 @@ public class RegisterBody extends LoginBody {
/**
*
*/
private String phoneNumber;
private String phonenumber;
/**
*
*/
private String nickName;
}

View File

@ -127,10 +127,18 @@ public class SysLoginService {
// 注册用户信息
SysUser sysUser = new SysUser();
//公司账号
sysUser.setUserName(registerBody.getUsername());
//公司邮箱
sysUser.setEmail(registerBody.getEmail());
sysUser.setPhonenumber(registerBody.getPhoneNumber());
//公司号码
sysUser.setPhonenumber(registerBody.getPhonenumber());
//密码
sysUser.setPassword(SecurityUtils.encryptPassword(registerBody.getPassword()));
//公司注册人名称
sysUser.setNickName(registerBody.getNickName());
//企业名称
sysUser.setFirmName(registerBody.getFirmName());
Result<?> registerResult = remoteUserService.registerUserInfo(sysUser, SecurityConstants.INNER);
if (Result.FAIL == registerResult.getCode()) {

View File

@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
addr: 159.75.188.178:8848
user-name: nacos
password: nacos
namespace: eight

View File

@ -87,7 +87,6 @@ public class SysUser extends BaseEntity {
* ID
*/
private Integer firmId;
/**
*
*/
@ -145,6 +144,12 @@ public class SysUser extends BaseEntity {
*/
private Long roleId;
/**
*
* @param userId
*/
private String firmName;
public SysUser (Long userId) {
this.userId = userId;
}

View File

@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
addr: 159.75.188.178:8848
user-name: nacos
password: nacos
namespace: eight

View File

@ -54,5 +54,9 @@
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>cloud-common-system</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,40 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.domain
* @Projectcloud-server-8
* @nameFirm
* @Date2024/9/27 12:29
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class Firm {
/**
* ID
*/
@TableId(value = "firm_id")
private Long firmId;
/**
*
*/
@TableField(exist = false)
private String firmName;
/**
*
*/
private String databaseName;
}

View File

@ -0,0 +1,119 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.web.domain.BaseEntity;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.domain
* @Projectcloud-server-8
* @nameSysUser
* @Date2024/9/28 22:37
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@Tag(name = "用户信息")
@TableName("sys_user")
public class SysUser extends BaseEntity {
/**
* ID
*/
@TableId(value = "user_id")
private Long userId;
/**
* ID
*/
private Long deptId;
/**
*
*/
private String userName;
/**
*
*/
private String nickName;
/**
* 00
*/
private String userType;
/**
*
*/
private String email;
/**
*
*/
private String phonenumber;
/**
* 0 1 2
*/
private Integer sex;
/**
*
*/
private String avatar;
/**
*
*/
private String password;
/**
* 0 1
*/
private Integer status;
/**
* 0 2
*/
private String delFlag;
/**
* IP
*/
private String loginIp;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date loginDate;
/**
*
*/
private String databaseName;
/**
* ID
*/
private Long firmId;
/**
*
*/
@TableField(exist = false)
private String firmName;
}

View File

@ -0,0 +1,37 @@
package com.muyu.domain.req;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.domain.req
* @Projectcloud-server-8
* @nameFirmListReq
* @Date2024/9/27 19:19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "公司信息请求对象",description = "公司信息请求对象")
public class FirmListReq {
/**
*
*/
private String firmName;
/**
* 1
*/
private Integer pageNum=1;
/**
*
*/
private Integer pageSize=10;
}

View File

@ -0,0 +1,138 @@
package com.muyu.domain.resp;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.domain.SysUser;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.domain.resp
* @Projectcloud-server-8
* @nameFirmListResp
* @Date2024/9/27 19:33
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name="企业信息响应对象",description = "企业信息响应对象")
public class FirmListResp {
/**
* ID
*/
private Long userId;
/**
* ID
*/
private Long deptId;
/**
*
*/
private String userName;
/**
*
*/
private String nickName;
/**
* 00
*/
private String userType;
/**
*
*/
private String email;
/**
*
*/
private String phonenumber;
/**
* 0 1 2
*/
private Integer sex;
/**
*
*/
private String avatar;
/**
*
*/
private String password;
/**
* 0 1
*/
private Integer status;
/**
* 0 2
*/
private String delFlag;
/**
* IP
*/
private String loginIp;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date loginDate;
/**
*
*/
private String databaseName;
/**
* ID
*/
private Long firmId;
/**
*
*/
@TableField(exist = false)
private String firmName;
/**
*
*/
public static FirmListResp firmListResp(SysUser sysUser){
return FirmListResp.builder()
.userId(sysUser.getUserId())
.deptId(sysUser.getDeptId())
.userName(sysUser.getUserName())
.nickName(sysUser.getNickName())
.userType((sysUser.getUserType()))
.email(sysUser.getEmail())
.phonenumber(sysUser.getPhonenumber())
.sex(sysUser.getSex())
.avatar(sysUser.getAvatar())
.password(sysUser.getPassword())
.status(sysUser.getStatus())
.delFlag(sysUser.getDelFlag())
.loginDate(sysUser.getLoginDate())
.databaseName(sysUser.getDatabaseName())
.firmId(sysUser.getFirmId())
.build();
}
}

View File

@ -0,0 +1,36 @@
package com.muyu.domain.resp;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.domain.resp.firmlist
* @Projectcloud-server-8
* @nameFirmTotalListResp
* @Date2024/9/27 19:42
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Tag(name = "公司数据总数列表",description = "数据总数响应")
public class FirmTotalListResp {
private List<FirmListResp> firmListRespList;
private long total;
public static FirmTotalListResp firmTotalListResp(List<FirmListResp> firmListRespList,long toal){
FirmTotalListResp firmTotalListResp = new FirmTotalListResp();
firmTotalListResp.setFirmListRespList(firmListRespList);
firmTotalListResp.setTotal(toal);
return firmTotalListResp;
}
}

View File

@ -0,0 +1,47 @@
package com.muyu.server.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.req.FirmListReq;
import com.muyu.domain.resp.FirmTotalListResp;
import com.muyu.server.service.FirmManageService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
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;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.controller
* @Projectcloud-server-8
* @nameFirmManageController
* @Date2024/9/27 12:27
*/
@RestController
@RequestMapping("/firmmanage")
@Tag(name = "公司相关事务",description = "公司相关事务操作")
public class FirmManageController {
@Autowired
private FirmManageService firmManageService;
/**
*
* @param firmListReq
* @return
*/
@PostMapping("/firmmessageList")
@Operation(summary = "公司信息列表展示",description = "展示公司信息的列表")
public Result firmmessageList(@Validated @RequestBody FirmListReq firmListReq){
FirmTotalListResp firmTotalListResp = firmManageService.firmmessageList(firmListReq);
return Result.success(firmTotalListResp);
}
}

View File

@ -0,0 +1,23 @@
package com.muyu.server.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.muyu.domain.Firm;
import com.muyu.domain.SysUser;
import com.muyu.domain.req.FirmListReq;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* +
* @Authorweiran
* @Packagecom.muyu.firmmanage.mapper
* @Projectcloud-server-8
* @nameFirmManageMapper
* @Date2024/9/27 12:28
*/
@Mapper
public interface FirmManageMapper extends MPJBaseMapper<SysUser> {
List<Firm> firmmessageList(FirmListReq firmListReq);
}

View File

@ -0,0 +1,17 @@
package com.muyu.server.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.muyu.domain.Firm;
import org.apache.ibatis.annotations.Mapper;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.mapper
* @Projectcloud-server-8
* @nameFirmMapper
* @Date2024/9/29 16:56
*/
@Mapper
public interface FirmMapper extends MPJBaseMapper<Firm> {
}

View File

@ -0,0 +1,26 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.SysUser;
import com.muyu.domain.req.FirmListReq;
import com.muyu.domain.resp.FirmTotalListResp;
import java.util.List;
/**
* +
* @Authorweiran
* @Packagecom.muyu.firmmanage.service
* @Projectcloud-server-8
* @nameFirmManageService
* @Date2024/9/27 12:28
*/
public interface FirmManageService extends IService<SysUser> {
/**
*
* @param firmListReq
* @return
*/
FirmTotalListResp firmmessageList(FirmListReq firmListReq);
}

View File

@ -0,0 +1,21 @@
package com.muyu.server.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.Firm;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.service
* @Projectcloud-server-8
* @nameFirmService
* @Date2024/9/29 16:57
*/
public interface FirmService extends IService<Firm> {
/**
*
* @return
*/
long findcount();
}

View File

@ -152,4 +152,5 @@ public class CarInformationServiceImpl
});
return carInformationResps;
}
}

View File

@ -9,6 +9,7 @@ import com.muyu.server.mapper.CarFenceMapper;
import com.muyu.server.mapper.CarInformationMapper;
import com.muyu.server.mapper.FaultConditionMapper;
import com.muyu.server.mapper.FaultRuleMapper;
import com.muyu.server.service.CarInformationService;
import com.muyu.server.service.FaultRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -29,6 +30,8 @@ import java.util.List;
@Service
public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultRule> implements FaultRuleService {
@Autowired
private CarInformationService carInformationService;
@Autowired
private CarInformationMapper carInformationMapper;
@Autowired
@ -45,6 +48,7 @@ public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultR
//根据车辆VIN判断它属于什么类型的车辆
CarInformation carInformation = carInformationMapper.selectById(carFaultRule.getVin());
Integer carInformationType = carInformation.getCarInformationType();
// carInformationService.selectTypeByVIN(carFaultRule.getVin());
//根据车辆类型,查询表获取对应的类型的故障规则
List<FaultConditionResp> faultConditionResps = faultConditionMapper.selectJoinList(FaultConditionResp.class, new MPJLambdaWrapper<FaultCondition>()

View File

@ -0,0 +1,53 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.Firm;
import com.muyu.domain.SysUser;
import com.muyu.domain.req.FirmListReq;
import com.muyu.domain.resp.FirmListResp;
import com.muyu.domain.resp.FirmTotalListResp;
import com.muyu.server.mapper.FirmManageMapper;
import com.muyu.server.service.FirmManageService;
import com.muyu.server.service.FirmService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* +
* @Authorweiran
* @Packagecom.muyu.firmmanage.service.impl
* @Projectcloud-server-8
* @nameFirmManageServiceImpl
* @Date2024/9/27 12:28
*/
@Service
public class FirmManageServiceImpl extends ServiceImpl<FirmManageMapper, SysUser> implements FirmManageService {
@Autowired
private FirmManageMapper firmManageMapper;
@Autowired
private FirmService firmService;
/**
*
* @param firmListReq
* @return
*/
@Override
public FirmTotalListResp firmmessageList(FirmListReq firmListReq) {
long findcount = firmService.findcount();
MPJLambdaWrapper<SysUser> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(SysUser.class)
.selectAll(Firm.class)
.leftJoin(Firm.class,Firm::getFirmId,SysUser::getFirmId)
.eq(StringUtils.isNotEmpty(firmListReq.getFirmName()),
Firm::getFirmName, firmListReq.getFirmName());
wrapper.last("LIMIT "+((firmListReq.getPageNum()-1)*firmListReq.getPageSize())+","+firmListReq.getPageSize());
List<FirmListResp> firmListResps = firmManageMapper.selectJoinList(FirmListResp.class, wrapper);
return FirmTotalListResp.firmTotalListResp(firmListResps,findcount);
}
}

View File

@ -0,0 +1,32 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.Firm;
import com.muyu.server.mapper.FirmMapper;
import com.muyu.server.service.FirmService;
import org.springframework.stereotype.Service;
/**
*
* @Authorweiran
* @Packagecom.muyu.firmmanage.service.impl
* @Projectcloud-server-8
* @nameFirmServiceImpl
* @Date2024/9/29 16:57
*/
@Service
public class FirmServiceImpl extends ServiceImpl<FirmMapper, Firm> implements FirmService {
/**
*
* @return
*/
@Override
public long findcount() {
LambdaQueryWrapper<Firm> queryWrapper = new LambdaQueryWrapper<>();
long count = this.count(queryWrapper);
return count;
}
}

View File

@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
addr: 159.75.188.178:8848
user-name: nacos
password: nacos
namespace: eight

View File

@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
addr: 159.75.188.178:8848
user-name: nacos
password: nacos
namespace: eight

View File

@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
addr: 159.75.188.178:8848
user-name: nacos
password: nacos
namespace: eight

View File

@ -142,4 +142,11 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
List<SysUser> companyList();
/**
*
* @param firmName
* @param datbaseName
* @return
*/
Integer insertFirm(@Param("firmName") String firmName, @Param("datbaseName") String datbaseName);
}

View File

@ -0,0 +1,16 @@
package com.muyu.system.service;
import com.muyu.common.system.domain.SysUser;
/**
* @Authorweiran
* @Packagecom.muyu.system.service
* @Projectcloud-server-8
* @nameDataBaseCreator
* @Date2024/9/26 20:40
*/
public interface DataBaseCreator {
String createDatbase(SysUser user);
}

View File

@ -0,0 +1,49 @@
package com.muyu.system.service.impl;
import cn.hutool.core.util.RandomUtil;
import com.muyu.common.system.domain.SysUser;
import com.muyu.system.service.DataBaseCreator;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
* @Authorweiran
* @Packagecom.muyu.system.service.impl
* @Projectcloud-server-8
* @nameDataBaseCreatorImpl
* @Date2024/9/26 20:40
*/
@Service
public class DataBaseCreatorImpl implements DataBaseCreator {
private static final String DB_URL="jdbc:mysql://159.75.188.178:3306?useSSL=false";
private static final String USER="root";
private static final String PASS="bwie-8666";
@Override
public String createDatbase(SysUser user) {
try {
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
Statement statement = conn.createStatement();
String datbaseName="company"+RandomUtil.randomNumbers(5);
//创建数据库
String sqlCreateDatabase ="CREATE DATABASE IF NOT EXISTS "+datbaseName;
String sqlUseDatabase="USE "+datbaseName;
String sqlCreateTable="CREATE TABLE user ("+
"user_id INT AUTO_INCREMENT PRIMARY KEY,"+
"user_name VARCHAR(50) NOT NULL )";
statement.execute(sqlCreateDatabase);
statement.execute(sqlUseDatabase);
statement.execute(sqlCreateTable);
return datbaseName;
}catch (Exception e){
e.printStackTrace();
throw new RuntimeException("数据库创建失败");
}
}
}

View File

@ -14,6 +14,7 @@ import com.muyu.system.domain.SysPost;
import com.muyu.system.domain.SysUserPost;
import com.muyu.system.domain.SysUserRole;
import com.muyu.system.mapper.*;
import com.muyu.system.service.DataBaseCreator;
import com.muyu.system.service.SysUserService;
import com.muyu.system.service.SysConfigService;
import jakarta.validation.Validator;
@ -50,6 +51,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
private SysUserPostMapper userPostMapper;
@Autowired
private SysConfigService configService;
@Autowired
private DataBaseCreator baseCreator;
/**
*
@ -254,7 +257,24 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
*/
@Override
public boolean registerUser (SysUser user) {
return userMapper.insertUser(user) > 0;
//根据新注册的用户创建对应数据库
String datbaseName = baseCreator.createDatbase(user);
//添加公司名称
userMapper.insertFirm(user.getFirmName(),datbaseName);
Integer firmId = user.getFirmId();
user.setFirmId(firmId);
//添加用户表
int i = userMapper.insertUser(user);
List<SysUser> userList = userMapper.selectUserList(user);
Long userId = userList.get(0).getUserId();
ArrayList<SysUserRole> list = new ArrayList<>();
//将用户和角色进行关联
SysUserRole userRole = new SysUserRole();
userRole.setUserId(userId);
userRole.setRoleId(2L);
list.add(userRole);
userRoleMapper.batchUserRole(list);
return i > 0;
}
/**

View File

@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
addr: 159.75.188.178:8848
user-name: nacos
password: nacos
namespace: eight

View File

@ -222,6 +222,11 @@
sysdate()
)
</insert>
<insert id="insertFirm" useGeneratedKeys="true" keyProperty="firmId">
INSERT INTO `eight`.`firm`
(`firm_id`, `firm_name`, `database_name`) VALUES
(0, #{firmName}, #{datbaseName});
</insert>
<update id="updateUser" parameterType="com.muyu.common.system.domain.SysUser">
update sys_user

View File

@ -4,7 +4,7 @@ server:
# nacos线上地址
nacos:
addr: 127.0.0.1:8848
addr: 159.75.188.178:8848
user-name: nacos
password: nacos
namespace: eight