| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- package com.qlm.controller.jinzai;
- import cn.hutool.core.collection.CollUtil;
- import com.jfinal.aop.Clear;
- import com.jfinal.kit.HttpKit;
- import com.qlm.annotation.RequestUrl;
- import com.qlm.common.ApiResponse;
- import com.qlm.controller.common.CommonController;
- import com.qlm.dto.ItemExportDto;
- import com.qlm.dto.ProductDto;
- import com.qlm.dto.ProductExportDto;
- import com.qlm.oss.OssUtil;
- import com.qlm.service.IProductService;
- import com.qlm.service.impl.ProductServiceImpl;
- import com.qlm.tools.EasyExcelUtil;
- import com.qlm.tools.WxUtil;
- import com.alibaba.fastjson.JSON;
- import com.qlm.view.core.AdminView;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.io.InputStream;
- import java.net.URLEncoder;
- import java.util.List;
- /**
- * @author wuyingjianwu
- * @date 2025/xx/xx
- * 产品信息管理
- */
- @RequestUrl("/productNew")
- public class ProductNewController extends CommonController {
- private static final Logger logger = LoggerFactory.getLogger(ProductNewController.class);
- private final IProductService productService = new ProductServiceImpl();
- public void getProductList() {
- renderJsp("/page/jinzai/productList.jsp");
- }
- /**
- * 保存产品信息
- */
- @Override
- public void save() {
- AdminView loginUser = getLoginUser();
- ApiResponse apiResponse;
- try {
- // 使用HttpKit.readData获取请求Body
- String bodyData = HttpKit.readData(getRequest());
- // 将JSON字符串转换为ProductDto对象
- ProductDto productDto = JSON.parseObject(bodyData, ProductDto.class);
- // 数据验证
- if (WxUtil.isNull(productDto.getProductName())) {
- apiResponse = ApiResponse.error("产品名称不能为空");
- renderJson(apiResponse);
- return;
- }
- if (WxUtil.isNull(productDto.getProductNo())) {
- apiResponse = ApiResponse.error("产品编号不能为空");
- renderJson(apiResponse);
- return;
- }
- if (productDto.getProductType() == null) {
- apiResponse = ApiResponse.error("产品分类不能为空");
- renderJson(apiResponse);
- return;
- }
- // 调用Service层保存数据
- apiResponse = productService.saveProduct(productDto,loginUser);
- } catch (Exception e) {
- logger.error("保存产品信息异常:", e);
- apiResponse = ApiResponse.error("系统异常:" + e.getMessage());
- }
- renderJson(apiResponse);
- }
- /**
- * 更新产品信息
- */
- public void update() {
- AdminView loginUser = getLoginUser();
- ApiResponse apiResponse;
- try {
- String bodyData = HttpKit.readData(getRequest());
- ProductDto productDto = JSON.parseObject(bodyData, ProductDto.class);
- if (productDto.getId() == null) {
- apiResponse = ApiResponse.error("产品ID不能为空");
- renderJson(apiResponse);
- return;
- }
- apiResponse = productService.updateProduct(productDto,loginUser);
- } catch (Exception e) {
- logger.error("更新产品信息异常:", e);
- apiResponse = ApiResponse.error("系统异常:" + e.getMessage());
- }
- renderJson(apiResponse);
- }
- /**
- * 删除产品信息
- */
- public void delete() {
- ApiResponse apiResponse;
- try {
- Long id = getParaToLong("id");
- if (id == null) {
- apiResponse = ApiResponse.error("产品ID不能为空");
- renderJson(apiResponse);
- return;
- }
- apiResponse = productService.deleteProduct(id);
- } catch (Exception e) {
- logger.error("删除产品信息异常:", e);
- apiResponse = ApiResponse.error("系统异常:" + e.getMessage());
- }
- renderJson(apiResponse);
- }
- /**
- * 根据ID获取产品信息
- */
- @Override
- public void getById() {
- ApiResponse apiResponse;
- try {
- Long id = getParaToLong("id");
- if (id == null) {
- apiResponse = ApiResponse.error("产品ID不能为空");
- renderJson(apiResponse);
- return;
- }
- apiResponse = productService.getProductById(id);
- } catch (Exception e) {
- logger.error("获取产品信息异常:", e);
- apiResponse = ApiResponse.error("系统异常:" + e.getMessage());
- }
- renderJson(apiResponse);
- }
- /**
- * 产品列表查询
- */
- @Override
- public void list() {
- try {
- // 获取分页参数
- int pageNumber = getParaToInt("pageNumber", 1);
- int pageSize = getParaToInt("pageSize", 10);
- // 获取查询条件
- String productName = getPara("productName");
- Integer productType = getParaToInt("categoryId");
- Integer status = getParaToInt("status");
- Integer brandId = getParaToInt("brandId");
- // 调用Service层查询列表
- renderJson(productService.listProducts(pageNumber, pageSize, productName, productType, status, brandId));
- } catch (Exception e) {
- logger.error("查询产品列表异常:", e);
- renderJson(ApiResponse.error("系统异常:" + e.getMessage()));
- }
- }
- /**
- * 获取产品分类列表(用于下拉选择)
- */
- public void getProductTypeList() {
- try {
- ApiResponse apiResponse = productService.getAllProductTypes();
- renderJson(apiResponse);
- } catch (Exception e) {
- logger.error("获取产品分类列表异常:", e);
- renderJson(ApiResponse.error("系统异常:" + e.getMessage()));
- }
- }
- /**
- * 获取品牌列表(用于下拉选择)
- */
- public void getBrandList() {
- try {
- ApiResponse apiResponse = productService.getAllBrands();
- renderJson(apiResponse);
- } catch (Exception e) {
- logger.error("获取品牌列表异常:", e);
- renderJson(ApiResponse.error("系统异常:" + e.getMessage()));
- }
- }
- /**
- * 导出品相列表
- */
- @Clear
- public void exportProductList() {
- ApiResponse apiResponse = ApiResponse.success();
- try {
- // 获取查询参数
- String productName = getPara("productName");
- Integer productType = getParaToInt("categoryId");
- Integer status = getParaToInt("status");
- Integer brandId = getParaToInt("brandId");
- // 调用Service层获取导出数据
- List<ProductExportDto> dtos =productService.exportProductList(productName, productType, status, brandId);
- if (CollUtil.isEmpty(dtos)) {
- renderJson(ApiResponse.error("没有要导出的数据"));
- return;
- }
- // 使用EasyExcelUtil生成Excel文件流
- InputStream inputStream = EasyExcelUtil.export(dtos, "产品列表", ProductExportDto.class);
- String fileName = URLEncoder.encode("产品列表.xlsx", "UTF-8");
- String ossUrl = OssUtil.upload(inputStream, fileName);
- apiResponse = ApiResponse.success(ossUrl);
- } catch (Exception e) {
- logger.error("导出产品列表异常:", e);
- renderJson(ApiResponse.error("导出产品列表失败:" + e.getMessage()));
- }
- renderJson(apiResponse);
- }
- }
|