Kaynağa Gözat

生成证书

licailing 4 yıl önce
ebeveyn
işleme
bc643939a1

+ 22 - 26
src/main/h5/src/views/Home.vue

@@ -43,20 +43,6 @@
         </div>
         </div>
         <div class="base-info-item">
         <div class="base-info-item">
           <div class="text1">节目状态</div>
           <div class="text1">节目状态</div>
-          <!-- <div class="text2" v-if="info.programmeStatus == 'SUBMIT'">
-            审核中
-          </div>
-          <div class="text2" v-else-if="info.programmeStatus == 'AUDIT_FAILED'">
-            考级机构审核未通过
-          </div>
-          <div
-            class="text2"
-            v-else-if="info.programmeStatus == 'REVIEW_FAILED'"
-          >
-            审核未通过
-          </div>
-          <div class="text2" v-else>未提交</div> -->
-
           <div
           <div
             class="text2"
             class="text2"
             v-if="info.process == 0 && info.programmeStatus == 'SUBMIT'"
             v-if="info.process == 0 && info.programmeStatus == 'SUBMIT'"
@@ -89,27 +75,37 @@
       <div class="base-info">
       <div class="base-info">
         <img class="left-icon icon" src="../assets/icon_lianjie.png" alt="" />
         <img class="left-icon icon" src="../assets/icon_lianjie.png" alt="" />
         <img class="right-icon icon" src="../assets/icon_lianjie.png" alt="" />
         <img class="right-icon icon" src="../assets/icon_lianjie.png" alt="" />
-        <div v-for="(time, index) in info.participants" :key="index">
-          <div class="base-info-item">
-            <div class="text1">出生日期</div>
-            <div class="text2">
-              {{ time.birthday }}
-            </div>
-          </div>
-          <div class="base-info-item">
+        <div
+          v-for="(time, index) in info.participants"
+          :key="index"
+          style="margin-top: 12px"
+        >
+          <div class="base-info-item" v-if="time.img">
             <div class="text1">证件照</div>
             <div class="text1">证件照</div>
-            <div class="text2" v-if="!time.img">暂无</div>
-            <img
+            <!-- <img
               v-else
               v-else
-              style="width:60px;height:60px;margin-left:17px"
+              style="width:55px;height:68px;margin-left:17px"
               :src="time.img"
               :src="time.img"
               alt=""
               alt=""
+            /> -->
+            <van-image
+              fit="cover"
+              style="margin-left:17px"
+              :src="time.img"
+              width="55px"
+              height="68px"
             />
             />
           </div>
           </div>
           <div class="base-info-item">
           <div class="base-info-item">
             <div class="text1">参演人员</div>
             <div class="text1">参演人员</div>
             <div class="text2">{{ time.name }} {{ time.sex }}</div>
             <div class="text2">{{ time.name }} {{ time.sex }}</div>
           </div>
           </div>
+          <div class="base-info-item">
+            <div class="text1">出生日期</div>
+            <div class="text2">
+              {{ time.birthday }}
+            </div>
+          </div>
         </div>
         </div>
 
 
         <div class="base-info-item" v-if="isAdmin">
         <div class="base-info-item" v-if="isAdmin">
@@ -536,7 +532,7 @@ export default {
       }
       }
 
 
       .text2 {
       .text2 {
-        font-size: 16px;
+        font-size: 15px;
         margin-left: 20px;
         margin-left: 20px;
         // margin-top: 5px;
         // margin-top: 5px;
       }
       }

+ 3 - 0
src/main/java/com/izouma/wenlvju/domain/performance/Performance.java

@@ -78,6 +78,9 @@ public class Performance extends BaseEntity {
     @ApiModelProperty(value = "开启评分")
     @ApiModelProperty(value = "开启评分")
     private boolean rate;
     private boolean rate;
 
 
+    @ApiModelProperty(value = "显示奖项")
+    private boolean showAward;
+
     @Transient
     @Transient
     private long programmeNum;
     private long programmeNum;
 }
 }

+ 3 - 0
src/main/java/com/izouma/wenlvju/dto/ParticipantDTO.java

@@ -32,6 +32,9 @@ public class ParticipantDTO {
     @ApiModelProperty(value = "证书")
     @ApiModelProperty(value = "证书")
     private String certificate;
     private String certificate;
 
 
+    @ApiModelProperty(value = "奖状")
+    private String award;
+
     public ParticipantDTO(Participant participant) {
     public ParticipantDTO(Participant participant) {
         BeanUtil.copyProperties(participant, this);
         BeanUtil.copyProperties(participant, this);
     }
     }

+ 3 - 1
src/main/java/com/izouma/wenlvju/dto/ProgrammeDTO.java

@@ -113,11 +113,13 @@ public class ProgrammeDTO {
     @ExcelIgnore
     @ExcelIgnore
     private int process;
     private int process;
 
 
-
     @ExcelIgnore
     @ExcelIgnore
     @ApiModelProperty(value = "状态")
     @ApiModelProperty(value = "状态")
     private ProgrammeStatus programmeStatus;
     private ProgrammeStatus programmeStatus;
 
 
+    @ExcelIgnore
+    private String award;
+
     public ProgrammeDTO(Programme programme) {
     public ProgrammeDTO(Programme programme) {
         BeanUtil.copyProperties(programme, this);
         BeanUtil.copyProperties(programme, this);
         if (programme.getVideo() != null) {
         if (programme.getVideo() != null) {

+ 9 - 0
src/main/java/com/izouma/wenlvju/repo/performance/ProgrammeRepo.java

@@ -56,4 +56,13 @@ public interface ProgrammeRepo extends JpaRepository<Programme, Long>, JpaSpecif
 
 
     List<Programme> findAllByReviewArrangeId(Long arrangeId);
     List<Programme> findAllByReviewArrangeId(Long arrangeId);
 
 
+    @Query("select id from Programme where awardId = ?1")
+    List<Long> findAllByAwardId(Long awardId);
+
+    @Query("select id from Programme where awardId = ?1 and parentSpecialtyId = ?2")
+    List<Long> findAllByAwardIdAndParentSpecialtyId(Long awardId, Long parentSpecialtyId);
+
+    @Query("select id from Programme where awardId = ?1 and specialtyId = ?2")
+    List<Long> findAllByAwardIdAndSpecialtyId(Long awardId, Long specialtyId);
+
 }
 }

+ 32 - 6
src/main/java/com/izouma/wenlvju/service/performance/ParticipantService.java

@@ -3,6 +3,7 @@ package com.izouma.wenlvju.service.performance;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
+import com.izouma.wenlvju.domain.Award;
 import com.izouma.wenlvju.domain.performance.Participant;
 import com.izouma.wenlvju.domain.performance.Participant;
 import com.izouma.wenlvju.domain.performance.Programme;
 import com.izouma.wenlvju.domain.performance.Programme;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.dto.PageQuery;
@@ -75,7 +76,7 @@ public class ParticipantService {
         });
         });
     }
     }
 
 
-    private String createAward(Participant participant, String award) throws IOException {
+    public String createAward(Participant participant, String award) throws IOException {
         BufferedImage shareImg = ImageIO.read(this.getClass().getResourceAsStream("/static/certificate.jpeg"));
         BufferedImage shareImg = ImageIO.read(this.getClass().getResourceAsStream("/static/certificate.jpeg"));
         BufferedImage result = new BufferedImage(1100, 778, BufferedImage.TYPE_INT_RGB);
         BufferedImage result = new BufferedImage(1100, 778, BufferedImage.TYPE_INT_RGB);
         Graphics2D g = result.createGraphics();
         Graphics2D g = result.createGraphics();
@@ -91,7 +92,7 @@ public class ParticipantService {
 //        int size = Math.min(avatar.getWidth(), avatar.getHeight());
 //        int size = Math.min(avatar.getWidth(), avatar.getHeight());
 //        BufferedImage subImg = avatar
 //        BufferedImage subImg = avatar
 //                .getSubimage((avatar.getWidth() - size) / 2, (avatar.getHeight() - size) / 2, size, size);
 //                .getSubimage((avatar.getWidth() - size) / 2, (avatar.getHeight() - size) / 2, size, size);
-            BufferedImage avatarImg = new BufferedImage(68 * 2, 78 * 2, BufferedImage.TYPE_INT_ARGB);
+            BufferedImage avatarImg = new BufferedImage(68 * 2, 80 * 2, BufferedImage.TYPE_INT_ARGB);
             Graphics2D g2 = avatarImg.createGraphics();
             Graphics2D g2 = avatarImg.createGraphics();
             g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
             g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
             g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
             g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
@@ -99,9 +100,9 @@ public class ParticipantService {
             g2.setComposite(AlphaComposite.SrcOver);
             g2.setComposite(AlphaComposite.SrcOver);
             g2.setBackground(Color.GREEN);
             g2.setBackground(Color.GREEN);
 //        g2.setClip(new Ellipse2D.Float(0, 0, 68 * 2, 76 * 2)); //椭圆
 //        g2.setClip(new Ellipse2D.Float(0, 0, 68 * 2, 76 * 2)); //椭圆
-            g2.drawImage(avatar, 0, 0, 68 * 2, 78 * 2, null);
+            g2.drawImage(avatar, 0, 0, 68 * 2, 160, null);
 
 
-            g.drawImage(avatarImg, 420 * 2, 50 * 2, 68 * 2, 78 * 2, null);
+            g.drawImage(avatarImg, 420 * 2, 50 * 2, 68 * 2, 160, null);
         }
         }
 
 
 
 
@@ -129,10 +130,10 @@ public class ParticipantService {
                 .toOutputStream(out);
                 .toOutputStream(out);
         ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
         ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
 
 
-        return storageService.uploadFromInputStream(in, "/award/" + participant.getId() + ".jpg");
+        return storageService.uploadFromInputStream(in, "award/" + participant.getId() + ".jpg");
     }
     }
 
 
-    public void create(Long programmeId) {
+    public void awardByProgrammeId(Long programmeId) {
         List<Participant> participants = participantRepo.findAllByProgrammeId(programmeId);
         List<Participant> participants = participantRepo.findAllByProgrammeId(programmeId);
         if (ObjectUtil.isNull(participants)) {
         if (ObjectUtil.isNull(participants)) {
             return;
             return;
@@ -154,4 +155,29 @@ public class ParticipantService {
 
 
         participantRepo.saveAll(result);
         participantRepo.saveAll(result);
     }
     }
+
+    public void awardByAwardId(Long awardId, Long specialtyId, boolean parent) {
+        String award = awardRepo.findById(awardId).orElseThrow(new BusinessException("无奖项")).getName();
+        List<Long> programmes;
+        if (ObjectUtil.isNull(specialtyId)) {
+            programmes = programmeRepo.findAllByAwardId(awardId);
+        } else if (parent) {
+            programmes = programmeRepo.findAllByAwardIdAndParentSpecialtyId(awardId, specialtyId);
+        } else {
+            programmes = programmeRepo.findAllByAwardIdAndSpecialtyId(awardId, specialtyId);
+        }
+        List<Participant> participants = participantRepo.findAllByProgrammeIdIn(programmes);
+        List<Participant> result = new ArrayList<>();
+        participants.forEach(participant -> {
+            if (ObjectUtil.isNull(participant.getAwardImg())) {
+                try {
+                    participant.setAwardImg(this.createAward(participant, award));
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+                result.add(participant);
+            }
+        });
+        participantRepo.saveAll(result);
+    }
 }
 }

+ 2 - 2
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeService.java

@@ -101,13 +101,13 @@ public class ProgrammeService {
     public Programme save(Programme record, Long userId) {
     public Programme save(Programme record, Long userId) {
         if (record.getId() != null) {
         if (record.getId() != null) {
             Programme orig = programmeRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
             Programme orig = programmeRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
-            if (ProgrammeStatus.INITIAL.equals(orig.getProgrammeStatus())) {
+//            if (ProgrammeStatus.INITIAL.equals(orig.getProgrammeStatus())) {
 //                Performance performance = performanceRepo.findById(orig.getPerformanceId())
 //                Performance performance = performanceRepo.findById(orig.getPerformanceId())
 //                        .orElseThrow(new BusinessException("无展演活动"));
 //                        .orElseThrow(new BusinessException("无展演活动"));
 //                if (LocalDate.now().isAfter(performance.getEndDate())) {
 //                if (LocalDate.now().isAfter(performance.getEndDate())) {
 //                    throw new BusinessException("活动已报名结束!");
 //                    throw new BusinessException("活动已报名结束!");
 //                }
 //                }
-            }
+//            }
             ObjUtils.merge(orig, record);
             ObjUtils.merge(orig, record);
             orig.setParentSpecialtyId(artTypeService.getParent(orig.getSpecialtyId()));
             orig.setParentSpecialtyId(artTypeService.getParent(orig.getSpecialtyId()));
             record = programmeRepo.save(orig);
             record = programmeRepo.save(orig);

+ 13 - 1
src/main/java/com/izouma/wenlvju/web/performance/ParticipantController.java

@@ -9,9 +9,9 @@ import com.izouma.wenlvju.repo.performance.ParticipantRepo;
 import com.izouma.wenlvju.utils.ObjUtils;
 import com.izouma.wenlvju.utils.ObjUtils;
 import com.izouma.wenlvju.utils.excel.ExcelUtils;
 import com.izouma.wenlvju.utils.excel.ExcelUtils;
 
 
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
@@ -69,5 +69,17 @@ public class ParticipantController extends BaseController {
     public List<Participant> byProgramme(@RequestParam Long programmeId) {
     public List<Participant> byProgramme(@RequestParam Long programmeId) {
         return participantRepo.findAllByProgrammeId(programmeId);
         return participantRepo.findAllByProgrammeId(programmeId);
     }
     }
+
+    @ApiOperation("按节目生成证书")
+    @PostMapping("/awardByProgrammeId")
+    public void awardByProgrammeId(@RequestParam Long programmeId) {
+        participantService.awardByProgrammeId(programmeId);
+    }
+
+    @ApiOperation("按奖状生成证书")
+    @PostMapping("/awardByAwardId")
+    public void awardByAwardId(@RequestParam Long awardId, Long specialtyId, boolean parent) {
+        participantService.awardByAwardId(awardId, specialtyId, parent);
+    }
 }
 }
 
 

+ 2 - 1
src/main/vue/src/plugins/http.js

@@ -7,7 +7,8 @@ switch (process.env.NODE_ENV) {
     case 'development':
     case 'development':
         // baseUrl = 'http://localhost:8080';
         // baseUrl = 'http://localhost:8080';
         // baseUrl = 'http://wljtest.izouma.com';
         // baseUrl = 'http://wljtest.izouma.com';
-        baseUrl = 'http://192.168.50.190:8080';
+        // baseUrl = 'http://192.168.50.190:8080';
+        baseUrl = "http://yskj.njlyw.cn:8081";
         break;
         break;
     case 'test':
     case 'test':
         baseUrl = 'http://localhost:8080';
         baseUrl = 'http://localhost:8080';

+ 18 - 18
src/main/vue/src/router.js

@@ -848,26 +848,26 @@ const router = new Router({
             meta: {
             meta: {
                 title: '登录'
                 title: '登录'
             }
             }
-        },
+        }
         /**初审 */
         /**初审 */
-        {
-            path: '/programmeGOList',
-            name: 'ProgrammegoList',
-            component: () => import(/* webpackChunkName: "programmeList" */ '@/views/performance/ProgrammeGOList.vue'),
-            meta: {
-                title: '节目列表'
-            }
-        },
+        // {
+        //     path: '/programmeGOList',
+        //     name: 'ProgrammegoList',
+        //     component: () => import(/* webpackChunkName: "programmeList" */ '@/views/performance/ProgrammeGOList.vue'),
+        //     meta: {
+        //         title: '节目列表'
+        //     }
+        // },
         /**节目评审 */
         /**节目评审 */
-        {
-            path: '/programmeScoreList',
-            name: 'ProgrammeScoreList',
-            component: () =>
-                import(/* webpackChunkName: "programmeScoreList" */ '@/views/performance/ProgrammeScoreList.vue'),
-            meta: {
-                title: '节目评审'
-            }
-        }
+        // {
+        //     path: '/programmeScoreList',
+        //     name: 'ProgrammeScoreList',
+        //     component: () =>
+        //         import(/* webpackChunkName: "programmeScoreList" */ '@/views/performance/ProgrammeScoreList.vue'),
+        //     meta: {
+        //         title: '节目评审'
+        //     }
+        // }
     ]
     ]
 });
 });
 router.beforeEach((to, from, next) => {
 router.beforeEach((to, from, next) => {

+ 1 - 37
src/main/vue/src/views/performance/ProgrammeOrgList.vue

@@ -235,7 +235,7 @@
                     <sortable-header :column="column" :current-sort="sort" @changeSort="changeSort"> </sortable-header>
                     <sortable-header :column="column" :current-sort="sort" @changeSort="changeSort"> </sortable-header>
                 </template>
                 </template>
             </el-table-column>
             </el-table-column>
-            <el-table-column prop="programmeStatus" label="节目状态" min-width="180">
+            <el-table-column prop="programmeStatus" label="节目状态" min-width="100">
                 <template slot="header" slot-scope="{ column }">
                 <template slot="header" slot-scope="{ column }">
                     <sortable-header :column="column" :current-sort="sort" @changeSort="changeSort"> </sortable-header>
                     <sortable-header :column="column" :current-sort="sort" @changeSort="changeSort"> </sortable-header>
                 </template>
                 </template>
@@ -261,41 +261,6 @@
                         v-if="row.programmeStatus == 'INITIAL' && add"
                         v-if="row.programmeStatus == 'INITIAL' && add"
                         >编辑</el-button
                         >编辑</el-button
                     >
                     >
-                    <!-- <el-button
-                        type="warning"
-                        @click="playImg(row)"
-                        v-if="
-                            row.specialty == '中国画' ||
-                                row.specialty == '美术' ||
-                                row.specialty == '西画' ||
-                                row.specialty == '书法' ||
-                                row.specialty == '漫画' ||
-                                row.specialty == '手工技艺' ||
-                                row.specialty == '摄影' ||
-                                row.specialty == '篆刻' ||
-                                row.specialty == '人物' ||
-                                row.specialty == '山水' ||
-                                row.specialty == '花鸟' ||
-                                row.specialty == '素描' ||
-                                row.specialty == '速写' ||
-                                row.specialty == '水粉画' ||
-                                row.specialty == '水彩画' ||
-                                row.specialty == '油画' ||
-                                row.specialty == '软笔书法' ||
-                                row.specialty == '硬笔书法' ||
-                                row.specialty == '剪纸' ||
-                                row.specialty == '泥塑' ||
-                                row.specialty == '年画' ||
-                                row.specialty == '皮影制作' ||
-                                row.specialty == '陶艺' ||
-                                row.specialty == '染织' ||
-                                row.specialty == '版画'
-                        "
-                        size="mini"
-                        plain
-                        >浏览图片</el-button
-                    >
-                    <el-button type="warning" @click="playVideo(row)" v-else size="mini" plain>浏览视频</el-button> -->
                     <el-button type="warning" @click="playVideo(row, $index)" size="mini" plain>查看作品</el-button>
                     <el-button type="warning" @click="playVideo(row, $index)" size="mini" plain>查看作品</el-button>
                     <el-button
                     <el-button
                         @click="showCode(row)"
                         @click="showCode(row)"
@@ -305,7 +270,6 @@
                         v-if="row.programmeStatus != 'INITIAL'"
                         v-if="row.programmeStatus != 'INITIAL'"
                         >查看二维码</el-button
                         >查看二维码</el-button
                     >
                     >
-                    <!-- <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button> -->
                 </template>
                 </template>
             </el-table-column>
             </el-table-column>
         </el-table>
         </el-table>

+ 30 - 3
src/test/java/com/izouma/wenlvju/service/performance/ParticipantServiceTest.java

@@ -2,8 +2,12 @@ package com.izouma.wenlvju.service.performance;
 
 
 
 
 import com.izouma.wenlvju.ApplicationTests;
 import com.izouma.wenlvju.ApplicationTests;
+import com.izouma.wenlvju.domain.performance.Participant;
+import com.izouma.wenlvju.exception.BusinessException;
+import com.izouma.wenlvju.repo.performance.ParticipantRepo;
 import net.coobird.thumbnailator.Thumbnails;
 import net.coobird.thumbnailator.Thumbnails;
 import org.junit.Test;
 import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 
 
 import javax.imageio.ImageIO;
 import javax.imageio.ImageIO;
 import java.awt.*;
 import java.awt.*;
@@ -13,6 +17,11 @@ import java.net.URL;
 
 
 public class ParticipantServiceTest extends ApplicationTests {
 public class ParticipantServiceTest extends ApplicationTests {
 
 
+    @Autowired
+    private ParticipantService participantService;
+    @Autowired
+    private ParticipantRepo    participantRepo;
+
     @Test
     @Test
     public void test() throws IOException {
     public void test() throws IOException {
         BufferedImage shareImg = ImageIO.read(this.getClass().getResourceAsStream("/static/certificate.jpeg"));
         BufferedImage shareImg = ImageIO.read(this.getClass().getResourceAsStream("/static/certificate.jpeg"));
@@ -29,7 +38,8 @@ public class ParticipantServiceTest extends ApplicationTests {
 //        int size = Math.min(avatar.getWidth(), avatar.getHeight());
 //        int size = Math.min(avatar.getWidth(), avatar.getHeight());
 //        BufferedImage subImg = avatar
 //        BufferedImage subImg = avatar
 //                .getSubimage((avatar.getWidth() - size) / 2, (avatar.getHeight() - size) / 2, size, size);
 //                .getSubimage((avatar.getWidth() - size) / 2, (avatar.getHeight() - size) / 2, size, size);
-        BufferedImage avatarImg = new BufferedImage(68 * 2, 78 * 2, BufferedImage.TYPE_INT_ARGB);
+
+        BufferedImage avatarImg = new BufferedImage(68 * 2, 80 * 2, BufferedImage.TYPE_INT_ARGB);
         Graphics2D g2 = avatarImg.createGraphics();
         Graphics2D g2 = avatarImg.createGraphics();
         g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
         g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
         g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
         g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
@@ -37,9 +47,10 @@ public class ParticipantServiceTest extends ApplicationTests {
         g2.setComposite(AlphaComposite.SrcOver);
         g2.setComposite(AlphaComposite.SrcOver);
         g2.setBackground(Color.GREEN);
         g2.setBackground(Color.GREEN);
 //        g2.setClip(new Ellipse2D.Float(0, 0, 68 * 2, 76 * 2)); //椭圆
 //        g2.setClip(new Ellipse2D.Float(0, 0, 68 * 2, 76 * 2)); //椭圆
-        g2.drawImage(avatar, 0, 0, 68 * 2, 78 * 2, null);
 
 
-        g.drawImage(avatarImg, 420 * 2, 50 * 2, 68 * 2, 78 * 2, null);
+        g2.drawImage(avatar, 0, 0, 68 * 2, 160, null);
+
+        g.drawImage(avatarImg, 420 * 2, 50 * 2, 68 * 2, 160, null);
 
 
 
 
         // 文字
         // 文字
@@ -74,4 +85,20 @@ public class ParticipantServiceTest extends ApplicationTests {
 
 
     }
     }
 
 
+    @Test
+    public void test2() {
+        try {
+            new URL("http://yskj.njlyw.cn:8081/files/image/idno/320115201107050346Certificate.jpg");
+//            BufferedImage avatar = ImageIO.read(new URL("http://yskj.njlyw.cn:8081/files/image/idno/320115201107050346Certificate.jpg"));
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void test3() throws IOException {
+        Participant participant = participantRepo.findById(3048L).orElseThrow(new BusinessException("无记录"));
+        System.out.println(participantService.createAward(participant, "二等奖"));
+    }
+
 }
 }