package com.ruoyi.system.controller; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson2.JSONArray; import com.ruoyi.system.ControllerUtil.GenerateCustomCode; import com.ruoyi.system.domain.QuoteMaterial; import com.ruoyi.system.domain.ServiceCate; import com.ruoyi.system.service.IServiceCateService; import com.ruoyi.system.service.IServiceGoodsService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.domain.UserSecondaryCard; import com.ruoyi.system.service.IUserSecondaryCardService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; /** * 次卡管理Controller * * @author ruoyi * @date 2025-07-02 */ @RestController @RequestMapping("/system/UserSecondaryCard") public class UserSecondaryCardController extends BaseController { @Autowired private IUserSecondaryCardService userSecondaryCardService; @Autowired private IServiceGoodsService serviceGoodsService; @Autowired private IServiceCateService serviceCateService; /** * 数字转中文工具方法 */ private String numberToChinese(Long num) { if (num == null || num <= 0) { return "零"; } String[] chineseNumbers = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"}; if (num <= 10) { return chineseNumbers[num.intValue()]; } else if (num < 20) { return "十" + (num > 10 ? chineseNumbers[Math.toIntExact((num - 10))] : ""); } else if (num < 100) { long tens = num / 10; long ones = num % 10; String result = chineseNumbers[(int)tens] + "十"; if (ones > 0) { result += chineseNumbers[(int)ones]; } return result; } else { // 对于大于100的数字,直接返回阿拉伯数字 return num.toString(); } } /** * 生成introduction字段 */ private String generateIntroduction(Long allnum, Long num) { if (allnum == null || num == null) { return ""; } String allnumChinese = numberToChinese(allnum); String numChinese = numberToChinese(num); return allnumChinese + "选" + numChinese; } /** * 查询次卡管理列表 */ @PreAuthorize("@ss.hasPermi('system:UserSecondaryCard:list')") @GetMapping("/list") public TableDataInfo list(UserSecondaryCard userSecondaryCard) { startPage(); List list = userSecondaryCardService.selectUserSecondaryCardList(userSecondaryCard); JSONArray jsonArray = new JSONArray(); //JSONArray.parseArray(str); for(UserSecondaryCard t:list){ List idsList = com.alibaba.fastjson2.JSONArray.parseArray(t.getGoodsids(), String.class); t.setGoodsname(serviceGoodsService.selectTitlesJSONArrayByIds(idsList)); ServiceCate serviceCate = serviceCateService.selectServiceCateById(t.getType()); if(serviceCate!=null){ t.setTypename(serviceCate.getTitle()); } } return getDataTable(list); } /** * 导出次卡管理列表 */ @PreAuthorize("@ss.hasPermi('system:UserSecondaryCard:export')") @Log(title = "次卡管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, UserSecondaryCard userSecondaryCard) { List list = userSecondaryCardService.selectUserSecondaryCardList(userSecondaryCard); ExcelUtil util = new ExcelUtil(UserSecondaryCard.class); util.exportExcel(response, list, "次卡管理数据"); } /** * 获取次卡管理详细信息 */ @PreAuthorize("@ss.hasPermi('system:UserSecondaryCard:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(userSecondaryCardService.selectUserSecondaryCardById(id)); } /** * 新增次卡管理 */ @PreAuthorize("@ss.hasPermi('system:UserSecondaryCard:add')") @Log(title = "次卡管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody UserSecondaryCard userSecondaryCard) { userSecondaryCard.setOrderid(GenerateCustomCode.generCreateOrder("CIKA")); userSecondaryCard.setCreattime(new Date()); // 自动生成introduction字段 String introduction = generateIntroduction(userSecondaryCard.getAllnum(), userSecondaryCard.getNum()); userSecondaryCard.setIntroduction(introduction); return toAjax(userSecondaryCardService.insertUserSecondaryCard(userSecondaryCard)); } /** * 修改次卡管理 */ @PreAuthorize("@ss.hasPermi('system:UserSecondaryCard:edit')") @Log(title = "次卡管理", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody UserSecondaryCard userSecondaryCard) { // 自动生成introduction字段 String introduction = generateIntroduction(userSecondaryCard.getAllnum(), userSecondaryCard.getNum()); userSecondaryCard.setIntroduction(introduction); return toAjax(userSecondaryCardService.updateUserSecondaryCard(userSecondaryCard)); } /** * 删除次卡管理 */ @PreAuthorize("@ss.hasPermi('system:UserSecondaryCard:remove')") @Log(title = "次卡管理", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(userSecondaryCardService.deleteUserSecondaryCardByIds(ids)); } }