diff --git a/ruoyi-admin/src/main/resources/templates/manage/service/service.html b/ruoyi-admin/src/main/resources/templates/manage/service/service.html index 6c81a4a7..7e7f2dfa 100644 --- a/ruoyi-admin/src/main/resources/templates/manage/service/service.html +++ b/ruoyi-admin/src/main/resources/templates/manage/service/service.html @@ -90,6 +90,49 @@ width: 80px; text-align: center; } + @media (max-width: 768px) { + .tableBOx { + width: 100%; + } + + .container,.topBox{ + display: none; + } + .table-striped thead { + display: none; /* 隐藏表头 */ + } + + .table-striped tbody tr { + display: flex; + flex-direction: column; + border-bottom: 1px solid #ddd; + margin-bottom: 10px; + } + + .table-striped tbody td { + display: flex; + justify-content: space-between; + align-items: center; + padding: 8px 10px; + border-bottom: 1px solid #eee; + } + + /*.table-striped tbody tr td:first-child {*/ + /* font-weight: bold;*/ + /* min-width: 100px;*/ + /* max-width: 120px;*/ + /*}*/ + + /* 新增样式:为每个 td 添加伪元素来显示表头 */ + .table-striped tbody tr td::before { + content: attr(data-th); /* 使用 data-th 属性来显示表头 */ + font-weight: bold; + display: inline-block; + min-width: 100px; + max-width: 100px; + margin-right: 10px; + } + } @@ -101,7 +144,7 @@
- +
@@ -163,6 +206,7 @@ + + + \ No newline at end of file diff --git a/ruoyi-sip/pom.xml b/ruoyi-sip/pom.xml index 2dc8ebb6..f6901399 100644 --- a/ruoyi-sip/pom.xml +++ b/ruoyi-sip/pom.xml @@ -35,5 +35,14 @@ cn.hutool hutool-core + + cn.hutool + hutool-extra + + + com.google.zxing + core + 3.5.1 + diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/MaintenanceController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/MaintenanceController.java index 15d9599c..826d90f0 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/MaintenanceController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/MaintenanceController.java @@ -13,8 +13,10 @@ import com.ruoyi.sip.service.IProductInfoService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; /** @@ -45,8 +47,9 @@ public class MaintenanceController { @Anonymous @GetMapping() - public String service() + public String service(@RequestParam(value = "code",required = false)String code, ModelMap modelMap) { + modelMap.put("code",code); return prefix + "/service"; } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/PartnerInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/PartnerInfoController.java index 88662351..324da857 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/PartnerInfoController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/PartnerInfoController.java @@ -1,15 +1,25 @@ package com.ruoyi.sip.controller; +import java.io.File; +import java.util.Collections; import java.util.List; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.extra.qrcode.QrCodeUtil; +import com.google.zxing.qrcode.encoder.QRCode; +import com.ruoyi.common.annotation.Anonymous; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.utils.DictUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileUtils; +import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.sip.domain.PartnerInfo; @@ -19,6 +29,9 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + /** * 供应商管理Controller * @@ -27,6 +40,7 @@ import com.ruoyi.common.core.page.TableDataInfo; */ @Controller @RequestMapping("/system/partner") +@Slf4j public class PartnerInfoController extends BaseController { private String prefix = "system/partner"; @@ -125,4 +139,48 @@ public class PartnerInfoController extends BaseController { return toAjax(partnerInfoService.deletePartnerInfoByIds(ids)); } + + @GetMapping("/query") + @Anonymous + public String partnerQuery(@RequestParam(value = "code",required = false)String code,ModelMap modelMap) + { + modelMap.put("code",code); + return prefix + "/partnerQuery"; + } + @GetMapping("/list/query") + @ResponseBody + @Anonymous + public AjaxResult listQuery(PartnerInfo partnerInfo) + { + if (StringUtils.isEmpty(partnerInfo.getPartnerCode())){ + return AjaxResult.success(Collections.emptyList()); + } + List list = partnerInfoService.selectPartnerInfoList(partnerInfo); + for (PartnerInfo info : list) { + info.setLevelName(DictUtils.getDictLabel("identify_level",info.getLevel())); + } + return AjaxResult.success(list); + } + @GetMapping("/qr/code") + public void download(@RequestParam("id") Long id, HttpServletRequest request, HttpServletResponse response) { + try { + PartnerInfo partnerInfo = partnerInfoService.selectPartnerInfoById(id); + String localPath = RuoYiConfig.getProfile(); + String filePath = localPath + File.separator +"partner"+ File.separator +partnerInfo.getPartnerCode()+".jpg"; + if (!FileUtil.exist(filePath)){ + new File(filePath).createNewFile(); + } + StringBuilder url=new StringBuilder(); + url.append("http://oms.unissense.top") + .append("/system/partner/query?code=") + .append(partnerInfo.getPartnerCode()); + QrCodeUtil.generate(url.toString(), 300, 300, FileUtil.file(filePath)); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + FileUtils.setAttachmentResponseHeader(response, partnerInfo.getPartnerCode()+".jpg"); + FileUtils.writeBytes(filePath, response.getOutputStream()); + } catch (Exception e) { + log.error("下载文件失败", e); + } + } + } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/PartnerInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/PartnerInfo.java index 13fc2712..ba25be36 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/PartnerInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/PartnerInfo.java @@ -2,6 +2,7 @@ package com.ruoyi.sip.domain; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -13,6 +14,7 @@ import com.ruoyi.common.core.domain.BaseEntity; * @author mula * @date 2025-04-30 */ +@Data public class PartnerInfo extends BaseEntity { private static final long serialVersionUID = 1L; @@ -51,6 +53,7 @@ public class PartnerInfo extends BaseEntity /** 认证级别 */ @Excel(name = "认证级别") private String level; + private String levelName; /** */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @@ -66,152 +69,5 @@ public class PartnerInfo extends BaseEntity /** */ private Integer status; - public void setId(Long id) - { - this.id = id; - } - public Long getId() - { - return id; - } - - public void setPartnerCode(String partnerCode) - { - this.partnerCode = partnerCode; - } - - public String getPartnerCode() - { - return partnerCode; - } - - public void setPartnerName(String partnerName) - { - this.partnerName = partnerName; - } - - public String getPartnerName() - { - return partnerName; - } - - public void setProvince(String province) - { - this.province = province; - } - - public String getProvince() - { - return province; - } - - public void setCity(String city) - { - this.city = city; - } - - public String getCity() - { - return city; - } - - public void setAddress(String address) - { - this.address = address; - } - - public String getAddress() - { - return address; - } - - public void setContactPerson(String contactPerson) - { - this.contactPerson = contactPerson; - } - - public String getContactPerson() - { - return contactPerson; - } - - public void setContactPhone(String contactPhone) - { - this.contactPhone = contactPhone; - } - - public String getContactPhone() - { - return contactPhone; - } - - public void setLevel(String level) - { - this.level = level; - } - - public String getLevel() - { - return level; - } - - public void setCreateAt(Date createAt) - { - this.createAt = createAt; - } - - public Date getCreateAt() - { - return createAt; - } - - public void setUpdateAt(Date updateAt) - { - this.updateAt = updateAt; - } - - public Date getUpdateAt() - { - return updateAt; - } - - public void setDeleteAt(Date deleteAt) - { - this.deleteAt = deleteAt; - } - - public Date getDeleteAt() - { - return deleteAt; - } - - public void setStatus(Integer status) - { - this.status = status; - } - - public Integer getStatus() - { - return status; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("partnerCode", getPartnerCode()) - .append("partnerName", getPartnerName()) - .append("province", getProvince()) - .append("city", getCity()) - .append("address", getAddress()) - .append("contactPerson", getContactPerson()) - .append("contactPhone", getContactPhone()) - .append("level", getLevel()) - .append("createAt", getCreateAt()) - .append("updateAt", getUpdateAt()) - .append("deleteAt", getDeleteAt()) - .append("status", getStatus()) - .toString(); - } }