he2802 преди 3 години
родител
ревизия
644796e49d

+ 5 - 5
zhongzheng-admin/src/main/java/com/zhongzheng/controller/base/CertificateTpController.java

@@ -102,11 +102,11 @@ public class CertificateTpController extends BaseController {
     /**
      * 删除证书模板
      */
-   /* @ApiOperation("删除证书模板")
+    @ApiOperation("生成证书图片")
     @PreAuthorize("@ss.hasPermi('system:tp:remove')")
     @Log(title = "证书模板" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{tpIds}")
-    public AjaxResult<Void> remove(@PathVariable Long[] tpIds) {
-        return toAjax(iCertificateTpService.deleteWithValidByIds(Arrays.asList(tpIds), true) ? 1 : 0);
-    }*/
+    @GetMapping("/makePhoto")
+    public AjaxResult<Void> makePhoto(CertificateTpQueryBo bo) {
+        return AjaxResult.success(iCertificateTpService.makeCertificatePhoto(bo));
+    }
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/ICertificateTpService.java

@@ -42,6 +42,8 @@ public interface ICertificateTpService extends IService<CertificateTp> {
 	 */
 	Boolean updateByEditBo(CertificateTpEditBo bo);
 
+	String makeCertificatePhoto(CertificateTpQueryBo bo);
+
 	List<CertificateTpVo> selectList(CertificateTpQueryBo bo);
 
 	/**

+ 93 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateTpServiceImpl.java

@@ -12,6 +12,7 @@ import com.zhongzheng.modules.base.bo.CertificateTpQueryBo;
 import com.zhongzheng.modules.base.domain.CertificateTp;
 import com.zhongzheng.modules.base.mapper.CertificateTpMapper;
 import com.zhongzheng.modules.base.service.ICertificateTpService;
+import com.zhongzheng.modules.base.vo.CertificatePhotoVo;
 import com.zhongzheng.modules.base.vo.CertificateTpVo;
 import com.zhongzheng.modules.course.domain.CourseBusiness;
 import org.springframework.stereotype.Service;
@@ -20,8 +21,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
 
+import javax.imageio.ImageIO;
 import javax.validation.Valid;
 import javax.validation.Validation;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -91,6 +97,93 @@ public class CertificateTpServiceImpl extends ServiceImpl<CertificateTpMapper, C
         return this.updateById(update);
     }
 
+    @Override
+    public String makeCertificatePhoto(CertificateTpQueryBo bo) {
+        if("certificate01".equals(bo.getKeyValue())){
+            CertificatePhotoVo vo = new CertificatePhotoVo();
+            vo.setCode("XYZC21011234");
+            vo.setRealname("李盛仁");
+            vo.setIdCard("445224199901040003");
+            vo.setYear("2021");
+            vo.setType("专业");
+            vo.setMajor("网络班");
+            vo.setClassHours("42");
+            vo.setDateY("2022");
+            vo.setDateM("2");
+            vo.setDateD("16");
+            List<String> chapterList = new ArrayList<>();
+            chapterList.add("①.绿色施工");
+            chapterList.add("②.绿色施工");
+            chapterList.add("③.绿色施工");
+            chapterList.add("④.绿色施工");
+            chapterList.add("⑤.绿色施工");
+            chapterList.add("⑥.绿色施工");
+            chapterList.add("⑦.绿色施工");
+            chapterList.add("⑧.绿色施工");
+            vo.setChapterList(chapterList);
+            drawPic(vo);
+
+        }
+        return null;
+    }
+
+    private  String drawPic(CertificatePhotoVo entity){
+        Font font = new Font("微软雅黑", Font.PLAIN, 45);// 添加字体的属性设置
+
+        String projectUrl = "D:\\test\\";
+        String imgName = projectUrl + "out01.jpg";
+        try {
+            // 加载本地图片
+            String imageLocalUrl = projectUrl + "002.jpg";
+            BufferedImage imageLocal = ImageIO.read(new File(imageLocalUrl));
+            // 以本地图片为模板
+            Graphics2D g = imageLocal.createGraphics();
+
+            // 设置文本样式
+            g.setFont(font);
+            g.setColor(Color.BLACK);
+
+            g.drawString(entity.getCode(), 445, 290);
+            g.drawString(entity.getRealname(), 488, 562);
+            g.drawString(entity.getIdCard(), 1030, 562);
+            g.drawString(entity.getYear(), 1865, 562);
+            g.drawString(entity.getType(), 780, 679);
+            g.drawString(entity.getMajor(), 1175, 679);
+            g.drawString(entity.getClassHours(), 953, 788);
+            g.drawString(entity.getDateY(), 2280, 1599);
+            g.drawString(entity.getDateM(), 2505, 1599);
+            g.drawString(entity.getDateD(), 2712, 1599);
+            int x = 493;
+            int y = 999;
+            int i=0;
+            for(String chapterName :entity.getChapterList() ){
+                g.drawString(chapterName, x, y);
+                i++;
+                if(i%2==1){
+                    x=1650;
+                }else{
+                    x=493;
+                    y+=80;
+                }
+                if(i>7){
+                    break;
+                }
+            }
+            // 完成模板修改
+            g.dispose();
+            // 获取新文件的地址
+            File outputfile = new File(imgName);
+            // 生成新的合成过的用户二维码并写入新图片
+            ImageIO.write(imageLocal, "jpg", outputfile);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        // 返回给页面的图片地址(因为绝对路径无法访问)
+        //    imgName = Constants.PROJECT_URL + "codeImg/" + userId + ".png";
+
+        return imgName;
+    }
+
     @Override
     public List<CertificateTpVo> selectList(CertificateTpQueryBo bo) {
         return this.baseMapper.selectList(bo);

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/vo/CertificatePhotoVo.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.base.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 证书视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-10-08
+ */
+@Data
+@ApiModel("证书图片对象")
+public class CertificatePhotoVo {
+	private static final long serialVersionUID = 1L;
+	@ApiModelProperty("编号")
+	private String code;
+	@ApiModelProperty("真实姓名")
+	private String realname;
+	@ApiModelProperty("身份证号")
+	private String idCard;
+
+	@ApiModelProperty("年份")
+	private String year;
+
+	@ApiModelProperty("课程类型")
+	private String type;
+	@ApiModelProperty("专业")
+	private String major;
+	@ApiModelProperty("学时")
+	private String classHours;
+	@ApiModelProperty("章列表")
+	private List<String> chapterList;
+	@ApiModelProperty("审核日期年")
+	private String dateY;
+	@ApiModelProperty("审核日期月")
+	private String dateM;
+	@ApiModelProperty("审核日期日")
+	private String dateD;
+}