人员类别控制层

This commit is contained in:
sxu 2025-03-03 15:02:32 +08:00
parent d61fac9987
commit 914500550d
5 changed files with 201 additions and 3 deletions

View File

@ -0,0 +1,85 @@
package com.bonus.canteen.core.common.page;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.JsonNode;
import com.bonus.canteen.core.common.utils.JacksonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class QueryParseHelper {
private static final Logger log = LoggerFactory.getLogger(QueryParseHelper.class);
public static PageDTO getPageFromContent(String content) {
PageDTO page = getPageOrNullFromContent(content);
return page == null ? new PageDTO() : page;
}
public static PageDTO getPageOrNullFromContent(String content) {
PageDTO page = null;
JsonNode jsonNode = JacksonUtil.readTree(content);
if (jsonNode != null) {
page = (PageDTO)JacksonUtil.treeToValue(jsonNode.path("page"), PageDTO.class);
}
return page;
}
/** @deprecated */
@Deprecated
public static <T> Page<T> getPageFromContent(String content, Class<T> clz) {
Page<T> page = new Page(1L, 10L);
JsonNode jsonNode = JacksonUtil.readTree(content);
if (jsonNode != null) {
page.setCurrent(jsonNode.path("page").path("current").asLong(1L));
page.setSize(jsonNode.path("page").path("size").asLong(10L));
}
return page;
}
public static <T> T getParamFromContent(String content, Class<T> clz) {
T paramDto = null;
try {
JsonNode jsonNode = JacksonUtil.readTree(content);
if (jsonNode != null) {
JsonNode object = jsonNode.get("object");
paramDto = JacksonUtil.treeToValue(object, clz);
}
if (paramDto == null) {
paramDto = clz.newInstance();
}
} catch (IllegalAccessException | InstantiationException var5) {
log.error("实例化对象失败", var5);
}
return paramDto;
}
public static <T> T getParamFromContentOrNull(String content, Class<T> clz) {
T paramDto = null;
JsonNode jsonNode = JacksonUtil.readTree(content);
if (jsonNode != null) {
JsonNode object = jsonNode.get("object");
paramDto = JacksonUtil.treeToValue(object, clz);
}
return paramDto;
}
public static JsonNode getNodeFromContent(String content, String expression) {
JsonNode node = JacksonUtil.readTreeOrMissing(content);
return JacksonUtil.getByPath(node, expression);
}
public static <T> T getValueFromContent(String content, String expression, Class<T> clz) {
JsonNode node = JacksonUtil.readTreeOrMissing(content);
JsonNode nodeByPath = JacksonUtil.getByPath(node, expression);
return JacksonUtil.treeToValue(nodeByPath, clz);
}
public static <T> T getValueFromContent(String content, String expression, T defaultValue) {
return JacksonUtil.getValueByPath(content, expression, defaultValue);
}
}

View File

@ -0,0 +1,79 @@
package com.bonus.canteen.core.customer.controller;
import com.bonus.canteen.core.common.base.BaseController;
import com.bonus.canteen.core.common.page.QueryParseHelper;
import com.bonus.canteen.core.customer.dto.AddPsnTypeDTO;
import com.bonus.canteen.core.customer.dto.DeletePsnTypeDTO;
import com.bonus.canteen.core.customer.dto.QueryPsnTypeDTO;
import com.bonus.canteen.core.customer.dto.UpdatePsnTypeDTO;
import com.bonus.canteen.core.customer.model.CustPsnType;
import com.bonus.canteen.core.customer.service.CustPsnTypeService;
import com.bonus.canteen.core.customer.v4.web.vo.ExportPsnTypeVO;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.validation.Valid;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import static com.bonus.common.core.utils.PageUtils.startPage;
import static com.bonus.common.core.web.domain.AjaxResult.success;
@RestController
@RequestMapping({"/api/v1/cust/psntype"})
@Api(
tags = {"customer-人员类别控制层"}
)
public class CustPsnTypeController extends BaseController {
private static final Logger log = LoggerFactory.getLogger(CustPsnTypeController.class);
private final CustPsnTypeService custPsnTypeService;
@PostMapping({"/savePsnType"})
@ApiOperation("新增人员类别信息")
public AjaxResult savePsnType(@RequestBody @Valid AddPsnTypeDTO dto) {
this.custPsnTypeService.addPsnType(dto);
return success();
}
@GetMapping({"/queryPsnTypeByPage"})
@ApiOperation("获取人员类别信息")
public TableDataInfo queryPsnTypeByPage(String content) {
try {
startPage();
QueryPsnTypeDTO dto = (QueryPsnTypeDTO) QueryParseHelper.getParamFromContent(content, QueryPsnTypeDTO.class);
List<ExportPsnTypeVO> list = this.custPsnTypeService.queryPsnTypeByPage(dto);
return getDataTable(list);
} catch (Exception e) {
log.error(e.toString(), e);
return getDataTable(null);
}
}
@PutMapping({"/updatePsnTypeById"})
@ApiOperation("更新人员类别")
public AjaxResult updatePsnTypeById(@RequestBody @Valid UpdatePsnTypeDTO dto) {
this.custPsnTypeService.updatePsnTypeById(dto);
return success();
}
@DeleteMapping({"/deletePsnTypeById"})
@ApiOperation("根据id删除人员类别")
public AjaxResult deletePsnTypeById(@RequestBody @Valid DeletePsnTypeDTO dto) {
this.custPsnTypeService.deletePsnTypeById(dto);
return success();
}
@GetMapping({"/queryPsnTypeApplet"})
@ApiOperation("获取人员类别信息")
public AjaxResult queryPsnTypeApplet() {
log.info("[人员类别]小程序获取人员类别信息");
List<CustPsnType> result = this.custPsnTypeService.queryPsnTypeApplet();
return success(result);
}
public CustPsnTypeController(final CustPsnTypeService custPsnTypeService) {
this.custPsnTypeService = custPsnTypeService;
}
}

View File

@ -1,7 +1,6 @@
package com.bonus.canteen.core.customer.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bonus.canteen.core.customer.dto.AddPsnTypeDTO;
import com.bonus.canteen.core.customer.dto.QueryPsnTypeDTO;
import com.bonus.canteen.core.customer.model.CustPsnType;
@ -9,9 +8,11 @@ import com.bonus.canteen.core.customer.v4.web.vo.ExportPsnTypeVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface CustPsnTypeMapper extends BaseMapper<CustPsnType> {
CustPsnType selectPsnType(AddPsnTypeDTO param);
Page<ExportPsnTypeVO> pagePsnTypeList(Page page, @Param("param") QueryPsnTypeDTO param);
List<ExportPsnTypeVO> pagePsnTypeList(@Param("param") QueryPsnTypeDTO param);
}

View File

@ -18,5 +18,13 @@ public interface CustPsnTypeService extends IService<CustPsnType> {
PsnTypeBacisInfoVO getPsnTypeBasicInfoVO(Integer psnType);
String insertOrUpdatePsnType(Integer psnType, String psnTypeName);
public CustPsnType addPsnType(AddPsnTypeDTO param);
public void updatePsnTypeById(UpdatePsnTypeDTO param);
public List<ExportPsnTypeVO> queryPsnTypeByPage(QueryPsnTypeDTO dto);
public void deletePsnTypeById(DeletePsnTypeDTO param);
public List<CustPsnType> queryPsnTypeApplet();
}

View File

@ -5,6 +5,9 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bonus.canteen.core.customer.dto.DeletePsnTypeDTO;
import com.bonus.canteen.core.customer.dto.QueryPsnTypeDTO;
import com.bonus.canteen.core.customer.v4.web.vo.ExportPsnTypeVO;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.houqin.constant.LeConstants;
import com.bonus.canteen.core.customer.constants.CustConstant;
@ -21,9 +24,9 @@ import com.bonus.common.houqin.i18n.I18n;
import com.bonus.common.houqin.utils.LeBeanUtil;
import com.bonus.common.houqin.utils.RetCodeEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.List;
@Service
public class CustPsnTypeServiceImpl extends ServiceImpl<CustPsnTypeMapper, CustPsnType> implements CustPsnTypeService {
@ -126,4 +129,26 @@ public class CustPsnTypeServiceImpl extends ServiceImpl<CustPsnTypeMapper, CustP
return psnType < CustConstant.PSN_TYPE_MIN || psnType > CustConstant.PSN_TYPE_MAX;
}
public List<ExportPsnTypeVO> queryPsnTypeByPage(QueryPsnTypeDTO dto) {
return ((CustPsnTypeMapper)this.baseMapper).pagePsnTypeList(dto);
}
public void deletePsnTypeById(DeletePsnTypeDTO param) {
//((CustPsnTypeMapper)this.baseMapper).update((Object)null, (Wrapper)((LambdaUpdateWrapper)Wrappers.lambdaUpdate(CustPsnType.class)
// .set(CustPsnType::getDelFlag, LeConstants.COMMON_YES))
// .eq(CustPsnType::getId, param.getId()));
((CustPsnTypeMapper)this.baseMapper).update((CustPsnType) null, Wrappers.lambdaUpdate(CustPsnType.class)
.set(CustPsnType::getDelFlag, LeConstants.COMMON_YES)
.eq(CustPsnType::getId, param.getId()));
}
public List<CustPsnType> queryPsnTypeApplet() {
// return ((CustPsnTypeMapper)this.baseMapper).selectList((Wrapper)Wrappers.lambdaQuery(CustPsnType.class)
// .select(new SFunction[]{CustPsnType::getPsnType, CustPsnType::getPsnTypeName})
// .eq(CustPsnType::getDelFlag, LeConstants.COMMON_NO));
return ((CustPsnTypeMapper)this.baseMapper).selectList((Wrapper)Wrappers.lambdaQuery(CustPsnType.class)
.select(CustPsnType::getPsnType, CustPsnType::getPsnTypeName)
.eq(CustPsnType::getDelFlag, LeConstants.COMMON_NO));
}
}