diff --git a/jeecg-boot-module/jeecg-module-service/src/main/java/org/jeecg/modules/system/controller/CardDeliveryPersonController.java b/jeecg-boot-module/jeecg-module-service/src/main/java/org/jeecg/modules/system/controller/CardDeliveryPersonController.java index d7bbe13..21a7079 100644 --- a/jeecg-boot-module/jeecg-module-service/src/main/java/org/jeecg/modules/system/controller/CardDeliveryPersonController.java +++ b/jeecg-boot-module/jeecg-module-service/src/main/java/org/jeecg/modules/system/controller/CardDeliveryPersonController.java @@ -1,182 +1,185 @@ package org.jeecg.modules.system.controller; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.common.system.query.QueryRuleEnum; -import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.system.entity.CardDeliveryPerson; -import org.jeecg.modules.system.service.ICardDeliveryPersonService; - +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; - -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.modules.system.dto.CardDeliveryPersonDTO; +import org.jeecg.modules.system.dto.CardDeliveryPersonStatusDTO; +import org.jeecg.modules.system.entity.CardDeliveryPerson; +import org.jeecg.modules.system.mapper.CardDeliveryPersonMapper; +import org.jeecg.modules.system.service.ICardDeliveryPersonService; +import org.jeecg.modules.system.vo.CardDeliveryPersonVO; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; -import com.alibaba.fastjson.JSON; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Operation; -import org.jeecg.common.aspect.annotation.AutoLog; -import org.apache.shiro.authz.annotation.RequiresPermissions; - /** - * @Description: 送卡人管理 - * @Author: jeecg-boot - * @Date: 2025-09-26 - * @Version: V1.0 - */ -@Tag(name="送卡人管理") + +import java.math.BigDecimal; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @program: jeecg-boot + * @description: + * @author: Mr.Yang + * @create: 2025-09-22 15:35 + **/ +@Slf4j @RestController @RequestMapping("/card/cardDeliveryPerson") -@Slf4j public class CardDeliveryPersonController extends JeecgController { - @Autowired + + @Resource private ICardDeliveryPersonService cardDeliveryPersonService; - - /** - * 分页列表查询 - * - * @param cardDeliveryPerson - * @param pageNo - * @param pageSize - * @param req - * @return - */ - //@AutoLog(value = "送卡人管理-分页列表查询") - @Operation(summary="送卡人管理-分页列表查询") + + @Resource + private CardDeliveryPersonMapper cardDeliveryPersonMapper; + + @GetMapping(value = "/list") - public Result> queryPageList(CardDeliveryPerson cardDeliveryPerson, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { + public Result> queryPageList(CardDeliveryPerson cardDeliveryPerson, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + // 参数校验 + if (pageNo <= 0) { + pageNo = 1; + } + if (pageSize <= 0 || pageSize > 100) { + pageSize = 10; + } + try { + // 构建查询条件 + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(cardDeliveryPerson, req.getParameterMap()); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(cardDeliveryPerson, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = cardDeliveryPersonService.page(page, queryWrapper); - return Result.OK(pageList); + // 分页查询 + Page page = new Page<>(pageNo, pageSize); + IPage pageList = cardDeliveryPersonService.page(page, queryWrapper); + + // 转换为VO对象 + Page voPage = new Page<>(pageList.getCurrent(), pageList.getSize(), pageList.getTotal()); + List voList = pageList.getRecords().stream().map(record -> { + CardDeliveryPersonVO vo = new CardDeliveryPersonVO(); + BeanUtils.copyProperties(record, vo); + //TODO:已收送卡费 + vo.setReceivableFee(new BigDecimal(100)); + //TODO:总送卡费 + vo.setAllFee(new BigDecimal(200)); + //格式化创建时间 + vo.setCreateTime(DateUtil.format(record.getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + //处理状态 + switch (record.getStatus()) { + case "0": + vo.setStatus("停用"); + break; + case "1": + vo.setStatus("启用"); + break; + default: + vo.setStatus(""); + break; + } + return vo; + }).collect(Collectors.toList()); + + voPage.setRecords(voList); + + return Result.OK(voPage); + } catch (Exception e) { + log.error("查询配送人员列表失败", e); + return Result.error("查询失败:" + e.getMessage()); + } } - - /** - * 添加 - * - * @param cardDeliveryPerson - * @return - */ - @AutoLog(value = "送卡人管理-添加") - @Operation(summary="送卡人管理-添加") - @RequiresPermissions("org.jeecg.modules.system:card_delivery_person:add") - @PostMapping(value = "/add") - public Result add(@RequestBody CardDeliveryPerson cardDeliveryPerson) { - cardDeliveryPersonService.save(cardDeliveryPerson); + @PostMapping(value = "/add") + public Result add(@RequestBody CardDeliveryPersonDTO dto) { + dto.setId(null); + CardDeliveryPerson entry = new CardDeliveryPerson(); + BeanUtils.copyProperties(dto, entry); + entry.setStatus("0"); //默认停用 + cardDeliveryPersonService.save(entry); return Result.OK("添加成功!"); } - - /** - * 编辑 - * - * @param cardDeliveryPerson - * @return - */ - @AutoLog(value = "送卡人管理-编辑") - @Operation(summary="送卡人管理-编辑") - @RequiresPermissions("org.jeecg.modules.system:card_delivery_person:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result edit(@RequestBody CardDeliveryPerson cardDeliveryPerson) { - cardDeliveryPersonService.updateById(cardDeliveryPerson); - return Result.OK("编辑成功!"); + public Result edit(@RequestBody CardDeliveryPersonDTO dto) { + if (StringUtils.isBlank(dto.getId())){ + return Result.error("ID不能为空"); + } + CardDeliveryPerson entry = cardDeliveryPersonMapper.selectById(dto.getId()); + BeanUtils.copyProperties(dto, entry); + entry.setStatus("0"); //默认停用 + cardDeliveryPersonService.updateById(entry); + return Result.OK("修改成功,请重新启用!"); } - - /** - * 通过id删除 - * - * @param id - * @return - */ - @AutoLog(value = "送卡人管理-通过id删除") - @Operation(summary="送卡人管理-通过id删除") - @RequiresPermissions("org.jeecg.modules.system:card_delivery_person:delete") + @DeleteMapping(value = "/delete") - public Result delete(@RequestParam(name="id",required=true) String id) { + public Result delete(@RequestParam(name = "id", required = true) String id) { cardDeliveryPersonService.removeById(id); return Result.OK("删除成功!"); } - - /** - * 批量删除 - * - * @param ids - * @return - */ - @AutoLog(value = "送卡人管理-批量删除") - @Operation(summary="送卡人管理-批量删除") - @RequiresPermissions("org.jeecg.modules.system:card_delivery_person:deleteBatch") + @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.cardDeliveryPersonService.removeByIds(Arrays.asList(ids.split(","))); + public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.cardDeliveryPersonService.removeByIds(java.util.Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } - - /** - * 通过id查询 - * - * @param id - * @return - */ - //@AutoLog(value = "送卡人管理-通过id查询") - @Operation(summary="送卡人管理-通过id查询") + @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { + public Result queryById(@RequestParam(name = "id", required = true) String id) { CardDeliveryPerson cardDeliveryPerson = cardDeliveryPersonService.getById(id); - if(cardDeliveryPerson==null) { - return Result.error("未找到对应数据"); - } return Result.OK(cardDeliveryPerson); } - /** - * 导出excel - * - * @param request - * @param cardDeliveryPerson - */ - @RequiresPermissions("org.jeecg.modules.system:card_delivery_person:exportXls") - @RequestMapping(value = "/exportXls") - public ModelAndView exportXls(HttpServletRequest request, CardDeliveryPerson cardDeliveryPerson) { - return super.exportXls(request, cardDeliveryPerson, CardDeliveryPerson.class, "送卡人管理"); - } + /** + * 更新状态 停用/启用 + * @param dto + * @return + */ + @RequestMapping(value = "/updateStatus", method = {RequestMethod.POST}) + public Result updateStatus(@RequestBody CardDeliveryPersonStatusDTO dto) { + if (StringUtils.isBlank(dto.getId())){ + return Result.error("ID不能为空"); + } + if (StringUtils.isBlank(dto.getStatus())){ + return Result.error("状态不能为空"); + } + CardDeliveryPerson entry = cardDeliveryPersonMapper.selectById(dto.getId()); + entry.setStatus(dto.getStatus()); + cardDeliveryPersonService.updateById(entry); + return Result.OK("更新成功!"); + } - /** - * 通过excel导入数据 - * - * @param request - * @param response - * @return - */ - @RequiresPermissions("org.jeecg.modules.system:card_delivery_person:importExcel") - @RequestMapping(value = "/importExcel", method = RequestMethod.POST) - public Result importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, CardDeliveryPerson.class); - } + /** + * 导出excel + * + * @param request + * @param cardDeliveryPerson + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, CardDeliveryPerson cardDeliveryPerson) { + return super.exportXls(request, cardDeliveryPerson, CardDeliveryPerson.class, "办卡人员"); + } + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, CardDeliveryPerson.class); + } }