Browse Source

Merge branch 'master' of http://git.ycjcjy.com/pet_identity/service

张延森 3 years ago
parent
commit
51fd04fd56

+ 20
- 0
src/main/java/com/njyunzhi/pet_identity/common/ExcelUtils.java View File

14
 import org.apache.poi.xssf.usermodel.XSSFColor;
14
 import org.apache.poi.xssf.usermodel.XSSFColor;
15
 
15
 
16
 import javax.servlet.http.HttpServletResponse;
16
 import javax.servlet.http.HttpServletResponse;
17
+import java.io.ByteArrayOutputStream;
17
 import java.io.IOException;
18
 import java.io.IOException;
19
+import java.io.OutputStream;
18
 import java.util.List;
20
 import java.util.List;
19
 
21
 
20
 public class ExcelUtils {
22
 public class ExcelUtils {
70
         return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
72
         return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
71
     }
73
     }
72
 
74
 
75
+    /**
76
+     * 内存生成 Excel
77
+     * @param dataClass
78
+     * @param data
79
+     * @param style
80
+     * @return
81
+     */
82
+    public static byte[] buildExcel(Class dataClass, List data, HorizontalCellStyleStrategy style) {
83
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream(128);
84
+        ExcelWriterBuilder builder = EasyExcel.write(outputStream, dataClass);
85
+        if (null == style) {
86
+            style = defaultStyle();
87
+            builder.registerWriteHandler(style);
88
+        }
89
+        builder.autoCloseStream(Boolean.TRUE).sheet("sheet1").doWrite(data);
90
+        return outputStream.toByteArray();
91
+    }
92
+
73
     /**
93
     /**
74
      * 发送 excel 到客户端
94
      * 发送 excel 到客户端
75
      * 暂时只支持单 sheet 页
95
      * 暂时只支持单 sheet 页

+ 57
- 10
src/main/java/com/njyunzhi/pet_identity/common/ZipUtil.java View File

1
 package com.njyunzhi.pet_identity.common;
1
 package com.njyunzhi.pet_identity.common;
2
 
2
 
3
-import com.alibaba.excel.EasyExcel;
4
-import com.alibaba.excel.write.builder.ExcelWriterBuilder;
5
 import com.alibaba.fastjson.JSON;
3
 import com.alibaba.fastjson.JSON;
6
 import lombok.Data;
4
 import lombok.Data;
7
-import net.lingala.zip4j.ZipFile;
8
-import net.lingala.zip4j.exception.ZipException;
9
 import net.lingala.zip4j.io.outputstream.ZipOutputStream;
5
 import net.lingala.zip4j.io.outputstream.ZipOutputStream;
10
 import net.lingala.zip4j.model.ZipParameters;
6
 import net.lingala.zip4j.model.ZipParameters;
11
 import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.beans.factory.annotation.Autowired;
13
 
9
 
14
 import javax.servlet.http.HttpServletResponse;
10
 import javax.servlet.http.HttpServletResponse;
15
 import java.io.*;
11
 import java.io.*;
16
-import java.nio.ByteBuffer;
17
-import java.nio.channels.Channels;
18
-import java.nio.channels.ReadableByteChannel;
19
-import java.nio.channels.WritableByteChannel;
20
 import java.time.LocalDateTime;
12
 import java.time.LocalDateTime;
21
 import java.time.ZoneId;
13
 import java.time.ZoneId;
22
 import java.time.format.DateTimeFormatter;
14
 import java.time.format.DateTimeFormatter;
34
         return LocalDateTime.now(ZoneId.of("Asia/Shanghai")).format(formatter);
26
         return LocalDateTime.now(ZoneId.of("Asia/Shanghai")).format(formatter);
35
     }
27
     }
36
 
28
 
37
-    private void zipStream(List<RFile> files, OutputStream outputStream) throws IOException {
29
+    private void zipImages(List<RFile> files, OutputStream outputStream) throws IOException {
38
         ZipOutputStream zos = new ZipOutputStream(outputStream);
30
         ZipOutputStream zos = new ZipOutputStream(outputStream);
39
         ZipParameters zipParameters = new ZipParameters();
31
         ZipParameters zipParameters = new ZipParameters();
40
 
32
 
48
         zos.close();
40
         zos.close();
49
     }
41
     }
50
 
42
 
43
+    private void zipFiles(List<ZFile> files, OutputStream outputStream) throws IOException {
44
+        ZipOutputStream zos = new ZipOutputStream(outputStream);
45
+        ZipParameters zipParameters = new ZipParameters();
46
+
47
+        for (ZFile f : files) {
48
+            zipParameters.setFileNameInZip(f.getName());
49
+            zos.putNextEntry(zipParameters);
50
+            zos.write(f.getData());
51
+            zos.closeEntry();
52
+        }
53
+        zos.close();
54
+    }
55
+
56
+    /**
57
+     * 打包远程文件,并导出
58
+     * @param response
59
+     * @param files
60
+     * @throws IOException
61
+     */
51
     public void flush(HttpServletResponse response, List<RFile> files) throws IOException {
62
     public void flush(HttpServletResponse response, List<RFile> files) throws IOException {
52
         try {
63
         try {
53
             if (files == null || files.size() < 1) {
64
             if (files == null || files.size() < 1) {
58
             response.setContentType("application/zip");
69
             response.setContentType("application/zip");
59
             response.setCharacterEncoding("utf-8");
70
             response.setCharacterEncoding("utf-8");
60
             response.setHeader("Content-disposition", "attachment;filename="+StringUtils.urlEncode(fileName));
71
             response.setHeader("Content-disposition", "attachment;filename="+StringUtils.urlEncode(fileName));
61
-            zipStream(files, response.getOutputStream());
72
+            zipImages(files, response.getOutputStream());
73
+            response.flushBuffer();
74
+        } catch (Exception e) {
75
+            e.printStackTrace();
76
+
77
+            // 重置response
78
+            response.reset();
79
+            response.setContentType("application/json");
80
+            response.setCharacterEncoding("utf-8");
81
+            ResponseBean res = ResponseBean.error(e.getMessage(), ResponseBean.ERROR_UNAVAILABLE);
82
+            response.getWriter().println(JSON.toJSONString(res));
83
+        }
84
+    }
85
+
86
+    /**
87
+     * 打包文件,并导出
88
+     * @param response
89
+     * @param files
90
+     * @throws IOException
91
+     */
92
+    public void flushMixFile(HttpServletResponse response, List<ZFile> files) throws IOException {
93
+        try {
94
+            if (files == null || files.size() < 1) {
95
+                throw new Exception("导出内容为空");
96
+            }
97
+
98
+            String fileName = today() + ".zip";
99
+            response.setContentType("application/zip");
100
+            response.setCharacterEncoding("utf-8");
101
+            response.setHeader("Content-disposition", "attachment;filename="+StringUtils.urlEncode(fileName));
102
+            zipFiles(files, response.getOutputStream());
62
             response.flushBuffer();
103
             response.flushBuffer();
63
         } catch (Exception e) {
104
         } catch (Exception e) {
64
             e.printStackTrace();
105
             e.printStackTrace();
77
         String url;
118
         String url;
78
         String name;
119
         String name;
79
     }
120
     }
121
+
122
+    @Data
123
+    public static class ZFile {
124
+        byte[] data;
125
+        String name;
126
+    }
80
 }
127
 }

+ 113
- 27
src/main/java/com/njyunzhi/pet_identity/controller/TaApplicationController.java View File

3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
-import com.njyunzhi.pet_identity.common.BaseController;
7
-import com.njyunzhi.pet_identity.common.Constants;
8
-import com.njyunzhi.pet_identity.common.ResponseBean;
9
-import com.njyunzhi.pet_identity.common.StringUtils;
6
+import com.njyunzhi.pet_identity.common.*;
10
 import com.njyunzhi.pet_identity.entity.*;
7
 import com.njyunzhi.pet_identity.entity.*;
11
 import com.njyunzhi.pet_identity.service.ITaCardNoService;
8
 import com.njyunzhi.pet_identity.service.ITaCardNoService;
12
 import com.njyunzhi.pet_identity.service.ITaOrderService;
9
 import com.njyunzhi.pet_identity.service.ITaOrderService;
27
 import com.njyunzhi.pet_identity.service.ITaApplicationService;
24
 import com.njyunzhi.pet_identity.service.ITaApplicationService;
28
 import org.springframework.web.bind.annotation.RestController;
25
 import org.springframework.web.bind.annotation.RestController;
29
 
26
 
27
+import javax.servlet.http.HttpServletResponse;
30
 import java.time.LocalDateTime;
28
 import java.time.LocalDateTime;
31
 import java.util.ArrayList;
29
 import java.util.ArrayList;
30
+import java.util.List;
32
 
31
 
33
 /**
32
 /**
34
  * <p>
33
  * <p>
58
     @Autowired
57
     @Autowired
59
     public ITaCardNoService iTaCardNoService;
58
     public ITaCardNoService iTaCardNoService;
60
 
59
 
60
+    @Autowired
61
+    HttpUtils httpUtils;
62
+
63
+    @Autowired
64
+    ZipUtil zipUtil;
65
+
61
     /**
66
     /**
62
      * 分页查询列表
67
      * 分页查询列表
63
      * @param pageNum
68
      * @param pageNum
140
         return ResponseBean.success(result);
145
         return ResponseBean.success(result);
141
     }
146
     }
142
 
147
 
148
+    @RequestMapping(value="/admin/application/card/export",method= RequestMethod.POST)
149
+    @ApiOperation(value="发证导出", notes = "发证导出", httpMethod = "POST", response = ResponseBean.class)
150
+    public ResponseBean exportCard(@ApiParam("证件号列表") @RequestBody List<String> cardNoList,
151
+                                   HttpServletResponse response) throws Exception {
152
+        List<TaPetIdentity> taPetIdentityList = iTaPetIdentityService.getListByCard(cardNoList);
153
+
154
+        if (null == taPetIdentityList || taPetIdentityList.size() < 1) {
155
+            return ResponseBean.error("未找到导出数据");
156
+        }
157
+
158
+        List<ZipUtil.ZFile> zipFiles = new ArrayList<>();
159
+
160
+        // 批量生成图片
161
+        for (TaPetIdentity item : taPetIdentityList) {
162
+            // 如果是企业
163
+            if (!StringUtils.isEmpty(item.getOrgName())) {
164
+                item.setPersonName(item.getOrgName());
165
+            }
166
+
167
+            // 下载图片
168
+            if (!StringUtils.isEmpty(item.getPetImg1())) {
169
+                ZipUtil.ZFile f = buildImage(item.getPetImg1());
170
+                zipFiles.add(f);
171
+                item.setPetImg1(StringUtils.trimEnd(f.getName(), ".jpg"));
172
+            }
173
+            if (!StringUtils.isEmpty(item.getQrImage())) {
174
+                ZipUtil.ZFile f = buildImage(item.getQrImage());
175
+                zipFiles.add(f);
176
+                item.setQrImage(StringUtils.trimEnd(f.getName(), ".jpg"));
177
+            }
178
+        }
179
+
180
+        // 生成 excel 文档
181
+        byte[] excelData = ExcelUtils.buildExcel(TaPetIdentity.class, taPetIdentityList, null);
182
+        ZipUtil.ZFile f = new ZipUtil.ZFile();
183
+        String fname = StringUtils.random(16);
184
+        f.setName(fname + ".xlsx");
185
+        f.setData(excelData);
186
+        zipFiles.add(f);
187
+
188
+        zipUtil.flushMixFile(response, zipFiles);
189
+        return null;
190
+    }
191
+
192
+    private ZipUtil.ZFile buildImage(String imgURL) {
193
+        ZipUtil.ZFile f = new ZipUtil.ZFile();
194
+        String fname = StringUtils.random(16);
195
+        f.setName(fname + ".jpg");
196
+        f.setData(httpUtils.download(imgURL));
197
+        return f;
198
+    }
199
+
143
 
200
 
144
     /**
201
     /**
145
      * 分页查询列表
202
      * 分页查询列表
371
         }
428
         }
372
     }
429
     }
373
 
430
 
431
+    /**
432
+     * 绑卡
433
+     * @param id  实体ID
434
+     * @param makeCardParam 实体对象
435
+     * @return
436
+     */
437
+    @RequestMapping(value="/admin/application/{id}/bindCard",method= RequestMethod.PUT)
438
+    @ApiOperation(value="绑卡", notes = "绑卡", httpMethod = "PUT", response = ResponseBean.class)
439
+    public ResponseBean bindCard(@ApiParam("对象ID") @PathVariable Integer id,
440
+                                 @ApiParam("更新内容") @RequestBody MakeCardParam makeCardParam) throws Exception{
441
+        SysUser sysUser = currentUser();
442
+        if (!checkRole(sysUser.getRoleName(), Constants.USER_MAKER)) {
443
+            return ResponseBean.error("暂无权限");
444
+        }
445
+
446
+        TaApplication taApplication = iTaApplicationService.getById(id);
447
+        if (null == taApplication || taApplication.getStatus() == Constants.STATUS_DELETE) {
448
+            return ResponseBean.error("未找到数据");
449
+        }
450
+
451
+        if (StringUtils.isEmpty(makeCardParam.getCardNo())) {
452
+            return ResponseBean.error("卡号不能为空");
453
+        } else {
454
+            TaCardNo taCardNo = iTaCardNoService.getUnuseCard(makeCardParam.getCardNo());
455
+            if (taCardNo == null) {
456
+                return ResponseBean.error("卡号无效或者已使用");
457
+            }
458
+
459
+            // 将卡号置为已使用
460
+            taCardNo.setStatus(Constants.STATUS_NORMAL);
461
+            iTaCardNoService.updateById(taCardNo);
462
+
463
+            TaPetIdentity taPetIdentity = iTaPetIdentityService.getExistBy("card_no", makeCardParam.getCardNo(), false, true);
464
+            if (null != taPetIdentity) {
465
+                return ResponseBean.error("卡号已被占用");
466
+            }
467
+        }
468
+
469
+        taApplication.setOriginCardNo(makeCardParam.getCardNo());
470
+        iTaApplicationService.updateById(taApplication);
471
+        TaPetIdentity newCard = iTaPetIdentityService.createNewCard(taApplication, makeCardParam);
472
+        return ResponseBean.success(newCard);
473
+    }
474
+
475
+
374
     /**
476
     /**
375
      * 发证
477
      * 发证
376
      * @param id  实体ID
478
      * @param id  实体ID
415
             }
517
             }
416
         }
518
         }
417
 
519
 
418
-        if (StringUtils.isEmpty(makeCardParam.getCardNo())) {
419
-            return ResponseBean.error("卡号不能为空");
420
-        } else {
421
-            TaCardNo taCardNo = iTaCardNoService.getUnuseCard(makeCardParam.getCardNo());
422
-            if (taCardNo == null) {
423
-                return ResponseBean.error("卡号无效或者已使用");
424
-            }
425
-
426
-            // 将卡号置为已使用
427
-            taCardNo.setStatus(Constants.STATUS_NORMAL);
428
-            iTaCardNoService.updateById(taCardNo);
429
-
430
-            TaPetIdentity taPetIdentity = iTaPetIdentityService.getExistBy("card_no", makeCardParam.getCardNo(), false, true);
431
-            if (null != taPetIdentity) {
432
-                return ResponseBean.error("卡号已被占用");
433
-            }
434
-        }
435
-
436
-        // 关联证件
437
-        taApplication.setOriginCardNo(makeCardParam.getCardNo());
438
         taApplication.setMakeStatus(Constants.MAKE_STATUS_MADE);
520
         taApplication.setMakeStatus(Constants.MAKE_STATUS_MADE);
439
         taApplication.setMakeDate(LocalDateTime.now());
521
         taApplication.setMakeDate(LocalDateTime.now());
440
         taApplication.setMakeUser(sysUser.getUserId());
522
         taApplication.setMakeUser(sysUser.getUserId());
443
         taApplication.setTrackingNo(makeCardParam.getTrackingNo());
525
         taApplication.setTrackingNo(makeCardParam.getTrackingNo());
444
         taApplication.setStatus(Constants.WORKFLOW_STATUS_MADE);
526
         taApplication.setStatus(Constants.WORKFLOW_STATUS_MADE);
445
 
527
 
446
-        if (iTaApplicationService.updateById(taApplication)){
447
-            TaPetIdentity newCard = iTaPetIdentityService.createNewCard(taApplication, makeCardParam);
528
+        TaPetIdentity taPetIdentity = iTaPetIdentityService.getExistBy("card_no", taApplication.getOriginCardNo(), false, true);
529
+        if (!taApplication.getApplyType().equals(Constants.APPLY_TYPE_REISSUE)) {
530
+            // 新办 续期,都需要重置有效期
531
+            iTaPetIdentityService.updateCardDate(taPetIdentity.getCardNo());
532
+        }
448
 
533
 
449
-            return ResponseBean.success(newCard);
534
+        if (iTaApplicationService.updateById(taApplication)){
535
+            return ResponseBean.success(taApplication);
450
         } else {
536
         } else {
451
             return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
537
             return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
452
         }
538
         }

+ 39
- 0
src/main/java/com/njyunzhi/pet_identity/entity/TaPetIdentity.java View File

1
 package com.njyunzhi.pet_identity.entity;
1
 package com.njyunzhi.pet_identity.entity;
2
 
2
 
3
+import com.alibaba.excel.annotation.ExcelIgnore;
4
+import com.alibaba.excel.annotation.ExcelProperty;
3
 import com.baomidou.mybatisplus.annotation.IdType;
5
 import com.baomidou.mybatisplus.annotation.IdType;
4
 import java.time.LocalDateTime;
6
 import java.time.LocalDateTime;
7
+
8
+import com.baomidou.mybatisplus.annotation.TableField;
5
 import com.baomidou.mybatisplus.annotation.TableId;
9
 import com.baomidou.mybatisplus.annotation.TableId;
6
 import java.io.Serializable;
10
 import java.io.Serializable;
7
 import io.swagger.annotations.ApiModel;
11
 import io.swagger.annotations.ApiModel;
24
 @ApiModel(value="TaPetIdentity对象", description="宠物证件")
28
 @ApiModel(value="TaPetIdentity对象", description="宠物证件")
25
 public class TaPetIdentity implements Serializable {
29
 public class TaPetIdentity implements Serializable {
26
 
30
 
31
+    @ExcelIgnore
27
     private static final long serialVersionUID = 1L;
32
     private static final long serialVersionUID = 1L;
28
 
33
 
34
+    @ExcelIgnore
29
     @ApiModelProperty(value = "证件ID")
35
     @ApiModelProperty(value = "证件ID")
30
     @TableId(value = "card_id", type = IdType.UUID)
36
     @TableId(value = "card_id", type = IdType.UUID)
31
     private String cardId;
37
     private String cardId;
32
 
38
 
39
+    @ExcelProperty(value = "证件号码", index = 6)
33
     @ApiModelProperty(value = "证件号码")
40
     @ApiModelProperty(value = "证件号码")
34
     private String cardNo;
41
     private String cardNo;
35
 
42
 
43
+    @ExcelIgnore
36
     @ApiModelProperty(value = "属主ID")
44
     @ApiModelProperty(value = "属主ID")
37
     private String personId;
45
     private String personId;
38
 
46
 
47
+    @ExcelProperty(value = "犬主", index = 1)
39
     @ApiModelProperty(value = "属主姓名")
48
     @ApiModelProperty(value = "属主姓名")
40
     private String personName;
49
     private String personName;
41
 
50
 
51
+    @ExcelIgnore
42
     @ApiModelProperty(value = "属主手机")
52
     @ApiModelProperty(value = "属主手机")
43
     private String phone;
53
     private String phone;
44
 
54
 
55
+    @ExcelIgnore
45
     @ApiModelProperty(value = "宠物ID")
56
     @ApiModelProperty(value = "宠物ID")
46
     private String petId;
57
     private String petId;
47
 
58
 
59
+    @ExcelProperty(value = "犬名", index = 2)
48
     @ApiModelProperty(value = "宠物名称")
60
     @ApiModelProperty(value = "宠物名称")
49
     private String petName;
61
     private String petName;
50
 
62
 
63
+    @ExcelIgnore
51
     @ApiModelProperty(value = "宠物性别")
64
     @ApiModelProperty(value = "宠物性别")
52
     private Integer petSex;
65
     private Integer petSex;
53
 
66
 
67
+    @ExcelProperty(value = "毛色", index = 4)
54
     @ApiModelProperty(value = "毛色")
68
     @ApiModelProperty(value = "毛色")
55
     private String petColor;
69
     private String petColor;
56
 
70
 
71
+    @ExcelProperty(value = "犬种", index = 3)
57
     @ApiModelProperty(value = "宠物类别")
72
     @ApiModelProperty(value = "宠物类别")
58
     private String petType;
73
     private String petType;
59
 
74
 
75
+    @ExcelProperty(value = "狗照片", index = 7)
60
     @ApiModelProperty(value = "宠物照片")
76
     @ApiModelProperty(value = "宠物照片")
61
     private String petImg1;
77
     private String petImg1;
62
 
78
 
79
+    @ExcelIgnore
63
     @ApiModelProperty(value = "宠物照片")
80
     @ApiModelProperty(value = "宠物照片")
64
     private String petImg2;
81
     private String petImg2;
65
 
82
 
83
+    @ExcelProperty(value = "地址", index = 5)
66
     @ApiModelProperty(value = "详细地址")
84
     @ApiModelProperty(value = "详细地址")
67
     private String address;
85
     private String address;
68
 
86
 
87
+    @ExcelIgnore
69
     @ApiModelProperty(value = "起始期;格式YYYY-MM-DD")
88
     @ApiModelProperty(value = "起始期;格式YYYY-MM-DD")
70
     private String startDate;
89
     private String startDate;
71
 
90
 
91
+    @ExcelIgnore
72
     @ApiModelProperty(value = "有效期;格式YYYY-MM-DD")
92
     @ApiModelProperty(value = "有效期;格式YYYY-MM-DD")
73
     private String expireDate;
93
     private String expireDate;
74
 
94
 
95
+    @ExcelIgnore
75
     @ApiModelProperty(value = "状态;1正常,2挂失,3过期")
96
     @ApiModelProperty(value = "状态;1正常,2挂失,3过期")
76
     private Integer status;
97
     private Integer status;
77
 
98
 
99
+    @ExcelIgnore
78
     @ApiModelProperty(value = "创建日期")
100
     @ApiModelProperty(value = "创建日期")
79
     private LocalDateTime createDate;
101
     private LocalDateTime createDate;
80
 
102
 
103
+    @ExcelIgnore
81
     @ApiModelProperty(value = "是否企业",notes = "")
104
     @ApiModelProperty(value = "是否企业",notes = "")
82
     private Boolean isOrg ;
105
     private Boolean isOrg ;
106
+
107
+    @ExcelIgnore
83
     @ApiModelProperty(value = "企业ID",notes = "")
108
     @ApiModelProperty(value = "企业ID",notes = "")
84
     private String orgId ;
109
     private String orgId ;
110
+
111
+    @ExcelIgnore
85
     @ApiModelProperty(value = "企业名称",notes = "")
112
     @ApiModelProperty(value = "企业名称",notes = "")
86
     private String orgName ;
113
     private String orgName ;
114
+
115
+    @ExcelIgnore
87
     @ApiModelProperty(value = "营业执照",notes = "")
116
     @ApiModelProperty(value = "营业执照",notes = "")
88
     private String orgLicense ;
117
     private String orgLicense ;
118
+
119
+    @ExcelIgnore
89
     @ApiModelProperty(value = "伤人信息",notes = "")
120
     @ApiModelProperty(value = "伤人信息",notes = "")
90
     private String criminalInfo ;
121
     private String criminalInfo ;
122
+
123
+    @ExcelIgnore
91
     @ApiModelProperty(value = "处罚信息",notes = "")
124
     @ApiModelProperty(value = "处罚信息",notes = "")
92
     private String penaltyInfo ;
125
     private String penaltyInfo ;
126
+
127
+    @ExcelProperty(value = "小程序码", index = 8)
128
+    @TableField(exist = false)
129
+    @ApiModelProperty(value = "二维码",notes = "")
130
+    private String qrImage ;
131
+
93
 }
132
 }

+ 5
- 0
src/main/java/com/njyunzhi/pet_identity/mapper/TaPetIdentityMapper.java View File

3
 import com.njyunzhi.pet_identity.entity.TaPetIdentity;
3
 import com.njyunzhi.pet_identity.entity.TaPetIdentity;
4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import org.apache.ibatis.annotations.Mapper;
5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6
 import org.apache.ibatis.annotations.Select;
7
 import org.apache.ibatis.annotations.Select;
7
 
8
 
9
+import java.util.List;
10
+
8
 /**
11
 /**
9
  * <p>
12
  * <p>
10
  * 宠物证件 Mapper 接口
13
  * 宠物证件 Mapper 接口
18
 
21
 
19
     @Select("SELECT COUNT(*) FROM ta_pet_identity WHERE status > -1")
22
     @Select("SELECT COUNT(*) FROM ta_pet_identity WHERE status > -1")
20
     int countNotDelete();
23
     int countNotDelete();
24
+
25
+    List<TaPetIdentity> getListByCard(@Param("cardNoList") List<String> cardNoList);
21
 }
26
 }

+ 6
- 0
src/main/java/com/njyunzhi/pet_identity/service/ITaPetIdentityService.java View File

4
 import com.njyunzhi.pet_identity.entity.TaPetIdentity;
4
 import com.njyunzhi.pet_identity.entity.TaPetIdentity;
5
 import com.njyunzhi.pet_identity.vo.MakeCardParam;
5
 import com.njyunzhi.pet_identity.vo.MakeCardParam;
6
 
6
 
7
+import java.util.List;
8
+
7
 /**
9
 /**
8
  * <p>
10
  * <p>
9
  * 宠物证件 服务类
11
  * 宠物证件 服务类
16
 
18
 
17
     TaPetIdentity createNewCard(TaApplication taApplication, MakeCardParam makeCardParam) throws Exception;
19
     TaPetIdentity createNewCard(TaApplication taApplication, MakeCardParam makeCardParam) throws Exception;
18
 
20
 
21
+    boolean updateCardDate(String cardNo) throws Exception;
22
+
19
     boolean extendDate(TaPetIdentity taPetIdentity) throws Exception;
23
     boolean extendDate(TaPetIdentity taPetIdentity) throws Exception;
20
 
24
 
21
     TaPetIdentity getByPet(String petId, String personId);
25
     TaPetIdentity getByPet(String petId, String personId);
22
 
26
 
23
     int countNotDelete();
27
     int countNotDelete();
28
+
29
+    List<TaPetIdentity> getListByCard(List<String> cardNoList);
24
 }
30
 }

+ 27
- 5
src/main/java/com/njyunzhi/pet_identity/service/impl/TaPetIdentityServiceImpl.java View File

1
 package com.njyunzhi.pet_identity.service.impl;
1
 package com.njyunzhi.pet_identity.service.impl;
2
 
2
 
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4
 import com.njyunzhi.pet_identity.common.Constants;
5
 import com.njyunzhi.pet_identity.common.Constants;
5
 import com.njyunzhi.pet_identity.common.DateUtils;
6
 import com.njyunzhi.pet_identity.common.DateUtils;
6
 import com.njyunzhi.pet_identity.entity.SysSetting;
7
 import com.njyunzhi.pet_identity.entity.SysSetting;
15
 
16
 
16
 import java.time.LocalDateTime;
17
 import java.time.LocalDateTime;
17
 import java.time.ZoneId;
18
 import java.time.ZoneId;
19
+import java.util.List;
18
 
20
 
19
 /**
21
 /**
20
  * <p>
22
  * <p>
33
     @Override
35
     @Override
34
     public TaPetIdentity createNewCard(TaApplication taApplication, MakeCardParam makeCardParam) throws Exception {
36
     public TaPetIdentity createNewCard(TaApplication taApplication, MakeCardParam makeCardParam) throws Exception {
35
 
37
 
36
-        SysSetting sysSetting = sysSettingMapper.selectById(Constants.SYSSETTING_CARD_EXPIRE);
37
-
38
         // 北京时间
38
         // 北京时间
39
         LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
39
         LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
40
-        LocalDateTime expire = now.plusDays(Long.parseLong(sysSetting.getContent()));
40
+//        LocalDateTime expire = now.plusDays(Long.parseLong(sysSetting.getContent()));
41
 
41
 
42
         TaPetIdentity taPetIdentity = new TaPetIdentity();
42
         TaPetIdentity taPetIdentity = new TaPetIdentity();
43
         taPetIdentity.setCardNo(makeCardParam.getCardNo());
43
         taPetIdentity.setCardNo(makeCardParam.getCardNo());
52
         taPetIdentity.setPetImg1(taApplication.getImg1());
52
         taPetIdentity.setPetImg1(taApplication.getImg1());
53
         taPetIdentity.setPetImg2(taApplication.getImg2());
53
         taPetIdentity.setPetImg2(taApplication.getImg2());
54
         taPetIdentity.setAddress(taApplication.getAddress());
54
         taPetIdentity.setAddress(taApplication.getAddress());
55
-        taPetIdentity.setStartDate(DateUtils.toString(now, "yyyy-MM-dd"));
56
-        taPetIdentity.setExpireDate(DateUtils.toString(expire, "yyyy-MM-dd"));
55
+//        taPetIdentity.setStartDate(DateUtils.toString(now, "yyyy-MM-dd"));
56
+//        taPetIdentity.setExpireDate(DateUtils.toString(expire, "yyyy-MM-dd"));
57
         taPetIdentity.setStatus(Constants.STATUS_NORMAL);
57
         taPetIdentity.setStatus(Constants.STATUS_NORMAL);
58
         taPetIdentity.setCreateDate(now);
58
         taPetIdentity.setCreateDate(now);
59
 
59
 
71
         return taPetIdentity;
71
         return taPetIdentity;
72
     }
72
     }
73
 
73
 
74
+    @Override
75
+    public boolean updateCardDate(String cardNo) throws Exception {
76
+        SysSetting sysSetting = sysSettingMapper.selectById(Constants.SYSSETTING_CARD_EXPIRE);
77
+        // 北京时间
78
+        LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
79
+        LocalDateTime expire = now.plusDays(Long.parseLong(sysSetting.getContent()));
80
+
81
+
82
+        UpdateWrapper<TaPetIdentity> updateWrapper = new UpdateWrapper<>();
83
+        updateWrapper.set("start_date", now);
84
+        updateWrapper.set("expire_date", expire);
85
+        updateWrapper.eq("card_no", cardNo);
86
+
87
+        return update(updateWrapper);
88
+    }
89
+
90
+
74
     @Override
91
     @Override
75
     public boolean extendDate(TaPetIdentity taPetIdentity) throws Exception {
92
     public boolean extendDate(TaPetIdentity taPetIdentity) throws Exception {
76
 
93
 
101
     public int countNotDelete() {
118
     public int countNotDelete() {
102
         return baseMapper.countNotDelete();
119
         return baseMapper.countNotDelete();
103
     }
120
     }
121
+
122
+    @Override
123
+    public List<TaPetIdentity> getListByCard(List<String> cardNoList) {
124
+        return baseMapper.getListByCard(cardNoList);
125
+    }
104
 }
126
 }

+ 10
- 0
src/main/resources/mapper/TaPetIdentityMapper.xml View File

2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
 <mapper namespace="com.njyunzhi.pet_identity.mapper.TaPetIdentityMapper">
3
 <mapper namespace="com.njyunzhi.pet_identity.mapper.TaPetIdentityMapper">
4
 
4
 
5
+    <select id="getListByCard" resultType="com.njyunzhi.pet_identity.entity.TaPetIdentity">
6
+        SELECT t.*, s.qr_image
7
+        FROM ta_pet_identity t
8
+            INNER JOIN ta_card_no s ON t.card_no = s.card_no
9
+        WHERE t.status &gt; -1
10
+            AND t.card_no IN
11
+        <foreach item="item" collection="cardNoList" separator="," open="(" close=")" index="">
12
+            #{item}
13
+        </foreach>
14
+    </select>
5
 </mapper>
15
 </mapper>