Pārlūkot izejas kodu

缴费管理后台管理

huwhois 5 gadi atpakaļ
vecāks
revīzija
bba46e7bb4

+ 108 - 3
src/main/java/io/renren/modules/admin/controller/PaymentController.java

@ -1,7 +1,16 @@
1 1
package io.renren.modules.admin.controller;
2 2
3
import java.text.SimpleDateFormat;
4
import java.util.ArrayList;
3 5
import java.util.Arrays;
6
import java.util.Date;
7
import java.util.HashMap;
8
import java.util.List;
4 9
import java.util.Map;
10
import java.math.BigDecimal;
11
import java.net.URLEncoder;
12
13
import javax.servlet.http.HttpServletResponse;
5 14
6 15
import org.apache.shiro.authz.annotation.RequiresPermissions;
7 16
import org.springframework.beans.factory.annotation.Autowired;
@ -13,8 +22,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
13 22
import org.springframework.web.bind.annotation.RequestParam;
14 23
import org.springframework.web.bind.annotation.RestController;
15 24
25
import io.renren.modules.admin.entity.ExcelEntity;
16 26
import io.renren.modules.admin.entity.PaymentEntity;
27
import io.renren.modules.admin.service.AttendersService;
17 28
import io.renren.modules.admin.service.PaymentService;
29
import io.renren.common.utils.ExcelUtils;
18 30
import io.renren.common.utils.PageUtils;
19 31
import io.renren.common.utils.R;
20 32
@ -30,6 +42,8 @@ import io.renren.common.utils.R;
30 42
public class PaymentController {
31 43
    @Autowired
32 44
    private PaymentService paymentService;
45
    @Autowired
46
    private AttendersService attendersService;
33 47
34 48
    /**
35 49
     * 列表
@ -39,7 +53,24 @@ public class PaymentController {
39 53
    public R list(@RequestParam Map<String, Object> params){
40 54
        PageUtils page = paymentService.myQueryPage(params);
41 55
42
        return R.ok().put("page", page);
56
        Long meetingId = Long.valueOf(params.get("meetingId").toString());
57
        int total = paymentService.getTotal(meetingId);
58
        String where = "";
59
        BigDecimal totalMoney = paymentService.getTotalMoney(meetingId, where);
60
        // 现场缴费
61
        where = " and p.pay_type=2";
62
        BigDecimal totalMoney2 = paymentService.getTotalMoney(meetingId, where);
63
        // 线上缴费(汇款)
64
        where = " and p.pay_type=1";
65
        BigDecimal totalMoney1 = paymentService.getTotalMoney(meetingId, where);
66
67
        Map<String, Object> gatherMap = new HashMap<String, Object>();
68
        gatherMap.put("total", total);
69
        gatherMap.put("totalMoney", totalMoney);
70
        gatherMap.put("totalMoney1", totalMoney1);
71
        gatherMap.put("totalMoney2", totalMoney2);
72
73
        return R.ok().put("page", page).put("gather", gatherMap);
43 74
    }
44 75
45 76
    /**
@ -50,7 +81,10 @@ public class PaymentController {
50 81
    public R info(@PathVariable("id") Long id){
51 82
		PaymentEntity payment = paymentService.getById(id);
52 83
53
        return R.ok().put("payment", payment);
84
        Long aid = payment.getAttendersId();
85
        Map<String, Object> attenders = attendersService.getMapById(aid);
86
87
        return R.ok().put("payment", payment).put("attenders", attenders);
54 88
    }
55 89
56 90
    /**
@ -59,7 +93,7 @@ public class PaymentController {
59 93
    @PostMapping("/save")
60 94
    @RequiresPermissions("admin:payment:save")
61 95
    public R save(@RequestBody PaymentEntity payment){
62
		paymentService.save(payment);
96
		paymentService.savePayment(payment);
63 97
64 98
        return R.ok();
65 99
    }
@ -86,4 +120,75 @@ public class PaymentController {
86 120
        return R.ok();
87 121
    }
88 122
123
    @GetMapping("/downloadxlsx")
124
    @RequiresPermissions("admin:payment:list")
125
    public void makeExcel(HttpServletResponse response, @RequestParam Map<String, Object> params) throws Exception {
126
        if (!params.containsKey("meetingId")) {
127
            throw new Exception("会议id不可为空");
128
        }
129
        String meetingName = params.containsKey("meetingName") ? params.get("meetingName").toString() : "";
130
       
131
        ExcelEntity data = new ExcelEntity();
132
        data.setName(meetingName + "签到数据");
133
        //添加表头
134
        List<String> titles = new ArrayList<String>();
135
        titles.add("id");
136
        titles.add("订单编号");
137
        titles.add("姓名");
138
        titles.add("所属机构");
139
        titles.add("缴费方式");
140
        titles.add("联系电话");
141
        titles.add("联系邮箱");
142
        titles.add("是否已缴费");
143
        titles.add("缴费时间");
144
        data.setTitles(titles);
145
        //添加列
146
        List<List<Object>> rows = new ArrayList<List<Object>>();
147
        List<Object> row = null;
148
149
        List<Map<String, Object>> list = paymentService.getMapList(params);
150
        SimpleDateFormat lastdate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
151
        for (Map<String, Object> pmap : list) {
152
            row = new ArrayList<Object>();
153
            row.add(pmap.get("id"));
154
            row.add(pmap.get("orderId"));
155
            row.add(pmap.get("truename"));
156
            row.add(pmap.get("organization"));
157
            Integer payType = Integer.valueOf(pmap.get("payType").toString());
158
            if (payType == 1) {
159
                row.add("线上缴费");
160
            } else if (payType == 2) {
161
                row.add("现场缴费");
162
            } else {
163
                row.add("");
164
            }
165
            row.add(pmap.get("phone"));
166
            row.add(pmap.get("email"));
167
            Integer isPay = Integer.valueOf(pmap.get("isPay").toString());
168
            if (isPay == 1) {
169
                row.add("已缴费");
170
            } else {
171
                row.add("未缴费");
172
            }
173
            if (pmap.get("payTime") == null) {
174
                row.add("");
175
            } else {
176
                String payTime = lastdate.format((Date) pmap.get("payTime"));
177
                row.add(payTime);
178
            }
179
            rows.add(row);
180
            row = null;
181
        }
182
        data.setRows(rows);
183
        SimpleDateFormat fdate=new SimpleDateFormat("yyyyMMddHHmmss");
184
        String fileName=fdate.format(new Date())+".xlsx";
185
186
        // 告诉浏览器用什么软件可以打开此文件
187
        response.setHeader("content-Type", "application/vnd.ms-excel");
188
        // 下载文件的默认名称
189
        response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(fileName, "utf-8"));
190
        // response.setHeader("Content-Disposition", "attachment;filename="+fileName);
191
192
        ExcelUtils.exportExcel(data, response.getOutputStream());
193
    }
89 194
}

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

@ -175,7 +175,7 @@ public class SignInfoController extends AbstractController {
175 175
        PaymentEntity payment = new PaymentEntity();
176 176
        payment.setMeetingId(signInfo.getMeetingId());
177 177
        payment.setAttendersId(attenders.getId());
178
        payment.setIsCheck(signInfo.getIsPay());
178
        payment.setIsPay(signInfo.getIsPay());
179 179
        paymentService.savePayment(payment);
180 180
181 181
        SignEntity sign = new SignEntity();

+ 12 - 0
src/main/java/io/renren/modules/admin/controller/TypesOfFeeController.java

@ -3,8 +3,13 @@ package io.renren.modules.admin.controller;
3 3
import java.math.BigDecimal;
4 4
import java.util.Arrays;
5 5
import java.util.Map;
6
7
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
8
6 9
import java.util.Date;
10
import java.util.List;
7 11
12
import org.apache.commons.lang.StringUtils;
8 13
import org.apache.shiro.authz.annotation.RequiresPermissions;
9 14
import org.springframework.beans.factory.annotation.Autowired;
10 15
import org.springframework.web.bind.annotation.PathVariable;
@ -46,6 +51,13 @@ public class TypesOfFeeController {
46 51
        return R.ok().put("page", page);
47 52
    }
48 53
54
    @GetMapping("/listbymid/{mid}")
55
    @RequiresPermissions("admin:typesoffee:list")
56
    public R listByMeetingId(@PathVariable("mid") Long mid){
57
        List<TypesOfFeeEntity> list = typesOfFeeService.list(new QueryWrapper<TypesOfFeeEntity>().eq("meeting_id", mid));
58
59
        return R.ok().put("list", list);
60
    }
49 61
50 62
    /**
51 63
     * 信息

+ 4 - 1
src/main/java/io/renren/modules/admin/dao/AttendersDao.java

@ -21,6 +21,9 @@ public interface AttendersDao extends BaseMapper<AttendersEntity> {
21 21
    @Select("SELECT a.id as aid,a.meeting_id,m.name_cn FROM attenders a JOIN meeting m ON a.meeting_id=m.id WHERE a.member_id=#{memberId} ORDER BY a.id;")
22 22
    List<Map<String, Object>> getMeetingListByMemberId(Long memberId);
23 23

24
    @Select("SELECT a.id, m.truename as name FROM attenders a JOIN member m ON a.member_id=m.id where a.is_del=0 AND a.id=#{aid}")
24
    @Select("SELECT a.id,m.truename as name FROM attenders a JOIN member m ON a.member_id=m.id where a.is_del=0 AND a.id=#{aid}")
25 25
    Map<String, Object> getNameById(Long aid);
26

27
    @Select("SELECT a.id,m.truename,m.organization,m.position,m.job_title as jobTitle,m.phone,m.email,m.officephone,a.type_id typeId,(select t.name from types_of_attenders t where t.id=a.type_id) as typeName FROM attenders a JOIN member m ON a.member_id=m.id where a.is_del=0 AND a.id=#{aid}")
28
    Map<String, Object> getMapById(Long aid);
26 29
}

+ 14 - 1
src/main/java/io/renren/modules/admin/dao/PaymentDao.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 5
import org.apache.ibatis.annotations.Mapper;
6 6
import org.apache.ibatis.annotations.Select;
7 7
8
import java.math.BigDecimal;
8 9
import java.util.List;
9 10
import java.util.Map;
10 11
@ -17,9 +18,21 @@ import java.util.Map;
17 18
 */
18 19
@Mapper
19 20
public interface PaymentDao extends BaseMapper<PaymentEntity> {
20
    @Select("select p.id, p.order_id orderId, mem.truename, mem.organization, p.pay_type payType, mem.phone, mem.email, p.pay_time payTime,p.is_check isPay from attenders join payment p on attenders.id=p.attenders_id join member mem on mem.id=attenders.member_id where p.meeting_id=#{meetingId} and attenders.is_del=0 and p.is_del=0 and (mem.truename like '%${name}%' or p.order_id like '%${order}%') limit #{page},#{limit};")
21
    @Select("select p.id, p.order_id orderId, mem.truename, mem.organization, p.pay_type payType, mem.phone, mem.email, p.pay_time payTime,p.is_pay isPay from attenders join payment p on attenders.id=p.attenders_id join member mem on mem.id=attenders.member_id where p.meeting_id=#{meetingId} and attenders.is_del=0 and p.is_del=0 and (mem.truename like '%${name}%' or p.order_id like '%${order}%') limit #{page},#{limit};")
21 22
    List<Map<String, Object>> myQueryPage(Long meetingId, String name, String order, int page, int limit);
22 23
23 24
    @Select("select count(*) from attenders join payment p on attenders.id=p.attenders_id join member mem on mem.id=attenders.member_id where p.meeting_id=#{meetingId} and attenders.is_del=0 and p.is_del=0 and (mem.truename like '%${name}%' or p.order_id like '%${order}%');")
24 25
    int myQueryPageCounts(Long meetingId, String name, String order);
26
27
    @Select("select p.id, p.order_id orderId, mem.truename, mem.organization, p.pay_type payType, mem.phone, mem.email, p.pay_time payTime,p.is_pay isPay from attenders join payment p on attenders.id=p.attenders_id join member mem on mem.id=attenders.member_id where p.meeting_id=#{meetingId} and attenders.is_del=0 and p.is_del=0 and (mem.truename like '%${name}%' or p.order_id like '%${order}%');")
28
    List<Map<String, Object>> getMapList(Long meetingId, String name, String order);
29
30
    @Select("select count(*) from attenders join payment p on attenders.id=p.attenders_id join member mem on mem.id=attenders.member_id where p.meeting_id=#{meetingId} and attenders.is_del=0 and p.is_del=0;")
31
    int getTotal(Long meetingId);
32
33
    @Select("select sum(p.money) as totalMoney from attenders join payment p on attenders.id=p.attenders_id  where p.meeting_id=#{meetingId} and attenders.is_del=0 and p.is_del=0;")
34
    BigDecimal getTotalMoney(Long meetingId);
35
36
    @Select("select sum(p.money) as totalMoney from attenders join payment p on attenders.id=p.attenders_id  where p.meeting_id=#{meetingId} and attenders.is_del=0 and p.is_del=0 ${where};")
37
    BigDecimal getTotalMoney(Long meetingId, String where);
25 38
}

+ 1 - 1
src/main/java/io/renren/modules/admin/entity/PaymentEntity.java

@ -83,7 +83,7 @@ public class PaymentEntity implements Serializable {
83 83
	/**
84 84
	 * 确认是否付款
85 85
	 */
86
	private Integer isCheck;
86
	private Integer isPay;
87 87
	/**
88 88
	 * 创建时间
89 89
	 */

+ 7 - 0
src/main/java/io/renren/modules/admin/service/AttendersService.java

@ -31,5 +31,12 @@ public interface AttendersService extends IService<AttendersEntity> {
31 31
     * @return
32 32
     */
33 33
    Map<String, Object> getNameById(Long aid);
34

35
    /**
36
     * 根据参会人员id 查询姓名,机构等
37
     * @param aid
38
     * @return
39
     */
40
    Map<String, Object> getMapById(Long aid);
34 41
}
35 42


+ 20 - 1
src/main/java/io/renren/modules/admin/service/PaymentService.java

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
4 4
import io.renren.common.utils.PageUtils;
5 5
import io.renren.modules.admin.entity.PaymentEntity;
6 6
7
import java.math.BigDecimal;
8
import java.util.List;
7 9
import java.util.Map;
8 10
9 11
/**
@ -19,6 +21,23 @@ public interface PaymentService extends IService<PaymentEntity> {
19 21
20 22
    PageUtils myQueryPage(Map<String, Object> params);
21 23
22
	void savePayment(PaymentEntity payment);
24
    void savePayment(PaymentEntity payment);
25
    
26
    List<Map<String, Object>> getMapList(Map<String, Object> params);
27
28
    /**
29
     * 获取缴费总人数
30
     * @param meetingId
31
     * @return
32
     */
33
    int getTotal(Long meetingId);
34
35
    /**
36
     * 获取缴费金额
37
     * @param meetingId
38
     * @parma where
39
     * @return
40
     */
41
    BigDecimal getTotalMoney(Long meetingId, String where);
23 42
}
24 43

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

@ -40,4 +40,9 @@ public class AttendersServiceImpl extends ServiceImpl<AttendersDao, AttendersEnt
40 40
    public Map<String, Object> getNameById(Long aid) {
41 41
        return baseMapper.getNameById(aid);
42 42
    }
43

44
    @Override
45
    public Map<String, Object> getMapById(Long aid) {
46
        return baseMapper.getMapById(aid);
47
    }
43 48
}

+ 18 - 0
src/main/java/io/renren/modules/admin/service/impl/PaymentServiceImpl.java

@ -2,6 +2,7 @@ package io.renren.modules.admin.service.impl;
2 2
3 3
import org.springframework.stereotype.Service;
4 4
5
import java.math.BigDecimal;
5 6
import java.text.SimpleDateFormat;
6 7
import java.util.Date;
7 8
import java.util.List;
@ -52,4 +53,21 @@ public class PaymentServiceImpl extends ServiceImpl<PaymentDao, PaymentEntity> i
52 53
        payment.setOrderId("FY" + nowtime + fourRandom);
53 54
        this.save(payment);
54 55
    }
56
57
    @Override
58
    public List<Map<String, Object>> getMapList(Map<String, Object> params) {
59
        Long meetingId = Long.valueOf(params.get("meetingId").toString());
60
        String key = (String) params.get("key");
61
        return baseMapper.getMapList(meetingId, key, key);
62
    }
63
64
    @Override
65
    public int getTotal(Long meetingId) {
66
        return baseMapper.getTotal(meetingId);
67
    }
68
69
    @Override
70
    public BigDecimal getTotalMoney(Long meetingId, String where) {
71
        return baseMapper.getTotalMoney(meetingId, where);
72
    }
55 73
}

+ 1 - 1
src/main/java/io/renren/modules/app/dao/UserDao.java

@ -26,6 +26,6 @@ public interface UserDao extends BaseMapper<UserEntity> {
26 26
    @Select("select p.order_id, p.attenders_id as attendersId, (select a.name from attenders as a where a.id=p.attenders_id) as attendersName,  (select a.organization from attenders as a where a.id=p.attenders_id) as organization, (select tf.name from types_of_fee as tf where tf.id=p.pay_type) as typeName, p.pay_time, (select m.name_cn from meeting as m where m.id=p.meeting_id) as meetingName from payment as p where p.attenders_id in  (select a.id from attenders as a where a.member_id=#{member_id});")
27 27
    List<Map<String, Object>> queryOrderList(Long memberId);
28 28
29
    @Select("select a.name as attendersName,a.meeting_id as meetingId,a.position_id as position,(select m.name_cn from meeting as m where m.id=a.meeting_id) as meetingName ,(select m.start_time from meeting as m where m.id=a.meeting_id) as startTime,(select m.end_time from meeting as m where m.id=a.meeting_id) as endTime,(select p.is_check from payment as p where p.attenders_id = a.id) as isCheck from attenders as a where a.id = #{attendersId};")
29
    @Select("select a.name as attendersName,a.meeting_id as meetingId,a.position_id as position,(select m.name_cn from meeting as m where m.id=a.meeting_id) as meetingName ,(select m.start_time from meeting as m where m.id=a.meeting_id) as startTime,(select m.end_time from meeting as m where m.id=a.meeting_id) as endTime,(select p.is_pay from payment as p where p.attenders_id = a.id) as isCheck from attenders as a where a.id = #{attendersId};")
30 30
    Map<String, Object> queryOrderInfoByAttendersId(Long attendersId);
31 31
}