diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/page/QueryParseHelper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/page/QueryParseHelper.java new file mode 100644 index 00000000..9629c10a --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/common/page/QueryParseHelper.java @@ -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 Page getPageFromContent(String content, Class clz) { + Page 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 getParamFromContent(String content, Class 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 getParamFromContentOrNull(String content, Class 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 getValueFromContent(String content, String expression, Class clz) { + JsonNode node = JacksonUtil.readTreeOrMissing(content); + JsonNode nodeByPath = JacksonUtil.getByPath(node, expression); + return JacksonUtil.treeToValue(nodeByPath, clz); + } + + public static T getValueFromContent(String content, String expression, T defaultValue) { + return JacksonUtil.getValueByPath(content, expression, defaultValue); + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/controller/CustPsnTypeController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/controller/CustPsnTypeController.java new file mode 100644 index 00000000..94d7d8ba --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/controller/CustPsnTypeController.java @@ -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 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 result = this.custPsnTypeService.queryPsnTypeApplet(); + return success(result); + } + + public CustPsnTypeController(final CustPsnTypeService custPsnTypeService) { + this.custPsnTypeService = custPsnTypeService; + } +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/mapper/CustPsnTypeMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/mapper/CustPsnTypeMapper.java index abc613b3..2d14e79d 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/mapper/CustPsnTypeMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/mapper/CustPsnTypeMapper.java @@ -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 selectPsnType(AddPsnTypeDTO param); - Page pagePsnTypeList(Page page, @Param("param") QueryPsnTypeDTO param); + List pagePsnTypeList(@Param("param") QueryPsnTypeDTO param); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/service/CustPsnTypeService.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/service/CustPsnTypeService.java index fedd26b6..b1355794 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/service/CustPsnTypeService.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/service/CustPsnTypeService.java @@ -18,5 +18,13 @@ public interface CustPsnTypeService extends IService { PsnTypeBacisInfoVO getPsnTypeBasicInfoVO(Integer psnType); String insertOrUpdatePsnType(Integer psnType, String psnTypeName); + public CustPsnType addPsnType(AddPsnTypeDTO param); + public void updatePsnTypeById(UpdatePsnTypeDTO param); + + public List queryPsnTypeByPage(QueryPsnTypeDTO dto); + + public void deletePsnTypeById(DeletePsnTypeDTO param); + + public List queryPsnTypeApplet(); } diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/service/impl/CustPsnTypeServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/service/impl/CustPsnTypeServiceImpl.java index e98b9e66..0ac0ffaf 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/service/impl/CustPsnTypeServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/customer/service/impl/CustPsnTypeServiceImpl.java @@ -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 implements CustPsnTypeService { @@ -126,4 +129,26 @@ public class CustPsnTypeServiceImpl extends ServiceImpl CustConstant.PSN_TYPE_MAX; } + public List 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 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)); + } + }