代码提交
parent
03c54e4cc5
commit
9dca0dd6a3
12
pom.xml
12
pom.xml
|
|
@ -186,6 +186,18 @@
|
|||
</dependency>
|
||||
<!-- joda-time end -->
|
||||
|
||||
<!-- Sa-Token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||
<version>1.30.0</version>
|
||||
</dependency><!-- Sa-Token 整合 Redis (使用 jackson 序列化方式) -->
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-dao-redis-jackson</artifactId>
|
||||
<version>1.30.0</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CREATE TABLE "FXKH_TXL"."ADDRESS_BOOK"
|
|||
"URL" VARCHAR(200),
|
||||
"SORT" INTEGER DEFAULT 0,
|
||||
"V" INTEGER DEFAULT 0,
|
||||
"ROLE" CHAR(1) DEFAULT 0,
|
||||
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
|
||||
|
||||
COMMENT ON TABLE "FXKH_TXL"."ADDRESS_BOOK" IS '通讯录';
|
||||
|
|
@ -21,7 +20,6 @@ COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."NAME" IS '姓名';
|
|||
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."ORGANIZATION" IS '组织';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."PHONE" IS '手机号';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."POSITION" IS '职务';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."ROLE" IS '0:普通管理员,1:政区管理员,99:系统管理员';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."SORT" IS '序号';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."TEL" IS '电话';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ADDRESS_BOOK"."URL" IS '图片路径';
|
||||
|
|
@ -44,13 +42,13 @@ CREATE TABLE "FXKH_TXL"."UNIT_DICT"
|
|||
"ID" INTEGER IDENTITY(1, 1) NOT NULL,
|
||||
"NAME" VARCHAR(50) NOT NULL,
|
||||
"SORT" INTEGER DEFAULT 0 NOT NULL,
|
||||
"TYPE" CHAR(1) NOT NULL,
|
||||
"O_ID" INTEGER NOT NULL,
|
||||
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
|
||||
|
||||
COMMENT ON TABLE "FXKH_TXL"."UNIT_DICT" IS '单位字典表';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."UNIT_DICT"."NAME" IS '名称';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."UNIT_DICT"."SORT" IS '序号';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."UNIT_DICT"."TYPE" IS '1:联络名单, 2: 湖泊及涉湖泵站,3:重要提防,4:大型水库大坝';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."UNIT_DICT"."O_ID" IS '组织类型Id';
|
||||
|
||||
|
||||
CREATE TABLE "FXKH_TXL"."FC"
|
||||
|
|
@ -90,11 +88,9 @@ CREATE TABLE "FXKH_TXL"."ORGANIZATION"
|
|||
"OBJ_ID" VARCHAR(50) NOT NULL,
|
||||
"NAME" VARCHAR(50) NOT NULL,
|
||||
"SORT" INTEGER DEFAULT 0,
|
||||
"ADCD" CHAR(15) NOT NULL,
|
||||
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
|
||||
|
||||
COMMENT ON TABLE "FXKH_TXL"."ORGANIZATION" IS '组织表';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."ADCD" IS '政区编码';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."NAME" IS '名称';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."OBJ_ID" IS '编号';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."SORT" IS '序号';
|
||||
|
|
@ -103,14 +99,20 @@ COMMENT ON COLUMN "FXKH_TXL"."ORGANIZATION"."SORT" IS '序号';
|
|||
CREATE TABLE "FXKH_TXL"."USER"
|
||||
(
|
||||
"ID" INTEGER IDENTITY(1, 1) NOT NULL,
|
||||
"USERNAME" VARCHAR(50) NOT NULL,
|
||||
"PASSWORD" VARCHAR(50) NOT NULL,
|
||||
"SALT" VARCHAR(50),
|
||||
"ROLE" CHAR(1) DEFAULT 0,
|
||||
"AB_ID" INTEGER,
|
||||
"LAST_DATE" DATETIME(0),
|
||||
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
|
||||
|
||||
COMMENT ON TABLE "FXKH_TXL"."USER" IS '用户表';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."USER"."AB_ID" IS '通讯录id';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."USER"."USERNAME" IS '用户名';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."USER"."ROLE" IS '0:普通管理员,1:政区管理员,99:系统管理员';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."USER"."PASSWORD" IS '密码';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."USER"."LAST_DATE" IS '最后登录时间';
|
||||
COMMENT ON COLUMN "FXKH_TXL"."USER"."SALT" IS '盐值';
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,16 @@
|
|||
package com.whdc.controller;
|
||||
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.whdc.model.dto.AddressBootDto;
|
||||
import com.whdc.model.entity.AddressBook;
|
||||
import com.whdc.model.entity.User;
|
||||
import com.whdc.model.enums.Role;
|
||||
import com.whdc.model.enums.VersionsType;
|
||||
import com.whdc.model.group.Insert;
|
||||
import com.whdc.model.group.Update;
|
||||
import com.whdc.service.IAddressBookService;
|
||||
import com.whdc.service.IUserService;
|
||||
import com.whdc.service.IVersionsService;
|
||||
import com.whdc.utils.ResultJson;
|
||||
import io.swagger.annotations.Api;
|
||||
|
|
@ -32,6 +36,9 @@ public class AddressBookController {
|
|||
@Autowired
|
||||
private IAddressBookService service;
|
||||
|
||||
@Autowired
|
||||
private IUserService userService;
|
||||
|
||||
@Autowired
|
||||
private IVersionsService versionsService;
|
||||
|
||||
|
|
@ -57,6 +64,15 @@ public class AddressBookController {
|
|||
@ApiOperation(value = "添加")
|
||||
@PostMapping(value = "save")
|
||||
public ResultJson insert(@RequestBody @Validated(Insert.class) AddressBook model) {
|
||||
Integer loginId = (Integer) StpUtil.getLoginId();
|
||||
String role = userService.getRole(loginId);
|
||||
|
||||
switch (Objects.requireNonNull(Role.getByName(role))) {
|
||||
case R000:return ResultJson.error("权限不足");
|
||||
case R001:
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不足!!");
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
|
|
@ -68,9 +84,14 @@ public class AddressBookController {
|
|||
|
||||
// 添加日志
|
||||
versionsService.saveInfo(model,VersionsType.ADD);
|
||||
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),null,model.getCreateId(),new Date(), VersionsType.ADD.getName()));
|
||||
|
||||
return ResultJson.ok(service.save(model));
|
||||
boolean save = service.save(model);
|
||||
|
||||
if (save){
|
||||
userService.register( model.getPhone(), model.getId());
|
||||
}
|
||||
|
||||
return ResultJson.ok(save);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -78,6 +99,22 @@ public class AddressBookController {
|
|||
@PostMapping(value = "edit")
|
||||
public ResultJson update(@RequestBody @Validated(Update.class) AddressBook model) {
|
||||
|
||||
Integer loginId = (Integer) StpUtil.getLoginId();
|
||||
String role = userService.getRole(loginId);
|
||||
|
||||
switch (Objects.requireNonNull(Role.getByName(role))) {
|
||||
case R000:{
|
||||
// 不是修改自己
|
||||
if (!model.getId().equals(loginId)){
|
||||
return ResultJson.error("权限不足");
|
||||
}
|
||||
};
|
||||
case R001:
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不足!!");
|
||||
}
|
||||
|
||||
|
||||
AddressBook byId = service.getById(model.getId());
|
||||
if (Objects.isNull(byId)){
|
||||
return ResultJson.error("当前数据不存在");
|
||||
|
|
@ -108,16 +145,25 @@ public class AddressBookController {
|
|||
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.UPDATE.getName()));
|
||||
versionsService.saveInfo(model,VersionsType.UPDATE);
|
||||
|
||||
// 不修改角色
|
||||
model.setRole(byId.getRole());
|
||||
return ResultJson.ok(service.updateById(model));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改权限")
|
||||
@PostMapping(value = "edit")
|
||||
public ResultJson updateRole(@RequestBody @Validated(Update.class) AddressBook model) {
|
||||
public ResultJson updateRole(@RequestBody @Validated(Update.class) User model) {
|
||||
|
||||
AddressBook byId = service.getById(model.getId());
|
||||
|
||||
Integer loginId = (Integer) StpUtil.getLoginId();
|
||||
String role = userService.getRole(loginId);
|
||||
|
||||
switch (Objects.requireNonNull(Role.getByName(role))) {
|
||||
case R000:
|
||||
case R001: return ResultJson.error("权限不足");
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不足!!");
|
||||
}
|
||||
|
||||
AddressBook byId = service.getById(model.getAbId());
|
||||
if (Objects.isNull(byId)){
|
||||
return ResultJson.error("当前数据不存在");
|
||||
}
|
||||
|
|
@ -137,12 +183,13 @@ public class AddressBookController {
|
|||
// }
|
||||
// // 添加日志
|
||||
// versionsService.save(new Versions(null, JSON.toJSONString(model),model.getId(),++version,model.getCreateId(),new Date(), VersionsType.UPDATE_ROLE.getName()));
|
||||
versionsService.saveInfo(model,VersionsType.UPDATE_ROLE);
|
||||
versionsService.saveInfo(byId,VersionsType.UPDATE_ROLE);
|
||||
|
||||
|
||||
// 只修改角色
|
||||
boolean update = service.lambdaUpdate().set(AddressBook::getRole, model.getRole())
|
||||
.eq(AddressBook::getId, model.getId())
|
||||
|
||||
boolean update = userService.lambdaUpdate().set(User::getRole, model.getRole())
|
||||
.eq(User::getAbId, model.getAbId())
|
||||
.update();
|
||||
return ResultJson.ok(update);
|
||||
}
|
||||
|
|
@ -153,6 +200,16 @@ public class AddressBookController {
|
|||
public ResultJson delete(@PathVariable("id") Integer id) {
|
||||
|
||||
|
||||
Integer loginId = (Integer) StpUtil.getLoginId();
|
||||
String role = userService.getRole(loginId);
|
||||
|
||||
switch (Objects.requireNonNull(Role.getByName(role))) {
|
||||
case R000:
|
||||
case R001: return ResultJson.error("权限不足");
|
||||
case R099:break;
|
||||
default:return ResultJson.error("权限不足!!");
|
||||
}
|
||||
|
||||
AddressBook model = service.getById(id);
|
||||
if (Objects.isNull(model)) {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
package com.whdc.controller;
|
||||
|
||||
|
||||
import com.whdc.model.dto.FcDto;
|
||||
import com.whdc.model.entity.Fc;
|
||||
import com.whdc.model.group.Find;
|
||||
import com.whdc.model.group.Insert;
|
||||
import com.whdc.model.group.Update;
|
||||
import com.whdc.model.vo.FcVo;
|
||||
import com.whdc.service.IFcService;
|
||||
import com.whdc.utils.ResultJson;
|
||||
import io.swagger.annotations.Api;
|
||||
|
|
@ -31,8 +34,8 @@ public class FcController {
|
|||
|
||||
|
||||
|
||||
@ApiOperation(value = "查询所有")
|
||||
@PostMapping(value = "find")
|
||||
// @ApiOperation(value = "查询所有")
|
||||
// @PostMapping(value = "find")
|
||||
public ResultJson<Fc> find(@RequestBody Fc dto) {
|
||||
|
||||
return ResultJson.ok(service.find(dto));
|
||||
|
|
@ -41,7 +44,7 @@ public class FcController {
|
|||
|
||||
@ApiOperation(value = "分页查询")
|
||||
@PostMapping(value = "page")
|
||||
public ResultJson<Fc> page(@RequestBody Fc dto) {
|
||||
public ResultJson<FcVo> page(@RequestBody @Validated(Find.class) FcDto dto) {
|
||||
|
||||
return ResultJson.ok(service.page(dto));
|
||||
|
||||
|
|
@ -54,7 +57,8 @@ public class FcController {
|
|||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(Fc::getName,String.valueOf(model.getName()).trim())
|
||||
.eq(Fc::getUserId,String.valueOf(model.getUserId()).trim())
|
||||
.eq(Fc::getAbId,String.valueOf(model.getAbId()).trim())
|
||||
.list())
|
||||
){
|
||||
return ResultJson.error("该名称重复");
|
||||
|
|
@ -70,7 +74,8 @@ public class FcController {
|
|||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(Fc::getName,String.valueOf(model.getName()).trim())
|
||||
.eq(Fc::getUserId,String.valueOf(model.getUserId()).trim())
|
||||
.eq(Fc::getAbId,String.valueOf(model.getAbId()).trim())
|
||||
.ne(Fc::getId, model.getId())
|
||||
.list())
|
||||
){
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.whdc.controller;
|
||||
|
||||
|
||||
import com.whdc.model.dto.FindPageDto;
|
||||
import com.whdc.model.entity.LoginInfo;
|
||||
import com.whdc.model.group.Insert;
|
||||
import com.whdc.model.group.Update;
|
||||
|
|
@ -14,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
|
|
@ -41,7 +43,7 @@ public class LoginInfoController {
|
|||
|
||||
@ApiOperation(value = "分页查询")
|
||||
@PostMapping(value = "page")
|
||||
public ResultJson<LoginInfo> page(@RequestBody LoginInfo dto) {
|
||||
public ResultJson<LoginInfo> page(@RequestBody FindPageDto dto) {
|
||||
|
||||
return ResultJson.ok(service.page(dto));
|
||||
|
||||
|
|
@ -51,38 +53,21 @@ public class LoginInfoController {
|
|||
@ApiOperation(value = "添加")
|
||||
@PostMapping(value = "save")
|
||||
public ResultJson insert(@RequestBody @Validated(Insert.class) LoginInfo model) {
|
||||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(LoginInfo::getName,String.valueOf(model.getName()).trim())
|
||||
.list())
|
||||
){
|
||||
return ResultJson.error("该名称重复");
|
||||
}
|
||||
|
||||
model.setCreateTime(new Date());
|
||||
return ResultJson.ok(service.save(model));
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改")
|
||||
@PostMapping(value = "edit")
|
||||
// @ApiOperation(value = "修改")
|
||||
// @PostMapping(value = "edit")
|
||||
public ResultJson update(@RequestBody @Validated(Update.class) LoginInfo model) {
|
||||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(LoginInfo::getName,String.valueOf(model.getName()).trim())
|
||||
.ne(LoginInfo::getId, model.getId())
|
||||
.list())
|
||||
){
|
||||
return ResultJson.error("该名称重复");
|
||||
}
|
||||
|
||||
return ResultJson.ok(service.updateById(model));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "删除")
|
||||
@GetMapping(value = "del/{id}")
|
||||
// @ApiOperation(value = "删除")
|
||||
// @GetMapping(value = "del/{id}")
|
||||
public ResultJson delete(@PathVariable("id") Integer id) {
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.whdc.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.whdc.model.entity.Organization;
|
||||
import com.whdc.model.group.Insert;
|
||||
import com.whdc.model.group.Update;
|
||||
|
|
@ -10,6 +11,7 @@ import io.swagger.annotations.Api;
|
|||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -35,7 +37,18 @@ public class OrganizationController {
|
|||
@PostMapping(value = "find")
|
||||
public ResultJson<Organization> find(@RequestBody Organization dto) {
|
||||
|
||||
return ResultJson.ok(service.find(dto));
|
||||
LambdaQueryChainWrapper<Organization> query = service.lambdaQuery();
|
||||
String name = dto.getName();
|
||||
if (StringUtils.isNotBlank(name)){
|
||||
query.like(Organization::getName,name);
|
||||
}
|
||||
String objId = dto.getObjId();
|
||||
if (StringUtils.isNotBlank(objId)){
|
||||
query.eq(Organization::getObjId,objId);
|
||||
}
|
||||
|
||||
query.orderByAsc(Organization::getSort);
|
||||
return ResultJson.ok(query.list());
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,20 @@
|
|||
package com.whdc.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.whdc.model.entity.Organization;
|
||||
import com.whdc.model.entity.UnitDict;
|
||||
import com.whdc.model.group.Find;
|
||||
import com.whdc.model.group.Insert;
|
||||
import com.whdc.model.group.Update;
|
||||
import com.whdc.service.IOrganizationService;
|
||||
import com.whdc.service.IUnitDictService;
|
||||
import com.whdc.utils.ResultJson;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -28,19 +33,34 @@ public class UnitDictController {
|
|||
|
||||
@Autowired
|
||||
private IUnitDictService service;
|
||||
|
||||
@Autowired
|
||||
private IOrganizationService organizationService;
|
||||
|
||||
|
||||
@ApiOperation(value = "查询所有")
|
||||
@PostMapping(value = "find")
|
||||
public ResultJson<UnitDict> find(@RequestBody UnitDict dto) {
|
||||
public ResultJson<UnitDict> find(@RequestBody @Validated(Find.class) UnitDict dto) {
|
||||
|
||||
if (Objects.isNull(organizationService.getById( dto.getOId()))) {
|
||||
return ResultJson.error("组织类型Id不存在");
|
||||
}
|
||||
|
||||
|
||||
LambdaQueryChainWrapper<UnitDict> query = service.lambdaQuery();
|
||||
String name = dto.getName();
|
||||
if (StringUtils.isNotBlank(name)) {
|
||||
query.like(UnitDict::getName, name);
|
||||
}
|
||||
query.eq(UnitDict::getOId, dto.getOId());
|
||||
|
||||
query.orderByAsc(UnitDict::getSort);
|
||||
return ResultJson.ok(query.list());
|
||||
|
||||
return ResultJson.ok(service.find(dto));
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation(value = "分页查询")
|
||||
@PostMapping(value = "page")
|
||||
// @ApiOperation(value = "分页查询")
|
||||
// @PostMapping(value = "page")
|
||||
public ResultJson<UnitDict> page(@RequestBody UnitDict dto) {
|
||||
|
||||
return ResultJson.ok(service.page(dto));
|
||||
|
|
@ -52,11 +72,16 @@ public class UnitDictController {
|
|||
@PostMapping(value = "save")
|
||||
public ResultJson insert(@RequestBody @Validated(Insert.class) UnitDict model) {
|
||||
|
||||
if (Objects.isNull(organizationService.getById( model.getOId()))) {
|
||||
return ResultJson.error("组织类型Id不存在");
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(UnitDict::getName,String.valueOf(model.getName()).trim())
|
||||
.list())
|
||||
){
|
||||
.eq(UnitDict::getName, String.valueOf(model.getName()).trim())
|
||||
.eq(UnitDict::getOId, String.valueOf(model.getOId()).trim())
|
||||
.list())
|
||||
) {
|
||||
return ResultJson.error("该名称重复");
|
||||
}
|
||||
|
||||
|
|
@ -68,12 +93,18 @@ public class UnitDictController {
|
|||
@PostMapping(value = "edit")
|
||||
public ResultJson update(@RequestBody @Validated(Update.class) UnitDict model) {
|
||||
|
||||
|
||||
if (Objects.isNull(organizationService.getById( model.getOId()))) {
|
||||
return ResultJson.error("组织类型Id不存在");
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(UnitDict::getName,String.valueOf(model.getName()).trim())
|
||||
.eq(UnitDict::getName, String.valueOf(model.getName()).trim())
|
||||
.eq(UnitDict::getOId, String.valueOf(model.getOId()).trim())
|
||||
.ne(UnitDict::getId, model.getId())
|
||||
.list())
|
||||
){
|
||||
) {
|
||||
return ResultJson.error("该名称重复");
|
||||
}
|
||||
|
||||
|
|
@ -95,5 +126,5 @@ public class UnitDictController {
|
|||
return ResultJson.ok(service.removeById(id));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
package com.whdc.controller;
|
||||
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.whdc.model.dto.LoginDto;
|
||||
import com.whdc.model.entity.User;
|
||||
import com.whdc.model.group.Insert;
|
||||
import com.whdc.model.group.Update;
|
||||
import com.whdc.model.vo.AuthToken;
|
||||
import com.whdc.model.vo.LoginVo;
|
||||
import com.whdc.service.IUserService;
|
||||
import com.whdc.utils.ResultJson;
|
||||
import io.swagger.annotations.Api;
|
||||
|
|
@ -14,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
|
|
@ -30,7 +36,37 @@ public class UserController {
|
|||
private IUserService service;
|
||||
|
||||
|
||||
@ApiOperation(value = "登录", notes = "登录后,从 tokenInfo 中获取 token 相关信息。headers[tokenName] = tokenValue ")
|
||||
@PostMapping("doLogin")
|
||||
public ResultJson<LoginVo> doLogin(@RequestBody @Validated LoginDto obj) throws InvocationTargetException, IllegalAccessException {
|
||||
LoginVo loginVo = service.login(obj);
|
||||
|
||||
if (loginVo == null || loginVo.getId() == null) {
|
||||
return ResultJson.error("登录失败");
|
||||
} else {
|
||||
StpUtil.login(loginVo.getId()); // 使用 user id 登录
|
||||
// 获取 Token 相关参数
|
||||
loginVo.setTokenInfo(new AuthToken(StpUtil.getTokenInfo()));
|
||||
|
||||
// 更新最后登录时间
|
||||
service.updateLastDate(loginVo.getId());
|
||||
|
||||
return ResultJson.ok(loginVo);
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询登录状态")
|
||||
@PostMapping("isLogin")
|
||||
public ResultJson<AuthToken> isLogin() {
|
||||
return ResultJson.ok(StpUtil.getTokenInfo());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "按id踢人下线")
|
||||
@PostMapping("kickout/{id}")
|
||||
public ResultJson kickout(@PathVariable String id) {
|
||||
StpUtil.kickout(id);
|
||||
return ResultJson.ok("将用户[" + id + "]踢下线");
|
||||
}
|
||||
@ApiOperation(value = "查询所有")
|
||||
@PostMapping(value = "find")
|
||||
public ResultJson<User> find(@RequestBody User dto) {
|
||||
|
|
@ -48,19 +84,21 @@ public class UserController {
|
|||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "添加")
|
||||
@PostMapping(value = "save")
|
||||
// @ApiOperation(value = "注册")
|
||||
// @PostMapping(value = "register")
|
||||
public ResultJson insert(@RequestBody @Validated(Insert.class) User model) {
|
||||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(User::getName,String.valueOf(model.getName()).trim())
|
||||
.eq(User::getUsername,String.valueOf(model.getUsername()).trim())
|
||||
.list())
|
||||
){
|
||||
return ResultJson.error("该名称重复");
|
||||
}
|
||||
|
||||
return ResultJson.ok(service.save(model));
|
||||
|
||||
|
||||
return ResultJson.ok(service.register(model));
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -70,7 +108,7 @@ public class UserController {
|
|||
|
||||
if (CollectionUtils.isNotEmpty(
|
||||
service.lambdaQuery()
|
||||
.eq(User::getName,String.valueOf(model.getName()).trim())
|
||||
.eq(User::getUsername,String.valueOf(model.getUsername()).trim())
|
||||
.ne(User::getId, model.getId())
|
||||
.list())
|
||||
){
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package com.whdc.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.whdc.model.dto.FcDto;
|
||||
import com.whdc.model.vo.FcVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.whdc.model.entity.Fc;
|
||||
|
||||
|
|
@ -13,7 +15,7 @@ import java.util.List;
|
|||
*/
|
||||
public interface FcMapper extends BaseMapper<Fc> {
|
||||
|
||||
IPage<Fc> page(@Param("page") IPage<Fc> page, @Param("dto") Fc dto);
|
||||
IPage<FcVo> page(@Param("page") IPage<FcVo> page, @Param("dto") FcDto dto);
|
||||
|
||||
List<Fc> find(@Param("dto") Fc dto);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.whdc.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.whdc.model.dto.FindPageDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.whdc.model.entity.LoginInfo;
|
||||
|
||||
|
|
@ -13,7 +14,7 @@ import java.util.List;
|
|||
*/
|
||||
public interface LoginInfoMapper extends BaseMapper<LoginInfo> {
|
||||
|
||||
IPage<LoginInfo> page(@Param("page") IPage<LoginInfo> page, @Param("dto") LoginInfo dto);
|
||||
IPage<LoginInfo> page(@Param("page") IPage<LoginInfo> page, @Param("dto") FindPageDto dto);
|
||||
|
||||
List<LoginInfo> find(@Param("dto") LoginInfo dto);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.whdc.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.whdc.model.vo.LoginVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.whdc.model.entity.User;
|
||||
|
||||
|
|
@ -16,5 +17,7 @@ public interface UserMapper extends BaseMapper<User> {
|
|||
IPage<User> page(@Param("page") IPage<User> page, @Param("dto") User dto);
|
||||
|
||||
List<User> find(@Param("dto") User dto);
|
||||
|
||||
|
||||
LoginVo findByLoginName(@Param("username") String username);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.whdc.model.dto;
|
||||
|
||||
import com.whdc.model.group.Find;
|
||||
import com.whdc.model.group.Insert;
|
||||
import com.whdc.model.group.Update;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author xusan
|
||||
* @date 2023年3月20日08:57:22
|
||||
*/
|
||||
@Data
|
||||
public class FcDto extends FindPageDto {
|
||||
|
||||
@ApiModelProperty(value = "用户id")
|
||||
@NotNull(message = "用户id不能为空", groups = {Find.class})
|
||||
private String userId;
|
||||
|
||||
@ApiModelProperty(value = "类型 0:常用联系人,1:置顶联系人")
|
||||
@NotNull(message = "类型不能为空", groups = {Find.class})
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty(value = "联系人名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "联系人手机号")
|
||||
private String phone;
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.whdc.model.dto;
|
||||
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
/**
|
||||
* @author 李赛
|
||||
* @date 2022-07-01 1:21
|
||||
*/
|
||||
@Data
|
||||
public class LoginDto {
|
||||
@ApiParam(value = "登录名")
|
||||
@NotEmpty(message = "登录名不能为空")
|
||||
private String loginName;
|
||||
|
||||
@ApiParam(value = "密码")
|
||||
@NotEmpty(message = "密码不能为空")
|
||||
private String password;
|
||||
}
|
||||
|
|
@ -77,10 +77,6 @@ public class AddressBook extends Model<AddressBook> implements Serializable {
|
|||
@ApiModelProperty(value = "版本")
|
||||
private Integer v;
|
||||
|
||||
@TableField("ROLE")
|
||||
@ApiModelProperty(value = "0:普通管理员,1:政区管理员,99:系统管理员")
|
||||
private String role;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "创建人id")
|
||||
private String createId;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ public class LoginInfo extends Model<LoginInfo> implements Serializable {
|
|||
|
||||
@TableField("CREATE_ID")
|
||||
@ApiModelProperty(value = "新增人id")
|
||||
@NotNull(message = "id不能为空" , groups = {Insert.class})
|
||||
private String createId;
|
||||
|
||||
@TableField("CREATE_TIME")
|
||||
|
|
|
|||
|
|
@ -50,8 +50,4 @@ public class Organization extends Model<Organization> implements Serializable {
|
|||
@ApiModelProperty(value = "序号")
|
||||
private Integer sort;
|
||||
|
||||
@NotEmpty(message = "政区编码不能为空", groups = {Insert.class,Update.class})
|
||||
@TableField("ADCD")
|
||||
@ApiModelProperty(value = "政区编码")
|
||||
private String adcd;
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
|||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||
import com.whdc.model.group.Find;
|
||||
import com.whdc.model.group.Insert;
|
||||
import com.whdc.model.group.Update;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
|
|
@ -46,8 +47,9 @@ public class UnitDict extends Model<UnitDict> implements Serializable {
|
|||
@ApiModelProperty(value = "序号")
|
||||
private Integer sort;
|
||||
|
||||
@NotEmpty(message = "类型不能为空", groups = {Insert.class,Update.class})
|
||||
@TableField("TYPE")
|
||||
@ApiModelProperty(value = "1:省防指,2: 省防办,3: 省防指成员单位,4: 市、县防指、防办, 5: 主要湖泊及涉湖泵站,6:重要提防,7: 主要蓄滞洪区,8: 大型水库大坝")
|
||||
private String type;
|
||||
@NotEmpty(message = "组织类型Id不能为空", groups = {Insert.class,Update.class, Find.class})
|
||||
@TableField("O_ID")
|
||||
// @ApiModelProperty(value = "1:省防指,2: 省防办,3: 省防指成员单位,4: 市、县防指、防办, 5: 主要湖泊及涉湖泵站,6:重要提防,7: 主要蓄滞洪区,8: 大型水库大坝")
|
||||
@ApiModelProperty(value = "组织类型Id")
|
||||
private Integer OId;
|
||||
}
|
||||
|
|
@ -30,9 +30,14 @@ public class User extends Model<User> implements Serializable {
|
|||
|
||||
@TableId(value = "ID",type = IdType.AUTO)
|
||||
@ApiModelProperty(value = "id")
|
||||
@NotNull(message = "id不能为空" , groups = {Update.class})
|
||||
// @NotNull(message = "id不能为空" , groups = {Update.class})
|
||||
private Integer id;
|
||||
|
||||
@NotEmpty(message = "用户名不能为空", groups = {Insert.class,Update.class})
|
||||
@TableField("USERNAME")
|
||||
@ApiModelProperty(value = "用户名")
|
||||
private String username;
|
||||
|
||||
|
||||
@NotEmpty(message = "密码不能为空", groups = {Insert.class,Update.class})
|
||||
@TableField("PASSWORD")
|
||||
|
|
@ -45,5 +50,15 @@ public class User extends Model<User> implements Serializable {
|
|||
|
||||
@TableField("AB_ID")
|
||||
@ApiModelProperty(value = "通讯录id")
|
||||
@NotEmpty(message = "通讯录id不能为空", groups = {Insert.class,Update.class})
|
||||
private Integer abId;
|
||||
|
||||
@TableField("LAST_DATE")
|
||||
@ApiModelProperty(value = "最后登录时间")
|
||||
private Date lastLoginDate;
|
||||
|
||||
@TableField("ROLE")
|
||||
@ApiModelProperty(value = "0:普通管理员,1:政区管理员,99:系统管理员")
|
||||
private String role;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
package com.whdc.model.enums;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author xusan
|
||||
* @date 2022/7/14 16:55
|
||||
* 通讯录操作类型枚举类
|
||||
*/
|
||||
public enum Role {
|
||||
|
||||
R000("0", "普通管理员"),
|
||||
R001("1", "政区管理员"),
|
||||
R099("99", "系统管理员");
|
||||
|
||||
|
||||
private String name;
|
||||
private String value;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
private Role(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public static Map<String, Role> map() {
|
||||
Map<String, Role> map = new HashMap<>();
|
||||
Role[] values = Role.values();
|
||||
for (Role e : values) {
|
||||
map.put(e.getValue(), e);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static Map<String, Role> mapName() {
|
||||
Map<String, Role> map = new HashMap<>();
|
||||
Role[] values = Role.values();
|
||||
for (Role e : values) {
|
||||
map.put(e.getName(), e);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static Role getByValue(String value) {
|
||||
if (Objects.isNull(value)) return null;
|
||||
return map().get(value);
|
||||
}
|
||||
|
||||
public static Role getByName(String name) {
|
||||
if (StringUtils.isEmpty(name)) return null;
|
||||
return mapName().get(name);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package com.whdc.model.vo;
|
||||
|
||||
import cn.dev33.satoken.stp.SaTokenInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
/**
|
||||
* 原 SaTokenInfo 再 swagger 中没有对应的说明,这里复制一份,加上说明
|
||||
*
|
||||
* @author 李赛
|
||||
* @date 2022-07-18 8:10
|
||||
* {
|
||||
* "tokenName": "satoken", // token名称
|
||||
* "tokenValue": "e67b99f1-3d7a-4a8d-bb2f-e888a0805633", // token值
|
||||
* "isLogin": true, // 此token是否已经登录
|
||||
* "loginId": "10001", // 此token对应的LoginId,未登录时为null
|
||||
* "loginType": "login", // 账号类型标识
|
||||
* "tokenTimeout": 2591977, // token剩余有效期 (单位: 秒)
|
||||
* "sessionTimeout": 2591977, // User-Session剩余有效时间 (单位: 秒)
|
||||
* "tokenSessionTimeout": -2, // Token-Session剩余有效时间 (单位: 秒)
|
||||
* "tokenActivityTimeout": -1, // token剩余无操作有效时间 (单位: 秒)
|
||||
* "loginDevice": "default-device" // 登录设备类型
|
||||
* }
|
||||
*/
|
||||
@Data
|
||||
@ApiModel("授权 token 信息")
|
||||
public class AuthToken extends SaTokenInfo {
|
||||
@ApiModelProperty("token 名称")
|
||||
public String tokenName;
|
||||
|
||||
@ApiModelProperty("token 值")
|
||||
public String tokenValue;
|
||||
|
||||
@ApiModelProperty("token 剩余有效期 (单位: 秒)")
|
||||
public long tokenTimeout;
|
||||
|
||||
public AuthToken(SaTokenInfo info) throws InvocationTargetException, IllegalAccessException {
|
||||
BeanUtils.copyProperties(this, info);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.whdc.model.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.whdc.model.entity.AddressBook;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* @Author xusan
|
||||
* @Date 2024/5/13 10:17
|
||||
* @Notes
|
||||
**/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(description = "常用联系人置顶联系人通讯录")
|
||||
public class FcVo extends AddressBook{
|
||||
|
||||
|
||||
@TableField("FSORT")
|
||||
@ApiModelProperty(value = "常用联系人置顶联系人序号")
|
||||
private Integer fsort;
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package com.whdc.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author 李赛
|
||||
* @date 2022-07-01 1:22
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true) // chain = true 实现链式调用
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL) // 表示序列化非null属性
|
||||
public class LoginVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "类型")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "登录名")
|
||||
private String loginName;
|
||||
|
||||
@ApiModelProperty(value = "姓名")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "token 信息")
|
||||
private AuthToken tokenInfo;
|
||||
|
||||
@ApiModelProperty(value = "角色")
|
||||
private String role;
|
||||
}
|
||||
|
|
@ -2,7 +2,9 @@ package com.whdc.service;
|
|||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.whdc.model.dto.FcDto;
|
||||
import com.whdc.model.entity.Fc;
|
||||
import com.whdc.model.vo.FcVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -16,7 +18,7 @@ import java.util.List;
|
|||
public interface IFcService extends IService<Fc> {
|
||||
|
||||
// 获取所有规则分页
|
||||
IPage<Fc> page(Fc dto);
|
||||
IPage<FcVo> page(FcDto dto);
|
||||
|
||||
// 获取所有规则
|
||||
List<Fc> find(Fc dto);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.whdc.service;
|
|||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.whdc.model.dto.FindPageDto;
|
||||
import com.whdc.model.entity.LoginInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -16,7 +17,7 @@ import java.util.List;
|
|||
public interface ILoginInfoService extends IService<LoginInfo> {
|
||||
|
||||
// 获取所有规则分页
|
||||
IPage<LoginInfo> page(LoginInfo dto);
|
||||
IPage<LoginInfo> page(FindPageDto dto);
|
||||
|
||||
// 获取所有规则
|
||||
List<LoginInfo> find(LoginInfo dto);
|
||||
|
|
|
|||
|
|
@ -2,7 +2,11 @@ package com.whdc.service;
|
|||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
||||
import com.whdc.model.dto.LoginDto;
|
||||
import com.whdc.model.entity.User;
|
||||
import com.whdc.model.vo.LoginVo;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -21,4 +25,14 @@ public interface IUserService extends IService<User> {
|
|||
// 获取所有规则
|
||||
List<User> find(User dto);
|
||||
|
||||
LoginVo login(LoginDto obj);
|
||||
|
||||
boolean register(User entity);
|
||||
|
||||
String getRole(Integer id);
|
||||
|
||||
boolean register(String phone, Integer abId);
|
||||
|
||||
boolean updateLastDate(Integer id);
|
||||
|
||||
}
|
||||
|
|
@ -1,8 +1,11 @@
|
|||
package com.whdc.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.whdc.mapper.FcMapper;
|
||||
import com.whdc.model.dto.FcDto;
|
||||
import com.whdc.model.entity.Fc;
|
||||
import com.whdc.model.vo.FcVo;
|
||||
import com.whdc.service.IFcService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -21,8 +24,8 @@ public class FcServiceImpl extends ServiceImpl<FcMapper, Fc> implements IFcServi
|
|||
|
||||
|
||||
@Override
|
||||
public IPage<Fc> page(Fc dto) {
|
||||
return baseMapper.page(new Page<>(), dto);
|
||||
public IPage<FcVo> page(FcDto dto) {
|
||||
return baseMapper.page(dto.getPage(), dto);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.whdc.service.impl;
|
|||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.whdc.mapper.LoginInfoMapper;
|
||||
import com.whdc.model.dto.FindPageDto;
|
||||
import com.whdc.model.entity.LoginInfo;
|
||||
import com.whdc.service.ILoginInfoService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
|
@ -21,8 +22,8 @@ public class LoginInfoServiceImpl extends ServiceImpl<LoginInfoMapper, LoginInfo
|
|||
|
||||
|
||||
@Override
|
||||
public IPage<LoginInfo> page(LoginInfo dto) {
|
||||
return baseMapper.page(new Page<>(), dto);
|
||||
public IPage<LoginInfo> page(FindPageDto dto) {
|
||||
return baseMapper.page(dto.getPage(), dto);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,22 @@
|
|||
package com.whdc.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.whdc.exception.MyException;
|
||||
import com.whdc.mapper.UserMapper;
|
||||
import com.whdc.model.dto.LoginDto;
|
||||
import com.whdc.model.entity.User;
|
||||
import com.whdc.model.vo.LoginVo;
|
||||
import com.whdc.service.IUserService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.DigestUtils;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -19,6 +28,7 @@ import java.util.List;
|
|||
@Service
|
||||
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
|
||||
|
||||
public static final String DEFAULT_PASSWORD = "Fxhk@123456";
|
||||
|
||||
@Override
|
||||
public IPage<User> page(User dto) {
|
||||
|
|
@ -33,4 +43,72 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|||
|
||||
|
||||
|
||||
@Override
|
||||
public LoginVo login(LoginDto obj) {
|
||||
|
||||
User sysUser = findByLoginName(obj.getLoginName());
|
||||
|
||||
if (sysUser == null) {
|
||||
throw new MyException("用户名或密码错误");
|
||||
}
|
||||
|
||||
if (getPassword(sysUser.getSalt() ,obj.getPassword()).equals(sysUser.getPassword())) {
|
||||
LoginVo out = new LoginVo();
|
||||
BeanUtils.copyProperties(sysUser, out);
|
||||
return out;
|
||||
|
||||
}
|
||||
|
||||
throw new MyException("用户名或密码错误");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean register(User entity) {
|
||||
// 生成盐值
|
||||
String salt = UUID.randomUUID().toString().replaceAll("-", "");
|
||||
// 生成密码
|
||||
entity.setSalt(salt)
|
||||
.setPassword(getPassword(salt, DEFAULT_PASSWORD));
|
||||
return this.save(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRole(Integer id) {
|
||||
|
||||
User byId = this.getById(id);
|
||||
if (byId == null){
|
||||
throw new MyException("该用户不存在");
|
||||
}
|
||||
|
||||
return byId.getRole();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean register(String phone, Integer abId) {
|
||||
User user = new User();
|
||||
user.setAbId(abId)
|
||||
.setUsername(phone);
|
||||
return register(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateLastDate(Integer id) {
|
||||
return this.lambdaUpdate()
|
||||
.set(User::getLastLoginDate,new Date())
|
||||
.eq(User::getId,id)
|
||||
.update();
|
||||
}
|
||||
|
||||
private User findByLoginName(String loginName) {
|
||||
if (loginName == null) {
|
||||
throw new MyException("登录名不能为空");
|
||||
}
|
||||
|
||||
return this.lambdaQuery().eq(User::getUsername, loginName).one();
|
||||
|
||||
}
|
||||
|
||||
private String getPassword(String salt,String password) {
|
||||
return DigestUtils.md5DigestAsHex((salt + password).getBytes());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,26 @@
|
|||
<mapper namespace="com.whdc.mapper.FcMapper">
|
||||
|
||||
|
||||
<select id="page" resultType="com.whdc.model.entity.Fc">
|
||||
<select id="page" resultType="com.whdc.model.entity.FcVo">
|
||||
SELECT
|
||||
AB.*,F.SORT FSORT
|
||||
FROM
|
||||
FC F
|
||||
LEFT JOIN ADDRESS_BOOK AB ON F.AB_ID = AB.ID
|
||||
WHERE 1=1
|
||||
<if test="obj.userId != null and obj.userId != '' ">
|
||||
AND F.USER_ID = #{obj.userId}
|
||||
</if>
|
||||
<if test="obj.type != null and obj.userId != '' ">
|
||||
AND F.TYPE = #{obj.type}
|
||||
</if>
|
||||
<if test="obj.name != null and obj.name != '' ">
|
||||
AND AB.NAME LIKE CONCAT('%', #{obj.name}, '%')
|
||||
</if>
|
||||
<if test="obj.phone != null and obj.phone != '' ">
|
||||
AND AB.PHONE = #{obj.phone}
|
||||
</if>
|
||||
ORDER BY F.SORT
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,18 @@
|
|||
|
||||
|
||||
<select id="page" resultType="com.whdc.model.entity.LoginInfo">
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
LOGIN_INFO
|
||||
WHERE 1=1
|
||||
<if test="obj.createId != null and obj.createId != '' ">
|
||||
AND CREATE_ID = #{obj.createId}
|
||||
</if>
|
||||
<if test="obj.type != null and obj.type != '' ">
|
||||
AND TYPE= #{obj.type}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,4 +10,19 @@
|
|||
<select id="find" resultType="com.whdc.model.entity.User">
|
||||
</select>
|
||||
|
||||
<select id="findByLoginName" resultType="com.whdc.model.vo.LoginVo">
|
||||
SELECT
|
||||
U.ID,
|
||||
U.USERNAME,
|
||||
U.PASSWORD,
|
||||
U.SALT,
|
||||
U.ROLE,
|
||||
U.AB_ID.AB.NAME
|
||||
FROM
|
||||
USER U
|
||||
LEFT JOIN ADDRESS_BOOK AB ON U.AB_ID = AB.ID
|
||||
WHERE
|
||||
U.USERNAME = #{username}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue