huwhois 4 years ago
parent
commit
f356671fd0

+ 196 - 172
src/main/java/io/renren/common/utils/ExcelUtils.java

@ -1,6 +1,7 @@
1 1
package io.renren.common.utils;
2 2
3 3
import java.awt.Color;
4
import java.io.FileInputStream;
4 5
import java.io.IOException;
5 6
import java.io.InputStream;
6 7
import java.io.OutputStream;
@ -31,7 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
31 32
32 33
public class ExcelUtils {
33 34
    private final static String EXCEL_2003 = ".xls"; // 2003- 版本的excel
34
	private final static String EXCEL_2007 = ".xlsx"; // 2007+ 版本的excel
35
    private final static String EXCEL_2007 = ".xlsx"; // 2007+ 版本的excel
35 36
36 37
    // 导出 start
37 38
    public static void exportExcel(HttpServletResponse response, String fileName, ExcelData data) throws Exception {
@ -60,13 +61,13 @@ public class ExcelUtils {
60 61
            //此处需要关闭 wb 变量
61 62
            out.close();
62 63
        }
63
	}
64
	
64
    }
65
    
65 66
    private static void writeExcel(XSSFWorkbook wb, Sheet sheet, ExcelData data) {
66 67
67 68
        int rowIndex = 0;
68 69
69
		rowIndex = writeTitlesToExcel(wb, sheet, data.getTitles());
70
        rowIndex = writeTitlesToExcel(wb, sheet, data.getTitles());
70 71
        writeRowsToExcel(wb, sheet, data.getRows(), rowIndex);
71 72
        autoSizeColumns(sheet, data.getTitles().size() + 1);
72 73
@ -150,18 +151,18 @@ public class ExcelUtils {
150 151
            //     sheet.setColumnWidth(i, newWidth);
151 152
            // } else {
152 153
            //     sheet.setColumnWidth(i, orgWidth);
153
			// }
154
			if(orgWidth<255*256){	// 解决方法一
154
            // }
155
            if(orgWidth<255*256){	// 解决方法一
155 156
                sheet.setColumnWidth(i, orgWidth < 3000 ? 3000 : orgWidth);    
156 157
            }else{
157 158
                sheet.setColumnWidth(i,6000 );
158
			}
159
			// if (orgWidth > 255)  // 解决办法二 还是有问题
160
			// {
161
			// 	orgWidth = 255;
162
			// }
163
			// //设置列宽
164
			// sheet.setColumnWidth(i, (orgWidth + 1) * 256);
159
            }
160
            // if (orgWidth > 255)  // 解决办法二 还是有问题
161
            // {
162
            // 	orgWidth = 255;
163
            // }
164
            // //设置列宽
165
            // sheet.setColumnWidth(i, (orgWidth + 1) * 256);
165 166
        }
166 167
    }
167 168
@ -179,169 +180,169 @@ public class ExcelUtils {
179 180
180 181
    // 导入 start
181 182
    /**
182
	 * 功能描述:创建工作簿
183
	 *
184
	 * @author grm
185
	 * @since 2020年1月28日
186
	 * @param file 文件
187
	 * @return workbook
188
	 */
189
	public static Workbook createWorkbook(MultipartFile file) {
190
		InputStream inputStream;
191
		Workbook workbook = null;
192
		try {
193
			if(file.isEmpty()) {
194
				R.error("file is empty!");
195
				return null;
196
			}
197
			inputStream = file.getInputStream();
198
			String fileType = getFileType(file);
199
			if (EXCEL_2003.equals(fileType)) {
200
				workbook = new HSSFWorkbook(inputStream);
201
			} else if (EXCEL_2007.equals(fileType)) {
202
				workbook = new XSSFWorkbook(inputStream);
203
			} else {
204
				R.error("file is not excel!");
205
				return null;
206
			}
207
		} catch (IOException e) {
208
			R.error(e.getMessage());
209
		}
210
		return workbook;
211
	}
212
	
213
	/**
214
	 * 功能描述:判断是否是空行
215
	 *
216
	 * @author grm
217
	 * @since 2020年1月28日
218
	 * @param row 行
219
	 * @return boolean
220
	 */
221
	public static boolean isEmptyRow(Row row) {
222
		if (row == null || row.toString().isEmpty()) {
223
			return true;
224
		} else {
225
			Iterator<Cell> it = row.iterator();
226
			boolean isEmpty = true;
227
			while (it.hasNext()) {
228
				Cell cell = it.next();
229
				if (cell.getCellType() != Cell.CELL_TYPE_BLANK) {
230
					isEmpty = false;
231
					break;
232
				}
233
			}
234
			return isEmpty;
235
		}
236
	}
237
238
	/**
239
	 * 功能描述:判断是不是excel文件
240
	 *
241
	 * @author grm
242
	 * @since 2020年1月28日
243
	 * @param file 文件
244
	 * @return boolean
245
	 */
246
	public static boolean isExcel(MultipartFile file) {
247
		String fileType = getFileType(file);
248
		if ((!EXCEL_2003.equals(fileType)) && (!EXCEL_2007.equals(fileType))) {
249
			R.error("file is not excel!");
250
			return false;
251
		}
252
		return true;
253
	}
254
255
	/**
256
	 * 功能描述:获取文件类型/后缀
257
	 *
258
	 * @author grm
259
	 * @since 2020年1月28日
260
	 * @param file 文件
261
	 * @return fileType
262
	 */
263
	public static String getFileType(MultipartFile file) {
264
		String originalFilename = file.getOriginalFilename();
265
		return (originalFilename.substring(originalFilename.lastIndexOf("."), originalFilename.length())).toLowerCase();
266
	}
267
268
	/**
269
	 * 处理类型
270
	 * 
271
	 * @param cell
272
	 * @return
273
	 */
274
	@SuppressWarnings("deprecation")
275
	public static String getVal(Cell cell) {
276
		if (null != cell) {
277
			switch (cell.getCellType()) {
278
			case XSSFCell.CELL_TYPE_NUMERIC: // 数字
279
				double dou = cell.getNumericCellValue();
280
				NumberFormat nf = NumberFormat.getInstance();
281
				String str = nf.format(dou);
282
				if (str.indexOf(",") >= 0) {
283
					// 这种方法对于自动加".0"的数字可直接解决
284
					// 但如果是科学计数法的数字就转换成了带逗号的,例如:12345678912345的科学计数法是1.23457E+13
285
					// 经过这个格式化后就变成了字符串“12,345,678,912,345”,这也并不是想要的结果,所以要将逗号去掉
286
					str = str.replace(",", "");
287
				}
288
				return str;
289
			case XSSFCell.CELL_TYPE_STRING: // 字符串
290
				return cell.getStringCellValue() + "";
291
			case XSSFCell.CELL_TYPE_BOOLEAN: // Boolean
292
				return cell.getBooleanCellValue() + "";
293
			case XSSFCell.CELL_TYPE_FORMULA: // 公式
294
				try {
295
					if (HSSFDateUtil.isCellDateFormatted(cell)) {
296
						Date date = cell.getDateCellValue();
297
						return (date.getYear() + 1900) + "-" + (date.getMonth() + 1) + "-" + date.getDate();
298
					} else {
299
						return String.valueOf((int) cell.getNumericCellValue());
300
					}
301
				} catch (IllegalStateException e) {
302
					return String.valueOf(cell.getRichStringCellValue());
303
				}
304
			case XSSFCell.CELL_TYPE_BLANK: // 空值
305
				return "";
306
			case XSSFCell.CELL_TYPE_ERROR: // 故障
307
				return "";
308
			default:
309
				return "未知类型   ";
310
			}
311
		} else {
312
			return "";
313
		}
183
     * 功能描述:创建工作簿
184
     *
185
     * @author grm
186
     * @since 2020年1月28日
187
     * @param file 文件
188
     * @return workbook
189
     */
190
    public static Workbook createWorkbook(MultipartFile file) {
191
        InputStream inputStream;
192
        Workbook workbook = null;
193
        try {
194
            if(file.isEmpty()) {
195
                R.error("file is empty!");
196
                return null;
197
            }
198
            inputStream = file.getInputStream();
199
            String fileType = getFileType(file);
200
            if (EXCEL_2003.equals(fileType)) {
201
                workbook = new HSSFWorkbook(inputStream);
202
            } else if (EXCEL_2007.equals(fileType)) {
203
                workbook = new XSSFWorkbook(inputStream);
204
            } else {
205
                R.error("file is not excel!");
206
                return null;
207
            }
208
        } catch (IOException e) {
209
            R.error(e.getMessage());
210
        }
211
        return workbook;
212
    }
213
    
214
    /**
215
     * 功能描述:判断是否是空行
216
     *
217
     * @author grm
218
     * @since 2020年1月28日
219
     * @param row 行
220
     * @return boolean
221
     */
222
    public static boolean isEmptyRow(Row row) {
223
        if (row == null || row.toString().isEmpty()) {
224
            return true;
225
        } else {
226
            Iterator<Cell> it = row.iterator();
227
            boolean isEmpty = true;
228
            while (it.hasNext()) {
229
                Cell cell = it.next();
230
                if (cell.getCellType() != Cell.CELL_TYPE_BLANK) {
231
                    isEmpty = false;
232
                    break;
233
                }
234
            }
235
            return isEmpty;
236
        }
237
    }
238
239
    /**
240
     * 功能描述:判断是不是excel文件
241
     *
242
     * @author grm
243
     * @since 2020年1月28日
244
     * @param file 文件
245
     * @return boolean
246
     */
247
    public static boolean isExcel(MultipartFile file) {
248
        String fileType = getFileType(file);
249
        if ((!EXCEL_2003.equals(fileType)) && (!EXCEL_2007.equals(fileType))) {
250
            R.error("file is not excel!");
251
            return false;
252
        }
253
        return true;
254
    }
255
256
    /**
257
     * 功能描述:获取文件类型/后缀
258
     *
259
     * @author grm
260
     * @since 2020年1月28日
261
     * @param file 文件
262
     * @return fileType
263
     */
264
    public static String getFileType(MultipartFile file) {
265
        String originalFilename = file.getOriginalFilename();
266
        return (originalFilename.substring(originalFilename.lastIndexOf("."), originalFilename.length())).toLowerCase();
267
    }
268
269
    /**
270
     * 处理类型
271
     * 
272
     * @param cell
273
     * @return
274
     */
275
    @SuppressWarnings("deprecation")
276
    public static String getVal(Cell cell) {
277
        if (null != cell) {
278
            switch (cell.getCellType()) {
279
            case XSSFCell.CELL_TYPE_NUMERIC: // 数字
280
                double dou = cell.getNumericCellValue();
281
                NumberFormat nf = NumberFormat.getInstance();
282
                String str = nf.format(dou);
283
                if (str.indexOf(",") >= 0) {
284
                    // 这种方法对于自动加".0"的数字可直接解决
285
                    // 但如果是科学计数法的数字就转换成了带逗号的,例如:12345678912345的科学计数法是1.23457E+13
286
                    // 经过这个格式化后就变成了字符串“12,345,678,912,345”,这也并不是想要的结果,所以要将逗号去掉
287
                    str = str.replace(",", "");
288
                }
289
                return str;
290
            case XSSFCell.CELL_TYPE_STRING: // 字符串
291
                return cell.getStringCellValue() + "";
292
            case XSSFCell.CELL_TYPE_BOOLEAN: // Boolean
293
                return cell.getBooleanCellValue() + "";
294
            case XSSFCell.CELL_TYPE_FORMULA: // 公式
295
                try {
296
                    if (HSSFDateUtil.isCellDateFormatted(cell)) {
297
                        Date date = cell.getDateCellValue();
298
                        return (date.getYear() + 1900) + "-" + (date.getMonth() + 1) + "-" + date.getDate();
299
                    } else {
300
                        return String.valueOf((int) cell.getNumericCellValue());
301
                    }
302
                } catch (IllegalStateException e) {
303
                    return String.valueOf(cell.getRichStringCellValue());
304
                }
305
            case XSSFCell.CELL_TYPE_BLANK: // 空值
306
                return "";
307
            case XSSFCell.CELL_TYPE_ERROR: // 故障
308
                return "";
309
            default:
310
                return "未知类型   ";
311
            }
312
        } else {
313
            return "";
314
        }
314 315
    }
315 316
316 317
    // /**
317
	//  * 功能描述:导入excel数据到二维数组
318
	//  *
319
	//  * @author grm
320
	//  * @since 2020年1月28日
321
	//  * @param file 文件
322
	//  * @return list
323
	//  */
324
	// public static List<List<String>> importExcel(MultipartFile file) {
325
	// 	List<List<String>> list = new ArrayList<>();
326
	// 	Workbook workbook = ExcelUtils.createWorkbook(file);
327
	// 	if (workbook != null) {
328
	// 		// 获取工作表
329
	// 		Sheet sheet = workbook.getSheetAt(0);
330
	// 		// 获取sheet中第一行行号
331
	// 		int firstRowNum = sheet.getFirstRowNum();
332
	// 		// 获取sheet中最后一行行号
333
	// 		int lastRowNum = sheet.getLastRowNum();
334
	// 		// 循环插入数据
335
	// 		for (int i = firstRowNum + 1; i <= lastRowNum; i++) { // 标题的下一行开始
336
	// 			Row row = sheet.getRow(i);
337
	// 			if (ExcelUtils.isEmptyRow(row) == false) {
318
    //  * 功能描述:导入excel数据到二维数组
319
    //  *
320
    //  * @author grm
321
    //  * @since 2020年1月28日
322
    //  * @param file 文件
323
    //  * @return list
324
    //  */
325
    // public static List<List<String>> importExcel(MultipartFile file) {
326
    // 	List<List<String>> list = new ArrayList<>();
327
    // 	Workbook workbook = ExcelUtils.createWorkbook(file);
328
    // 	if (workbook != null) {
329
    // 		// 获取工作表
330
    // 		Sheet sheet = workbook.getSheetAt(0);
331
    // 		// 获取sheet中第一行行号
332
    // 		int firstRowNum = sheet.getFirstRowNum();
333
    // 		// 获取sheet中最后一行行号
334
    // 		int lastRowNum = sheet.getLastRowNum();
335
    // 		// 循环插入数据
336
    // 		for (int i = firstRowNum + 1; i <= lastRowNum; i++) { // 标题的下一行开始
337
    // 			Row row = sheet.getRow(i);
338
    // 			if (ExcelUtils.isEmptyRow(row) == false) {
338 339
                  
339
	// 				List<String> res = HandleRow(row);
340
	// 				list.add(res);
341
	// 			}
342
	// 		}
343
	// 	}
344
	// 	return list;
340
    // 				List<String> res = HandleRow(row);
341
    // 				list.add(res);
342
    // 			}
343
    // 		}
344
    // 	}
345
    // 	return list;
345 346
    // }
346 347
    
347 348
    // public static List<String> HandleRow(Row row) {
@ -351,4 +352,27 @@ public class ExcelUtils {
351 352
    // }
352 353
353 354
    // 导出 end
355
    
356
    /**
357
     *  导入原 rows
358
     * @param rows
359
     * @param out
360
     * @throws Exception
361
     */
362
    public static int addRowsExcel(List<List<Object>> rows, int rowIndex, FileInputStream in, OutputStream out) throws Exception {
363
        XSSFWorkbook workbook = new XSSFWorkbook(in);
364
        XSSFSheet sheet = workbook.getSheetAt(0);
365
366
        try {
367
            writeRowsToExcel(workbook, sheet, rows, rowIndex);
368
369
            workbook.write(out);
370
        } catch(Exception e){
371
            e.printStackTrace();
372
        }finally{
373
            //此处需要关闭 wb 变量
374
            out.close();
375
        }
376
        return rowIndex;
377
    }
354 378
}

+ 30 - 0
src/main/java/io/renren/common/utils/MyUtils.java

@ -7,6 +7,8 @@ import java.io.IOException;
7 7
import java.util.Base64;
8 8
9 9
import javax.imageio.ImageIO;
10
import java.util.regex.Matcher;
11
import java.util.regex.Pattern;
10 12
11 13
import org.apache.commons.lang.StringUtils;
12 14
import org.springframework.util.DigestUtils;
@ -45,4 +47,32 @@ public class MyUtils {
45 47
        }
46 48
        return imageString;
47 49
    }
50
51
    /**
52
     * 判断手机号phone是否正确格式
53
     * @param phone
54
     * @return
55
     */
56
    public static boolean checkPhone(String phone){
57
        Pattern pattern = Pattern.compile("^(1[3-9]\\d{9}$)");
58
        Matcher matcher = pattern.matcher(phone);
59
        
60
        if (matcher.matches()) {
61
            return true;
62
        }
63
        return false;
64
    }
65
66
    /**
67
     * 判断邮件email是否正确格式
68
     */
69
    public boolean checkEmail(String email){
70
        Pattern pattern = Pattern.compile("^/w+([-.]/w+)*@/w+([-]/w+)*/.(/w+([-]/w+)*/.)*[a-z]{2,3}$");
71
        Matcher matcher = pattern.matcher(email);
72
        
73
        if (matcher.matches()) {
74
            return true;
75
        }
76
        return false;
77
    }
48 78
}

+ 511 - 61
src/main/java/io/renren/modules/admin/controller/AttendersController.java

@ -1,12 +1,35 @@
1 1
package io.renren.modules.admin.controller;
2 2
3
import java.io.BufferedInputStream;
4
import java.io.BufferedOutputStream;
5
import java.io.File;
6
import java.io.FileInputStream;
7
import java.io.FileNotFoundException;
8
import java.io.FileOutputStream;
9
import java.io.IOException;
10
import java.io.InputStream;
11
import java.io.OutputStream;
12
import java.io.UnsupportedEncodingException;
13
import java.math.BigDecimal;
14
import java.net.URLEncoder;
15
import java.text.SimpleDateFormat;
16
import java.util.ArrayList;
3 17
import java.util.Arrays;
4 18
import java.util.Date;
19
import java.util.HashMap;
5 20
import java.util.List;
6 21
import java.util.Map;
7 22
23
import javax.servlet.http.HttpServletResponse;
24
25
import org.apache.commons.lang.StringUtils;
26
import org.apache.poi.ss.usermodel.Row;
27
import org.apache.poi.ss.usermodel.Sheet;
28
import org.apache.poi.ss.usermodel.Workbook;
8 29
import org.apache.shiro.authz.annotation.RequiresPermissions;
30
import org.springframework.beans.factory.annotation.Value;
9 31
import org.springframework.beans.factory.annotation.Autowired;
32
import org.springframework.scheduling.annotation.Async;
10 33
import org.springframework.web.bind.annotation.GetMapping;
11 34
import org.springframework.web.bind.annotation.PathVariable;
12 35
import org.springframework.web.bind.annotation.PostMapping;
@ -14,6 +37,7 @@ import org.springframework.web.bind.annotation.RequestBody;
14 37
import org.springframework.web.bind.annotation.RequestMapping;
15 38
import org.springframework.web.bind.annotation.RequestParam;
16 39
import org.springframework.web.bind.annotation.RestController;
40
import org.springframework.web.multipart.MultipartFile;
17 41
18 42
import io.renren.modules.admin.entity.AttendersviewEntity;
19 43
import io.renren.modules.admin.entity.AttendersEntity;
@ -21,6 +45,9 @@ import io.renren.modules.admin.entity.MemberEntity;
21 45
import io.renren.modules.admin.service.AttendersviewService;
22 46
import io.renren.modules.admin.service.AttendersService;
23 47
import io.renren.modules.admin.service.MemberService;
48
import io.renren.modules.sys.controller.AbstractController;
49
import io.renren.common.utils.ExcelData;
50
import io.renren.common.utils.ExcelUtils;
24 51
import io.renren.common.utils.MyUtils;
25 52
import io.renren.common.utils.PageUtils;
26 53
import io.renren.common.utils.R;
@ -28,8 +55,6 @@ import io.renren.common.validator.ValidatorUtils;
28 55
import io.renren.common.validator.group.AddGroup;
29 56
import io.renren.common.validator.group.UpdateGroup;
30 57
31
32
33 58
/**
34 59
 * VIEW
35 60
 *
@ -39,20 +64,28 @@ import io.renren.common.validator.group.UpdateGroup;
39 64
 */
40 65
@RestController
41 66
@RequestMapping("admin/attenders")
42
public class AttendersController {
67
public class AttendersController extends AbstractController {
43 68
    @Autowired
44 69
    private AttendersService attendersService;
45 70
    @Autowired
46 71
    private AttendersviewService attendersviewService;
47 72
    @Autowired
48 73
    private MemberService memberService;
49
    
74
75
    @Value("${file.datapath}")
76
    private String dataPath; // 读取配置文件中的指定目录
77
78
    @Value("${file.uploadFolder}")
79
    private String uploadFolder; // 读取配置文件中的指定目录
80
81
    private SimpleDateFormat sdfDate = new SimpleDateFormat(" yyyy-MM-dd HH:mm:ss ");
82
50 83
    /**
51 84
     * 列表
52 85
     */
53 86
    @GetMapping("/list")
54 87
    @RequiresPermissions("admin:attenders:list")
55
    public R list(@RequestParam Map<String, Object> params){
88
    public R list(@RequestParam Map<String, Object> params) {
56 89
        if (!params.containsKey("meetingId")) {
57 90
            return R.error("会议id不可为空");
58 91
        }
@ -67,8 +100,8 @@ public class AttendersController {
67 100
     */
68 101
    @GetMapping("/info/{id}")
69 102
    @RequiresPermissions("admin:attenders:info")
70
    public R info(@PathVariable("id") Long id){
71
		AttendersviewEntity attenders = attendersviewService.getById(id);
103
    public R info(@PathVariable("id") Long id) {
104
        AttendersviewEntity attenders = attendersviewService.getById(id);
72 105
73 106
        return R.ok().put("attenders", attenders);
74 107
    }
@ -78,65 +111,78 @@ public class AttendersController {
78 111
     */
79 112
    @PostMapping("/save")
80 113
    @RequiresPermissions("admin:attenders:save")
81
    public R save(@RequestBody AttendersviewEntity attendersform){
114
    public R save(@RequestBody AttendersviewEntity attendersform) {
82 115
        ValidatorUtils.validateEntity(attendersform, AddGroup.class);
83 116
        Long meetingId = attendersform.getMeetingId();
84 117
        if (meetingId == 0L) {
85 118
            return R.error("会议id不可为空");
86 119
        }
87 120
88
        String symbol = MyUtils.md5(attendersform.getTruename() + attendersform.getPhone());
121
        addAttenders(attendersform);
89 122
90
        MemberEntity member = memberService.getBySymbol(symbol);
123
        return R.ok();
124
    }
91 125
92
        // 存会员表(个人信息, 开票信息)
93
        if (member == null) {
94
            member = new MemberEntity();
95
            member.setTruename(attendersform.getTruename());
96
            member.setPhone(attendersform.getPhone());
97
        }
98
        member.setOrganization(attendersform.getOrganization());
99
        member.setPosition(attendersform.getPosition());
100
        member.setEmail(attendersform.getEmail());
101
        member.setSex(attendersform.getSex());
102
        member.setRemark(attendersform.getRemark());
103
        member.setTaxType(attendersform.getTaxType());
104
        member.setTaxTitle(attendersform.getTaxTitle());
105
        member.setTaxNumber(attendersform.getTaxNumber());
106
        member.setCompanyAddress(attendersform.getCompanyAddress());
107
        member.setCompanyPhone(attendersform.getCompanyPhone());
108
        member.setBankAccount(attendersform.getBankAccount());
109
        member.setMailingAddress(attendersform.getMailingAddress());
110
        member.setPostcode(attendersform.getPostcode());
126
    public boolean addAttenders(AttendersviewEntity attendersform) {
127
        try {
128
            String symbol = MyUtils.md5(attendersform.getTruename() + attendersform.getPhone());
111 129
112
        if (member.getId()==null || member.getId() == 0L) {
113
            memberService.saveMember(member);
114
        } else {
115
            memberService.updateMember(member);
116
        }
130
            MemberEntity member = memberService.getBySymbol(symbol);
117 131
118
        Long memberId = member.getId();
119
        // 存参会信息
120
        AttendersEntity attenders = new AttendersEntity();
121
        attenders.setMemberId(memberId);
122
        attenders.setMeetingId(meetingId);
123
        attenders.setMemberType(attenders.getMemberType());
124
        attenders.setFeeType(attenders.getFeeType());
125
        attenders.setPaperType(attenders.getPaperType());
126
        attenders.setIsReport(attenders.getIsReport());
127
        attenders.setReportTitle(attenders.getReportTitle());
128
        attenders.setHotelType(attenders.getHotelType());
129
        attenders.setRoomType(attenders.getRoomType());
130
        attenders.setCheckInDate(attenders.getCheckInDate());
131
        attenders.setCheckOutDate(attenders.getCheckOutDate());
132
        attenders.setPayType(attenders.getPayType());
133
        attenders.setIsPay(attenders.getIsPay());
134
        attenders.setMoney(attenders.getMoney());
135
        attenders.setCreateTime(new Date());
136
137
        attendersService.save(attenders);
132
            // 存会员表(个人信息, 开票信息)
133
            if (member == null) {
134
                member = new MemberEntity();
135
                member.setTruename(attendersform.getTruename());
136
                member.setPhone(attendersform.getPhone());
137
            }
138
            member.setOrganization(attendersform.getOrganization());
139
            member.setPosition(attendersform.getPosition());
140
            member.setEmail(attendersform.getEmail());
141
            member.setSex(attendersform.getSex());
142
            member.setRemark(attendersform.getRemark());
143
            member.setTaxType(attendersform.getTaxType());
144
            member.setTaxTitle(attendersform.getTaxTitle());
145
            member.setTaxNumber(attendersform.getTaxNumber());
146
            member.setCompanyAddress(attendersform.getCompanyAddress());
147
            member.setCompanyPhone(attendersform.getCompanyPhone());
148
            member.setBankAccount(attendersform.getBankAccount());
149
            member.setMailingAddress(attendersform.getMailingAddress());
150
            member.setPostcode(attendersform.getPostcode());
138 151
139
        return R.ok();
152
            if (member.getId() == null || member.getId() == 0L) {
153
                memberService.saveMember(member);
154
            } else {
155
                memberService.updateMember(member);
156
            }
157
158
            // 存参会信息
159
            AttendersEntity attenders = attendersService.getByMMId(member.getId(), attendersform.getMeetingId());
160
            if (attenders == null) {
161
                attenders = new AttendersEntity();
162
                attenders.setMemberId(member.getId());
163
                attenders.setMeetingId(attendersform.getMeetingId());
164
            }
165
166
            attenders.setMemberType(attendersform.getMemberType());
167
            attenders.setFeeType(attendersform.getFeeType());
168
            attenders.setPaperType(attendersform.getPaperType());
169
            attenders.setIsReport(attendersform.getIsReport());
170
            attenders.setReportTitle(attendersform.getReportTitle());
171
            attenders.setHotelType(attendersform.getHotelType());
172
            attenders.setRoomType(attendersform.getRoomType());
173
            attenders.setCheckInDate(attendersform.getCheckInDate());
174
            attenders.setCheckOutDate(attendersform.getCheckOutDate());
175
            attenders.setPayType(attendersform.getPayType());
176
            attenders.setIsPay(attendersform.getIsPay());
177
            attenders.setMoney(attendersform.getMoney());
178
            attenders.setCreateTime(new Date());
179
180
            attendersService.save(attenders);
181
        } catch (Exception e) {
182
            return false;
183
        }
184
185
        return true;
140 186
    }
141 187
142 188
    /**
@ -144,7 +190,7 @@ public class AttendersController {
144 190
     */
145 191
    @PostMapping("/update")
146 192
    @RequiresPermissions("admin:attenders:update")
147
    public R update(@RequestBody AttendersviewEntity attendersform){
193
    public R update(@RequestBody AttendersviewEntity attendersform) {
148 194
        ValidatorUtils.validateEntity(attendersform, UpdateGroup.class);
149 195
        Long meetingId = attendersform.getMeetingId();
150 196
        if (meetingId == 0L) {
@ -168,7 +214,7 @@ public class AttendersController {
168 214
        member.setPostcode(attendersform.getPostcode());
169 215
170 216
        memberService.updateMember(member);
171
        
217
172 218
        AttendersEntity attenders = attendersService.getById(attendersform.getId());
173 219
        attenders.setMemberId(attendersform.getMemberId());
174 220
        attenders.setMeetingId(attendersform.getMeetingId());
@ -194,8 +240,8 @@ public class AttendersController {
194 240
     */
195 241
    @PostMapping("/delete")
196 242
    @RequiresPermissions("admin:attenders:delete")
197
    public R delete(@RequestBody Long[] ids){
198
		attendersService.removeByIds(Arrays.asList(ids));
243
    public R delete(@RequestBody Long[] ids) {
244
        attendersService.removeByIds(Arrays.asList(ids));
199 245
200 246
        return R.ok();
201 247
    }
@ -205,9 +251,413 @@ public class AttendersController {
205 251
     */
206 252
    @GetMapping("/listall/{mid}")
207 253
    @RequiresPermissions("admin:attenders:list")
208
    public R listall(@PathVariable("mid") Long mid){
209
        List<AttendersviewEntity> list = attendersviewService.listall(mid);
254
    public R listall(@PathVariable("mid") Long mid) {
255
        List<AttendersviewEntity> list = attendersviewService.listall(mid,
256
                new String[] { "id", "truename", "organization", "phone", "meeting_id" });
210 257
        return R.ok().put("list", list);
211 258
    }
212 259
260
    /**
261
     * 修改是否缴费
262
     */
263
    @RequestMapping("/ispay")
264
    @RequiresPermissions("admin:attenders:update")
265
    public R updateIsPay(@RequestBody Map<String, Object> params) {
266
        Long aid = Long.valueOf((Integer) params.get("aid"));
267
        Integer isPay = (Integer) params.get("isPay");
268
269
        AttendersEntity attenders = attendersService.getById(aid);
270
        if (attenders == null) {
271
            return R.error("用户不存在");
272
        }
273
        attenders.setIsPay(isPay);
274
275
        attendersService.updateById(attenders);
276
277
        return R.ok();
278
    }
279
280
    /**
281
     * 导出报名参会名单
282
     * 
283
     * @param response
284
     * @param params
285
     * @throws Exception
286
     */
287
    @GetMapping("/export")
288
    @RequiresPermissions("admin:attenders:list")
289
    public void exportExcel(HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
290
        if (!params.containsKey("meetingId")) {
291
            throw new Exception("会议id不可为空");
292
        }
293
        String meetingName = params.containsKey("meetingName") ? params.get("meetingName").toString() : "";
294
295
        ExcelData data = new ExcelData();
296
        data.setName(meetingName + "参会名单");
297
        // 添加表头
298
        List<String> titles = new ArrayList<String>();
299
        titles.add("id");
300
        titles.add("姓名");
301
        titles.add("性别");
302
        titles.add("单位名称");
303
        titles.add("职务");
304
        titles.add("电话");
305
        titles.add("联系邮箱");
306
        titles.add("用户类型");
307
        titles.add("费用类型");
308
        titles.add("论文");
309
        titles.add("是否有报告");
310
        titles.add("报告题目");
311
        titles.add("酒店");
312
        titles.add("房型");
313
        titles.add("入住时间");
314
        titles.add("离店时间");
315
        titles.add("付款方式");
316
        titles.add("是否缴费");
317
        titles.add("金额");
318
        titles.add("开票类型");
319
        titles.add("发票抬头");
320
        titles.add("税号");
321
        titles.add("单位地址");
322
        titles.add("单位电话");
323
        titles.add("开户行及账号");
324
        titles.add("邮寄地址");
325
        titles.add("邮编");
326
        titles.add("备注");
327
        data.setTitles(titles);
328
329
        // 添加列
330
        List<List<Object>> rows = new ArrayList<List<Object>>();
331
        List<Object> row = null;
332
        Long meetingId = Long.valueOf(params.get("meetingId").toString());
333
334
        List<AttendersviewEntity> list = attendersviewService.listall(meetingId);
335
336
        for (AttendersviewEntity aEntity : list) {
337
            row = new ArrayList<Object>();
338
            row.add(aEntity.getId());
339
            row.add(aEntity.getTruename());
340
            if (aEntity.getSex() == 1) {
341
                row.add("男");
342
            } else if (aEntity.getSex() == 2) {
343
                row.add("女");
344
            } else {
345
                row.add("未知");
346
            }
347
            row.add(aEntity.getOrganization());
348
            row.add(aEntity.getPosition());
349
            row.add(aEntity.getPhone());
350
            row.add(aEntity.getEmail());
351
            row.add(aEntity.getMemberType());
352
            row.add(aEntity.getFeeType() == 2 ? "学生" : "普通");
353
            row.add(aEntity.getPaperType());
354
            row.add(aEntity.getIsReport() == 1 ? "是" : "否");
355
            row.add(aEntity.getReportTitle());
356
            row.add(aEntity.getHotelType());
357
            row.add(aEntity.getRoomType());
358
            row.add(aEntity.getCheckInDate());
359
            row.add(aEntity.getCheckOutDate());
360
            row.add(aEntity.getPayType() == 2 ? "汇款" : "现场缴费");
361
            row.add(aEntity.getIsPay() == 1 ? "已缴费" : "未缴费");
362
            row.add(aEntity.getMoney());
363
            row.add(aEntity.getTaxType() == 2 ? "专票" : "普票");
364
            row.add(aEntity.getTaxTitle());
365
            row.add(aEntity.getTaxNumber());
366
            row.add(aEntity.getCompanyAddress());
367
            row.add(aEntity.getCompanyPhone());
368
            row.add(aEntity.getBankAccount());
369
            row.add(aEntity.getMailingAddress());
370
            row.add(aEntity.getPostcode());
371
            row.add(aEntity.getRemark());
372
            rows.add(row);
373
            row = null;
374
        }
375
        data.setRows(rows);
376
        SimpleDateFormat fdate = new SimpleDateFormat("yyyyMMddHHmmss");
377
        String fileName = fdate.format(new Date()) + ".xlsx";
378
379
        // 告诉浏览器用什么软件可以打开此文件
380
        response.setHeader("content-Type", "application/vnd.ms-excel");
381
        // 下载文件的默认名称
382
        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
383
        // response.setHeader("Content-Disposition", "attachment;filename="+fileName);
384
385
        ExcelUtils.exportExcel(data, response.getOutputStream());
386
    }
387
388
    /**
389
     * 参会名单导入
390
     * 
391
     * @param file
392
     * @param meetingId
393
     * @return
394
     * @throws Exception
395
     */
396
    @PostMapping("import")
397
    @RequiresPermissions("admin:attenders:save")
398
    public R importExcel(@RequestParam("file") MultipartFile file, @RequestParam("meetingId") Long meetingId) {
399
        if (meetingId == 0L) {
400
            return R.error("会议id不可为空");
401
        }
402
        if (file.isEmpty()) {
403
            return R.error("error,file is empty!");
404
        }
405
        if (ExcelUtils.isExcel(file) == false) {
406
            return R.error("error,file is not excel!");
407
        }
408
409
        Map<String, Integer> statistics = new HashMap<>();
410
        List<AttendersviewEntity> successList = new ArrayList<>();
411
        List<AttendersviewEntity> failList = new ArrayList<>();
412
413
        Workbook workbook = ExcelUtils.createWorkbook(file);
414
        if (workbook != null) {
415
            // 获取工作表
416
            Sheet sheet = workbook.getSheetAt(0);
417
            // 获取sheet中第一行行号
418
            int firstRowNum = sheet.getFirstRowNum();
419
            // 获取sheet中最后一行行号
420
            int lastRowNum = sheet.getLastRowNum();
421
            // 循环插入数据
422
            int failNum = 0;
423
            int totalNum = 0;
424
            for (int i = firstRowNum + 1; i <= lastRowNum; i++) { // 标题的下一行开始
425
                totalNum++;
426
                Row row = sheet.getRow(i);
427
                if (ExcelUtils.isEmptyRow(row) == false) {
428
                    String name = ExcelUtils.getVal(row.getCell(1));
429
                    String sex = ExcelUtils.getVal(row.getCell(2));
430
                    String organization = ExcelUtils.getVal(row.getCell(3));
431
                    String position = ExcelUtils.getVal(row.getCell(4));
432
                    String phone = ExcelUtils.getVal(row.getCell(5));
433
                    String email = ExcelUtils.getVal(row.getCell(6));
434
                    String memberType = ExcelUtils.getVal(row.getCell(7));
435
                    String fee_id = ExcelUtils.getVal(row.getCell(8));
436
                    String paper_type = ExcelUtils.getVal(row.getCell(9));
437
                    String is_report = ExcelUtils.getVal(row.getCell(10));
438
                    String report_title = ExcelUtils.getVal(row.getCell(11));
439
                    String hotel_type = ExcelUtils.getVal(row.getCell(12));
440
                    String room_type = ExcelUtils.getVal(row.getCell(13));
441
                    String check_in_date = ExcelUtils.getVal(row.getCell(14));
442
                    String check_out_date = ExcelUtils.getVal(row.getCell(15));
443
                    String payment = ExcelUtils.getVal(row.getCell(16));
444
                    String isPay = ExcelUtils.getVal(row.getCell(17));
445
                    String money = ExcelUtils.getVal(row.getCell(18));
446
                    String tax_type = ExcelUtils.getVal(row.getCell(19));
447
                    String tax_ttitle = ExcelUtils.getVal(row.getCell(20));
448
                    String tax_number = ExcelUtils.getVal(row.getCell(21));
449
                    String company_address = ExcelUtils.getVal(row.getCell(22));
450
                    String company_phone = ExcelUtils.getVal(row.getCell(23));
451
                    String bank_account = ExcelUtils.getVal(row.getCell(24));
452
                    String mailing_address = ExcelUtils.getVal(row.getCell(25));
453
                    String postcode = ExcelUtils.getVal(row.getCell(26));
454
                    String remark = ExcelUtils.getVal(row.getCell(27));
455
456
                    AttendersviewEntity attendersInfo = new AttendersviewEntity();
457
458
                    attendersInfo.setMeetingId(meetingId);
459
                    attendersInfo.setTruename(name);
460
                    attendersInfo.setPhone(phone);
461
                    attendersInfo.setSex(Integer.valueOf(sex));
462
                    attendersInfo.setOrganization(organization);
463
                    attendersInfo.setPosition(position);
464
                    attendersInfo.setEmail(email);
465
                    attendersInfo.setTaxType(Integer.valueOf(tax_type));
466
                    attendersInfo.setTaxTitle(tax_ttitle);
467
                    attendersInfo.setTaxNumber(tax_number);
468
                    attendersInfo.setCompanyAddress(company_address);
469
                    attendersInfo.setCompanyPhone(company_phone);
470
                    attendersInfo.setBankAccount(bank_account);
471
                    attendersInfo.setMailingAddress(mailing_address);
472
                    attendersInfo.setPostcode(postcode);
473
                    attendersInfo.setRemark(remark);
474
                    int memberTypeInt = StringUtils.isBlank(memberType) ? 0 : Integer.valueOf(memberType);
475
                    attendersInfo.setMemberType(memberTypeInt);
476
                    attendersInfo.setFeeType(Integer.valueOf(fee_id));
477
                    attendersInfo.setPaperType(Integer.valueOf(paper_type));
478
                    attendersInfo.setIsReport(Integer.valueOf(is_report));
479
                    attendersInfo.setReportTitle(report_title);
480
                    attendersInfo.setHotelType(Integer.valueOf(hotel_type));
481
                    attendersInfo.setRoomType(Integer.valueOf(room_type));
482
                    try {
483
                        attendersInfo.setCheckInDate(sdfDate.parse(check_in_date));
484
                        attendersInfo.setCheckInDate(sdfDate.parse(check_out_date));
485
                    } catch (Exception e) {
486
                        attendersInfo.setCheckInDate(null);
487
                        attendersInfo.setCheckInDate(null);
488
                    }
489
490
                    attendersInfo.setPayType(Integer.valueOf(payment));
491
                    attendersInfo.setIsPay(Integer.valueOf(isPay));
492
                    attendersInfo.setMoney(BigDecimal.valueOf(Double.valueOf(money.toString())));
493
494
                    if (StringUtils.isBlank(name)) {
495
                        attendersInfo.setRemark(attendersInfo.getRemark() + "==>姓名不能为空");
496
                        failList.add(attendersInfo);
497
                        failNum++;
498
                    } else if (StringUtils.isBlank(phone) || !MyUtils.checkPhone(phone)) {
499
                        attendersInfo.setRemark(attendersInfo.getRemark() + "==>电话格式不正确");
500
                        failList.add(attendersInfo);
501
                        failNum++;
502
                    } else {
503
                        successList.add(attendersInfo);
504
                    }
505
                }
506
            }
507
            doImport(successList, failList);
508
            statistics.put("total", totalNum);
509
            statistics.put("succes", totalNum - failNum);
510
            statistics.put("fail", failNum);
511
        }
512
513
        return R.ok("上传成功!").put("statistics", statistics);
514
    }
515
516
    @Async
517
    public void doImport(List<AttendersviewEntity> successList, List<AttendersviewEntity> failList) {
518
        for (AttendersviewEntity attendersInfo : successList) {
519
            try {
520
                addAttenders(attendersInfo);
521
            } catch (Exception e) {
522
                e.printStackTrace();
523
                attendersInfo.setRemark(attendersInfo.getRemark() + " 导入错误原因:未知");
524
                failList.add(attendersInfo);
525
            }
526
        }
527
528
        ExcelData data = new ExcelData();
529
        data.setName("error");
530
        // 添加表头
531
        List<String> titles = new ArrayList<String>();
532
        titles.add("id");
533
        titles.add("姓名");
534
        titles.add("性别");
535
        titles.add("单位名称");
536
        titles.add("职务");
537
        titles.add("电话");
538
        titles.add("联系邮箱");
539
        titles.add("用户类型");
540
        titles.add("费用类型");
541
        titles.add("论文");
542
        titles.add("是否有报告");
543
        titles.add("报告题目");
544
        titles.add("酒店");
545
        titles.add("房型");
546
        titles.add("入住时间");
547
        titles.add("离店时间");
548
        titles.add("付款方式");
549
        titles.add("是否缴费");
550
        titles.add("金额");
551
        titles.add("开票类型");
552
        titles.add("发票抬头");
553
        titles.add("税号");
554
        titles.add("单位地址");
555
        titles.add("单位电话");
556
        titles.add("开户行及账号");
557
        titles.add("邮寄地址");
558
        titles.add("邮编");
559
        titles.add("备注");
560
        data.setTitles(titles);
561
562
        // 新增列
563
        List<List<Object>> rows = new ArrayList<List<Object>>();
564
        List<Object> row = null;
565
566
        // SimpleDateFormat lastdate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
567
        int i = 1;
568
        for (AttendersviewEntity attender : failList) {
569
            row = new ArrayList<Object>();
570
            row.add(i);
571
            row.add(attender.getTruename());
572
            row.add(attender.getSex());
573
            row.add(attender.getOrganization());
574
            row.add(attender.getPosition());
575
            row.add(attender.getPhone());
576
            row.add(attender.getEmail());
577
            row.add(attender.getMemberType());
578
            row.add(attender.getFeeType());
579
            row.add(attender.getPaperType());
580
            row.add(attender.getIsReport());
581
            row.add(attender.getReportTitle());
582
            row.add(attender.getHotelType());
583
            row.add(attender.getRoomType());
584
            row.add(attender.getCheckInDate());
585
            row.add(attender.getCheckOutDate());
586
            row.add(attender.getPayType());
587
            row.add(attender.getIsPay());
588
            row.add(attender.getMoney());
589
            row.add(attender.getTaxType());
590
            row.add(attender.getTaxTitle());
591
            row.add(attender.getTaxNumber());
592
            row.add(attender.getCompanyAddress());
593
            row.add(attender.getCompanyPhone());
594
            row.add(attender.getBankAccount());
595
            row.add(attender.getMailingAddress());
596
            row.add(attender.getPostcode());
597
            row.add(attender.getRemark());
598
599
            rows.add(row);
600
            row = null;
601
            i++;
602
        }
603
604
        data.setRows(rows);
605
606
        try {
607
            Long userId = getUserId();
608
            String fileName = "attenders_" + userId + ".xlsx";
609
            String filePath = "/uploads/fails/" + fileName;
610
            String savePath = dataPath + filePath;
611
612
            OutputStream os = new FileOutputStream(savePath);
613
            ExcelUtils.exportExcel(data, os);
614
615
            os.close();
616
        } catch (FileNotFoundException e) {
617
            e.printStackTrace();
618
        } catch (Exception e) {
619
            e.printStackTrace();
620
        }
621
    }
622
623
    /**
624
     * 导出最近上传出租哦文件
625
     * @param response
626
     */
627
    @GetMapping("downloadfails")
628
    @RequiresPermissions("admin:attenders:save")
629
    public void downloadFailFile(HttpServletResponse response) {
630
        Long userId = getUserId();
631
        String filePath = dataPath + "/uploads/fails/attenders_" + userId + ".xlsx";
632
        
633
        try {
634
            File file = new File(filePath);
635
            if (file.exists()) {
636
                InputStream fis = new BufferedInputStream(new FileInputStream(file));
637
                byte[] buffer = new byte[fis.available()];
638
                fis.read(buffer);
639
                fis.close();
640
641
                response.reset();
642
                SimpleDateFormat fdate = new SimpleDateFormat("yyyyMMddHHmmss");
643
                String fileName = fdate.format(new Date()) + ".xlsx";
644
                // 告诉浏览器用什么软件可以打开此文件
645
                response.setHeader("content-Type", "application/vnd.ms-excel");
646
                // 下载文件的默认名称
647
                response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
648
                OutputStream os = new BufferedOutputStream(response.getOutputStream());
649
                os.write(buffer);
650
                os.flush();
651
                os.close();
652
            } else {
653
                response.sendError(HttpServletResponse.SC_NOT_FOUND, "没有最近出错文件");
654
            }
655
        } catch (FileNotFoundException e) {
656
            e.printStackTrace();
657
        } catch (UnsupportedEncodingException e1){
658
            e1.printStackTrace();
659
        } catch (IOException e2){
660
            e2.printStackTrace();
661
        }
662
    }
213 663
}

+ 1 - 1
src/main/java/io/renren/modules/admin/controller/PaperController.java

@ -89,7 +89,7 @@ public class PaperController {
89 89
        if (paperForm.getAttendersId()==null || paperForm.getAttendersId()==0L) {
90 90
            String symbol = MyUtils.md5(paperForm.getTruename() + paperForm.getPhone());
91 91
92
            AttendersviewEntity attendersview = attendersviewService.getBySymbol(symbol);
92
            AttendersviewEntity attendersview = attendersviewService.getBySymbolAndMid(symbol, meetingId);
93 93
            
94 94
            if (attendersview==null) {
95 95
                MemberEntity member = memberService.saveMember(paperForm.getTruename(), paperForm.getPhone(), paperForm.getOrganization(), null);

+ 28 - 2
src/main/java/io/renren/modules/admin/controller/SignController.java

@ -63,6 +63,9 @@ public class SignController {
63 63
    @GetMapping("/list")
64 64
    @RequiresPermissions("admin:sign:list")
65 65
    public R list(@RequestParam Map<String, Object> params) {
66
        if (!params.containsKey("meetingId")) {
67
            return R.error("会议id不可为空");
68
        }
66 69
        PageUtils page = signviewService.queryPage(params);
67 70
68 71
        return R.ok().put("page", page);
@ -219,7 +222,7 @@ public class SignController {
219 222
    @PostMapping("/delete")
220 223
    @RequiresPermissions("admin:sign:delete")
221 224
    public R delete(@RequestBody Long[] ids){
222
		signService.removeByIds(Arrays.asList(ids));
225
        signService.removeByIds(Arrays.asList(ids));
223 226
224 227
        return R.ok();
225 228
    }
@ -227,7 +230,7 @@ public class SignController {
227 230
    /**
228 231
     * 导出签到数据
229 232
     */
230
    @GetMapping("/exportexcel")
233
    @GetMapping("/export")
231 234
    @RequiresPermissions("admin:sign:list")
232 235
    public void makeExcel(HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
233 236
        if (!params.containsKey("meetingId")) {
@ -316,4 +319,27 @@ public class SignController {
316 319
        ExcelUtils.exportExcel(data, response.getOutputStream());
317 320
    }
318 321
322
    /**
323
     * 列表
324
     */
325
    @GetMapping("/listall/{mid}")
326
    @RequiresPermissions("admin:sign:list")
327
    public R listall(@PathVariable("mid") Long mid) {
328
        List<SignviewEntity> list = signviewService.listSignAll(mid);
329
330
        return R.ok().put("list", list);
331
    }
332
333
    /**
334
     * total
335
     */
336
    @GetMapping("/total/{mid}")
337
    @RequiresPermissions("admin:sign:info")
338
    public R total(@PathVariable("mid") Long mid){
339
        Integer total = signviewService.getSignTotal(mid, 0);
340
        Integer normal = signviewService.getSignTotal(mid, 1);
341
        Integer student = signviewService.getSignTotal(mid, 2);
342
343
        return R.ok().put("total", total).put("normal", normal).put("student", student);
344
    }
319 345
}

+ 101 - 101
src/main/java/io/renren/modules/admin/entity/SignviewEntity.java

@ -19,109 +19,109 @@ import lombok.Data;
19 19
@Data
20 20
@TableName("signview")
21 21
public class SignviewEntity implements Serializable {
22
	private static final long serialVersionUID = 1L;
22
    private static final long serialVersionUID = 1L;
23 23
24
	/**
25
	 * 签到id
26
	 */
27
	@TableId
28
	private Long id;
29
	/**
30
	 * 会议名单id
31
	 */
32
	private Long aid;
33
	/**
34
	 * 名字
35
	 */
36
	private String truename;
37
	/**
38
	 * 单位名称
39
	 */
40
	private String organization;
41
	/**
42
	 * 
43
	 */
44
	private String position;
45
	/**
46
	 * 电话
47
	 */
48
	private String phone;
49
	/**
50
	 * 性别
51
	 * 
52
	 */
53
	private Integer sex;
54
	/**
55
	 * 标记
56
	 */
57
	private Integer flag;
58
	/**
59
	 * 备注
60
	 */
61
	private String remark;
62
	/**
63
	 * 用户类型 0,正常; 1, 免注册
64
	 */
65
	private Integer memberType;
66
	/**
67
	 * 注册(费用)类型 1, 普通, 2 学生
68
	 */
69
	private Integer feeType;
70
	/**
71
	 * 付款方式 1 现场缴费; 2 汇款
72
	 */
73
	private Integer payType;
74
	/**
75
	 * 是否缴费 0,未缴费; 1,已缴费
76
	 */
77
	private Integer isPay;
78
	/**
79
	 * 金额
80
	 */
81
	private BigDecimal money;
82
	/**
83
	 * 
84
	 */
85
	private Integer status;
86
	/**
87
	 * 是否打印胸卡
88
	 */
89
	private Integer badge;
90
	/**
91
	 * 签到地点(主会场/分会场)
92
	 */
93
	private Long site;
94
	/**
95
	 * 打印次数
96
	 */
97
	private Integer printNum;
98
	/**
99
	 * 打印时间
100
	 */
101
	private Date printTime;
102
	/**
103
	 * 条码or二维码内容
104
	 */
105
	private String token;
106
	/**
107
	 * 最后签到时间
108
	 */
109
	private Date lastTime;
110
	/**
111
	 * 创建时间
112
	 */
113
	private Date createTime;
114
	/**
115
	 * 标识
116
	 */
117
	private String symbol;
118
	/**
24
    /**
25
     * 签到id
26
     */
27
    @TableId
28
    private Long id;
29
    /**
30
     * 会议名单id
31
     */
32
    private Long aid;
33
    /**
34
     * 名字
35
     */
36
    private String truename;
37
    /**
38
     * 单位名称
39
     */
40
    private String organization;
41
    /**
42
     * 
43
     */
44
    private String position;
45
    /**
46
     * 电话
47
     */
48
    private String phone;
49
    /**
50
     * 性别
51
     * 
52
     */
53
    private Integer sex;
54
    /**
55
     * 标记
56
     */
57
    private Integer flag;
58
    /**
59
     * 备注
60
     */
61
    private String remark;
62
    /**
63
     * 用户类型 0,正常; 1, 免注册
64
     */
65
    private Integer memberType;
66
    /**
67
     * 注册(费用)类型 1, 普通, 2 学生
68
     */
69
    private Integer feeType;
70
    /**
71
     * 付款方式 1 现场缴费; 2 汇款
72
     */
73
    private Integer payType;
74
    /**
75
     * 是否缴费 0,未缴费; 1,已缴费
76
     */
77
    private Integer isPay;
78
    /**
79
     * 金额
80
     */
81
    private BigDecimal money;
82
    /**
83
     * 
84
     */
85
    private Integer status;
86
    /**
87
     * 是否打印胸卡
88
     */
89
    private Integer badge;
90
    /**
91
     * 签到地点(主会场/分会场)
92
     */
93
    private Long site;
94
    /**
95
     * 打印次数
96
     */
97
    private Integer printNum;
98
    /**
99
     * 打印时间
100
     */
101
    private Date printTime;
102
    /**
103
     * 条码or二维码内容
104
     */
105
    private String token;
106
    /**
107
     * 最后签到时间
108
     */
109
    private Date lastTime;
110
    /**
111
     * 创建时间
112
     */
113
    private Date createTime;
114
    /**
115
     * 标识
116
     */
117
    private String symbol;
118
    /**
119 119
     * 会议id
120 120
     */
121 121
    private Long meetingId;
122
	/**
123
	 * 
124
	 */
125
	@TableField(exist=false)
126
	private String image;
122
    /**
123
     * 
124
     */
125
    @TableField(exist=false)
126
    private String image;
127 127
}

+ 2 - 1
src/main/java/io/renren/modules/admin/service/AttendersService.java

@ -16,6 +16,7 @@ import io.renren.modules.admin.entity.AttendersEntity;
16 16
public interface AttendersService extends IService<AttendersEntity> {
17 17
18 18
    PageUtils queryPage(Map<String, Object> params);
19
   
19
20
	AttendersEntity getByMMId(Long id, Long meetingId);
20 21
}
21 22

+ 3 - 1
src/main/java/io/renren/modules/admin/service/AttendersviewService.java

@ -19,7 +19,9 @@ public interface AttendersviewService extends IService<AttendersviewEntity> {
19 19
    PageUtils queryPage(Map<String, Object> params);
20 20
    
21 21
    List<AttendersviewEntity> listall(Long mid);
22
23
    List<AttendersviewEntity> listall(Long mid, String... columns);
22 24
    
23
    AttendersviewEntity getBySymbol(String symbol);
25
    AttendersviewEntity getBySymbolAndMid(String symbol, Long meetingId);
24 26
}
25 27

+ 2 - 0
src/main/java/io/renren/modules/admin/service/SignviewService.java

@ -21,5 +21,7 @@ public interface SignviewService extends IService<SignviewEntity> {
21 21
	SignviewEntity getByAid(Long aid);
22 22
23 23
	List<SignviewEntity> listSignAll(Long meetingId);
24
25
	Integer getSignTotal(Long meetingId, Integer feeType);
24 26
}
25 27

+ 5 - 0
src/main/java/io/renren/modules/admin/service/impl/AttendersServiceImpl.java

@ -27,4 +27,9 @@ public class AttendersServiceImpl extends ServiceImpl<AttendersDao, AttendersEnt
27 27
        return new PageUtils(page);
28 28
    }
29 29
30
    @Override
31
    public AttendersEntity getByMMId(Long memberId, Long meetingId) {
32
        return this.getOne(new QueryWrapper<AttendersEntity>().eq("member_id", memberId).eq("meeting_id",meetingId));
33
    }
34
30 35
}

+ 8 - 3
src/main/java/io/renren/modules/admin/service/impl/AttendersviewServiceImpl.java

@ -34,12 +34,17 @@ public class AttendersviewServiceImpl extends ServiceImpl<AttendersviewDao, Atte
34 34
35 35
    @Override
36 36
    public List<AttendersviewEntity> listall(Long mid) {
37
        return this.list(new QueryWrapper<AttendersviewEntity>().eq("meeting_id", mid).select("id","truename","organization","phone", "meeting_id"));
37
        return this.list(new QueryWrapper<AttendersviewEntity>().eq("meeting_id", mid));
38 38
    }
39 39
40 40
    @Override
41
    public AttendersviewEntity getBySymbol(String symbol) {
42
        AttendersviewEntity attenders = this.getOne(new QueryWrapper<AttendersviewEntity>().eq("symbol", symbol));
41
    public List<AttendersviewEntity> listall(Long mid, String... columns) {
42
        return this.list(new QueryWrapper<AttendersviewEntity>().eq("meeting_id", mid).select(columns));
43
    }
44
45
    @Override
46
    public AttendersviewEntity getBySymbolAndMid(String symbol, Long meetingId) {
47
        AttendersviewEntity attenders = this.getOne(new QueryWrapper<AttendersviewEntity>().eq("symbol", symbol).eq("meeting_id",meetingId));
43 48
        return attenders;
44 49
    }
45 50
}

+ 13 - 2
src/main/java/io/renren/modules/admin/service/impl/SignviewServiceImpl.java

@ -20,11 +20,17 @@ public class SignviewServiceImpl extends ServiceImpl<SignviewDao, SignviewEntity
20 20
21 21
    @Override
22 22
    public PageUtils queryPage(Map<String, Object> params) {
23
        String meetingId = (String) params.get("meetingId");
23
        Long meetingId = Long.valueOf(params.get("meetingId").toString());
24 24
        String key = params.containsKey("key") ? (String) params.get("key") : "";
25
        int status = params.containsKey("status") ? (int) params.get("status") : -1;
26
27
        boolean statusOn = false;
28
        if (status == 0 || status == 1) {
29
            statusOn = true;
30
        }
25 31
26 32
        IPage<SignviewEntity> page = this.page(new Query<SignviewEntity>().getPage(params),
27
                new QueryWrapper<SignviewEntity>().eq("meeting_id", meetingId)
33
                new QueryWrapper<SignviewEntity>().eq("meeting_id", meetingId).eq(statusOn, "status", status)
28 34
                        .like(StringUtils.isNotBlank(key), "truename", key).or()
29 35
                        .like(StringUtils.isNotBlank(key), "phone", key).or()
30 36
                        .like(StringUtils.isNotBlank(key), "organization", key));
@ -42,4 +48,9 @@ public class SignviewServiceImpl extends ServiceImpl<SignviewDao, SignviewEntity
42 48
        return this.list(new QueryWrapper<SignviewEntity>().eq("meeting_id", meetingId).eq("status", 1));
43 49
    }
44 50
51
    @Override
52
    public Integer getSignTotal(Long meetingId, Integer feeType) {
53
        return this.count(new QueryWrapper<SignviewEntity>().eq("meeting_id", meetingId).eq("status", 1).eq(feeType!=0,"fee_type", feeType));
54
    }
55
45 56
}

+ 4 - 3
src/main/java/io/renren/modules/app/controller/AppAttendersController.java

@ -97,10 +97,11 @@ public class AppAttendersController {
97 97
        return R.ok();
98 98
    }
99 99
100
    @GetMapping("/infobysymbol/{symbol}")
100
    @GetMapping("/infobysymbol/{token}")
101 101
    public R notToken(@PathVariable("symbol") String symbol){
102
        AttendersviewEntity attenders = attendersviewService.getBySymbol(symbol);
103
        return R.ok().put("attenders", attenders);
102
        // AttendersviewEntity attenders = attendersviewService.getBySymbol(token);
103
        // return R.ok().put("attenders", attenders);
104
        return null;
104 105
    }
105 106
106 107
}