Commit d35aa6c8 authored by liuyang's avatar liuyang

完成培训机构增、删、改、查

parent 77209d14
...@@ -287,7 +287,7 @@ ...@@ -287,7 +287,7 @@
<layout>ZIP</layout> <layout>ZIP</layout>
<classifier>all</classifier> <classifier>all</classifier>
<!-- 引入devtools后fork为false才能断点,但热部署失败,fork为true时热部署正常,debug失败 --> <!-- 引入devtools后fork为false才能断点,但热部署失败,fork为true时热部署正常,debug失败 -->
<fork>false</fork> <fork>true</fork>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>
......
package com.qkdata.biz.management.controller; package com.qkdata.biz.management.controller;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.qkdata.biz.common.BizConstants; import com.qkdata.biz.common.BizConstants;
import com.qkdata.biz.enums.OrgTypeEnum;
import com.qkdata.biz.management.entity.OrganizationPO;
import com.qkdata.biz.management.service.OrganizationService; import com.qkdata.biz.management.service.OrganizationService;
import com.qkdata.biz.management.vo.InstitutionModel; import com.qkdata.biz.management.vo.InstitutionModel;
import com.qkdata.biz.management.vo.QueryOrgModel;
import com.qkdata.common.annotation.SysLog; import com.qkdata.common.annotation.SysLog;
import com.qkdata.common.base.enums.CodeEnum;
import com.qkdata.common.base.exception.BusinessException;
import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.base.model.Result; import com.qkdata.common.base.model.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresRoles; import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.Arrays;
import org.springframework.web.bind.annotation.RestController; import java.util.List;
/** /**
* <p> * <p>
...@@ -32,12 +42,61 @@ public class InstitutionController { ...@@ -32,12 +42,61 @@ public class InstitutionController {
@Autowired @Autowired
private OrganizationService orgService; private OrganizationService orgService;
@ApiOperation("添加机构") @ApiOperation("添加机构信息")
@PostMapping("/save") @PostMapping("/save")
@SysLog(value = "添加培训机构") @SysLog(value = "添加培训机构")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR}) @RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<String> save(@RequestBody @Validated InstitutionModel model){ public Result<String> save(@RequestBody @Validated InstitutionModel model){
orgService.saveInstitution(model); OrganizationPO orgPo = new OrganizationPO();
BeanUtils.copyProperties(model,orgPo);
orgPo.setType(OrgTypeEnum.INSTITUTION);
orgService.save(orgPo);
return Result.succeed("ok");
}
@ApiOperation("修改机构信息")
@PostMapping("/update")
@SysLog(value = "修改机构信息")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<String> update(@RequestBody @Validated InstitutionModel model){
OrganizationPO po = new OrganizationPO();
BeanUtils.copyProperties(model,po);
orgService.updateById(po);
return Result.succeed("ok");
}
@ApiOperation("删除机构信息")
@PostMapping("/delete")
@SysLog(value = "删除机构信息")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<String> delete(@RequestBody Long[] ids){
orgService.removeByIds(Arrays.asList(ids));
return Result.succeed("ok"); return Result.succeed("ok");
} }
@ApiOperation("获取机构信息")
@PostMapping("/info/{id}")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<InstitutionModel> getInfoById(@PathVariable Long id){
OrganizationPO po = orgService.getById(id);
if (po == null){
throw new BusinessException("请求错误,数据不存在");
}
InstitutionModel model = new InstitutionModel();
BeanUtils.copyProperties(po,model);
return Result.succeed(model);
}
@ApiOperation("查询机构信息")
@PostMapping("/list")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public PageResult<InstitutionModel> list(@RequestBody QueryOrgModel param){
param.setType(OrgTypeEnum.INSTITUTION);
PageResult<OrganizationPO> pageList = orgService.queryPageList(param);
List<InstitutionModel> list = Lists.transform(pageList.getData(),(org) -> {
InstitutionModel model = new InstitutionModel();
BeanUtils.copyProperties(org,model);
return model;
});
return PageResult.<InstitutionModel>builder().code(CodeEnum.SUCCESS.getCode()).count(pageList.getCount()).data(list).build();
}
} }
...@@ -3,6 +3,7 @@ package com.qkdata.biz.management.controller; ...@@ -3,6 +3,7 @@ package com.qkdata.biz.management.controller;
import com.qkdata.biz.common.BizConstants; import com.qkdata.biz.common.BizConstants;
import com.qkdata.biz.management.service.PriceConfigService; import com.qkdata.biz.management.service.PriceConfigService;
import com.qkdata.biz.management.vo.PriceConfigModel; import com.qkdata.biz.management.vo.PriceConfigModel;
import com.qkdata.common.annotation.SysLog;
import com.qkdata.common.base.model.Result; import com.qkdata.common.base.model.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -26,6 +27,7 @@ public class PriceConfigController { ...@@ -26,6 +27,7 @@ public class PriceConfigController {
return Result.succeed(priceConfigService.findConfig()); return Result.succeed(priceConfigService.findConfig());
} }
@ApiOperation("修改系统价格配置") @ApiOperation("修改系统价格配置")
@SysLog("修改系统价格配置")
@PostMapping("/update") @PostMapping("/update")
@RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR) @RequiresRoles(value = {BizConstants.ROLE_ADMIN,BizConstants.ROLE_OPERATOR},logical = Logical.OR)
public Result<String> update(@RequestBody PriceConfigModel model) { public Result<String> update(@RequestBody PriceConfigModel model) {
......
package com.qkdata.biz.management.mapper; package com.qkdata.biz.management.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qkdata.biz.management.entity.OrganizationPO; import com.qkdata.biz.management.entity.OrganizationPO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qkdata.biz.management.vo.QueryOrgModel;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
...@@ -15,4 +20,5 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -15,4 +20,5 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface OrganizationMapper extends BaseMapper<OrganizationPO> { public interface OrganizationMapper extends BaseMapper<OrganizationPO> {
List<OrganizationPO> queryPageList(Page page, @Param("p") QueryOrgModel param);
} }
package com.qkdata.biz.management.service; package com.qkdata.biz.management.service;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.qkdata.biz.enums.OrgTypeEnum; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qkdata.biz.management.entity.OrganizationPO; import com.qkdata.biz.management.entity.OrganizationPO;
import com.qkdata.biz.management.mapper.OrganizationMapper; import com.qkdata.biz.management.mapper.OrganizationMapper;
import com.qkdata.biz.management.vo.InstitutionModel; import com.qkdata.biz.management.vo.InstitutionModel;
import com.qkdata.biz.management.vo.QueryOrgModel;
import com.qkdata.common.base.entity.BasePO;
import com.qkdata.common.base.enums.CodeEnum;
import com.qkdata.common.base.exception.BusinessException; import com.qkdata.common.base.exception.BusinessException;
import com.qkdata.common.base.model.PageResult;
import com.qkdata.common.base.service.impl.BaseServiceImpl; import com.qkdata.common.base.service.impl.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.awt.*; import java.util.List;
/** /**
* <p> * <p>
...@@ -23,23 +27,38 @@ import java.awt.*; ...@@ -23,23 +27,38 @@ import java.awt.*;
@Service @Service
public class OrganizationService extends BaseServiceImpl<OrganizationMapper, OrganizationPO> { public class OrganizationService extends BaseServiceImpl<OrganizationMapper, OrganizationPO> {
/** @Override
* 保存培训机构 public boolean save(OrganizationPO po) {
* @param model OrganizationPO dbPO = getByName(po.getName());
*/ if (dbPO != null && dbPO.getType() == po.getType()) {
public void saveInstitution(InstitutionModel model) {
OrganizationPO orgPO = getByName(model.getName());
if (orgPO != null){
throw new BusinessException("该机构名称已存在"); throw new BusinessException("该机构名称已存在");
} }
orgPO = new OrganizationPO(); return super.save(po);
BeanUtils.copyProperties(model,orgPO); }
orgPO.setType(OrgTypeEnum.INSTITUTION);
save(orgPO); private OrganizationPO getByName(String name) {
return baseMapper.selectOne(Wrappers.<OrganizationPO>lambdaQuery().eq(OrganizationPO::getName, name));
}
@Override
public boolean updateById(OrganizationPO po) {
OrganizationPO dbPO = baseMapper.selectOne(Wrappers.<OrganizationPO>lambdaQuery().eq(OrganizationPO::getName, po.getName())
.eq(OrganizationPO::getType,po.getType())
.ne(BasePO::getId, po.getId()));
if (dbPO != null){
throw new BusinessException("该机构名称已存在");
}
dbPO = getById(po.getId());
if (dbPO == null){
throw new BusinessException("请求错误,数据不存在");
}
return super.updateById(po);
} }
private OrganizationPO getByName(String name){ public PageResult<OrganizationPO> queryPageList(QueryOrgModel param) {
return baseMapper.selectOne(Wrappers.<OrganizationPO>lambdaQuery().eq(OrganizationPO::getName,name)); Page page = new Page(param.getPageIndex(),param.getPageSize());
List<OrganizationPO> pageList = baseMapper.queryPageList(page,param);
return PageResult.<OrganizationPO>builder().code(CodeEnum.SUCCESS.getCode()).count(page.getTotal()).data(pageList).build();
} }
} }
\ No newline at end of file
package com.qkdata.biz.management.vo;
import com.qkdata.biz.enums.OrgTypeEnum;
import com.qkdata.common.constants.Constants;
import lombok.Data;
@Data
public class QueryOrgModel {
private Integer pageIndex = Constants.DEFAULT_PAGE;
private Integer pageSize = Constants.DEFAULT_PAGE_SIZE;
private String name;
private OrgTypeEnum type;
}
...@@ -28,7 +28,7 @@ public class SysLoginController { ...@@ -28,7 +28,7 @@ public class SysLoginController {
@ApiOperation("登陆") @ApiOperation("登陆")
@SysLog("登陆") @SysLog(value = "登陆",includeParam = false)
@PostMapping("/login") @PostMapping("/login")
public Result<LoginUserInfo> login(@RequestBody @Valid LoginModel loginModel) throws JsonProcessingException { public Result<LoginUserInfo> login(@RequestBody @Valid LoginModel loginModel) throws JsonProcessingException {
LoginUserInfo loginUserInfo = shiroService.login(loginModel.getUsername(),loginModel.getPassword()); LoginUserInfo loginUserInfo = shiroService.login(loginModel.getUsername(),loginModel.getPassword());
......
...@@ -32,7 +32,7 @@ CREATE TABLE `course` ( ...@@ -32,7 +32,7 @@ CREATE TABLE `course` (
`allow` varchar(10) DEFAULT NULL COMMENT '可见范围(全部、指定企业)', `allow` varchar(10) DEFAULT NULL COMMENT '可见范围(全部、指定企业)',
`create_time` datetime DEFAULT NULL, `create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL,
`is_del` tinyint(1) DEFAULT NULL COMMENT '删除标识', `is_del` tinyint(1) DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='课程'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='课程';
...@@ -221,7 +221,7 @@ CREATE TABLE `organization` ( ...@@ -221,7 +221,7 @@ CREATE TABLE `organization` (
`remark` varchar(255) DEFAULT NULL COMMENT '备注', `remark` varchar(255) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间',
`is_del` tinyint(1) DEFAULT NULL COMMENT '删除标识', `is_del` tinyint(1) DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='组织'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='组织';
...@@ -410,7 +410,7 @@ CREATE TABLE `teacher` ( ...@@ -410,7 +410,7 @@ CREATE TABLE `teacher` (
`avatar_url` varchar(1000) DEFAULT NULL COMMENT '头像', `avatar_url` varchar(1000) DEFAULT NULL COMMENT '头像',
`create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间',
`is_del` tinyint(1) DEFAULT NULL COMMENT '删除标识', `is_del` tinyint(1) DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='讲师'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='讲师';
......
...@@ -2,4 +2,12 @@ ...@@ -2,4 +2,12 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qkdata.biz.management.mapper.OrganizationMapper"> <mapper namespace="com.qkdata.biz.management.mapper.OrganizationMapper">
<select id="queryPageList" resultType="com.qkdata.biz.management.entity.OrganizationPO">
select * from organization
where is_del = 0
and type = #{p.type}
<if test="p.name != null and p.name != ''">
and name like concat('%',#{p.name},'%')
</if>
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment