Quellcode durchsuchen

新增 活动添加签到导出功能

huZhiHao vor 6 Jahren
Ursprung
Commit
9eba84a513

+ 1 - 0
sql/20191230.sql

@@ -0,0 +1 @@
+ALTER TABLE ac_activity_registration ADD sign_time datetime DEFAULT NULL COMMENT '签到时间' AFTER review_state

+ 24 - 6
src/main/java/platform/modules/api/web/ActivityOpenController.java

@@ -114,6 +114,17 @@ public class ActivityOpenController extends BaseController {
         return ResponseMessage.success("查询成功!", false);
     }
 
+    /**
+     * 获取已报名的用户
+     *
+     * @return
+     */
+    @GetMapping(value = "/getRegUsers")
+    public ResponseMessage getRegUsers(String activity_id, String user_id) {
+        log.info("获取已报名的用户!");
+        return ResponseMessage.success("查询成功!", activityRegistrationService.getCurrRegUsers(activity_id, user_id));
+    }
+
     /**
      * @Author: huZhiHao
      * @Description: 活动报名
@@ -139,24 +150,30 @@ public class ActivityOpenController extends BaseController {
                 //已报名人数
                 registrationNumber = activityRegistrationService.getActivityRegistrationNumber(id);
                 if (registrationNumber >= Integer.parseInt(quota)) {
-                    return ResponseMessage.success("名额不足,仅剩" + (Integer.parseInt(quota) - registrationNumber) + "个名额,请修改人数!", false);
+                    return ResponseMessage.error("名额不足,仅剩" + (Integer.parseInt(quota) - registrationNumber) + "个名额,请修改人数!");
                 }
             }
         }
-
         List<ActivityRegistration> registrationList = paramRegistration.getRegistrationList();
         if (!org.apache.commons.collections.CollectionUtils.isEmpty(registrationList)) {
-            for (ActivityRegistration registration : registrationList) {
-                if (registration.getId() == null) {
-                    activityRegistrationService.saveActivityRegistration(registration);
+            List<ActivityRegistration> registrations = activityRegistrationService.findByActivityIdAndUserIdAndPhones(id + "", registrationList.get(0).getUser_id() + "", registrationList);
+            if (!org.apache.commons.collections.CollectionUtils.isEmpty(registrations)) {
+                String phone = "";
+                for (ActivityRegistration registration : registrations) {
+                    phone += registration.getPhone() + " ";
                 }
+                return ResponseMessage.error("手机号码为:" + phone + "的用户已报名");
+            }
+            for (ActivityRegistration registration : registrationList) {
+//                if (registration.getId() == null) {
+                activityRegistrationService.saveActivityRegistration(registration);
+//                }
             }
             List<User> pusers = userService.findUsersByPermission("G_ACTIVITY_MANAGE");
             waitToDoService.completeAllTODO(activityDetail.getId(), Constant.DictionaryType.ACTIVITY_APPLICATION);
             for (User puser : pusers) {
                 waitToDoService.newTODO(activityDetail.getActivity_title() + "审核", "/government/activity/review/" + activityDetail.getId(), Constant.WaitToDo_OperType.AUDIT, activityDetail.getId(),
                         Constant.DictionaryType.ACTIVITY_APPLICATION, null, puser.getId().toString(), Constant.WaitToDo_IsSerial.IS_SERIAL, false);
-
             }
         }
         if (!Objects.equals(quota, null) && !Objects.equals(quota, "")) {
@@ -297,6 +314,7 @@ public class ActivityOpenController extends BaseController {
             ActivityRegistration activityRegistration_n = new ActivityRegistration();
             activityRegistration_n.setId(activityRegistration1.getId());
             activityRegistration_n.setSign_state("0");
+            activityRegistration_n.setSign_time(new Date());
             activityRegistrationService.updateState(activityRegistration_n);
             return ResponseMessage.success("签到成功!");
         }

+ 29 - 29
src/main/java/platform/modules/carrier/web/api/WeChatApiController.java

@@ -162,7 +162,7 @@ public class WeChatApiController extends BaseController {
     public Object getStreetAreaStatistic(
             @RequestParam(defaultValue = "1", required = false) Integer pageNum,
             @RequestParam(defaultValue = "10", required = false) Integer pageSize
-    ){
+    ) {
         PageInfo<CarrierLibraryResult> pageInfo = contractService.getStreetAreaStatistic(pageNum, pageSize);
         return ResponseMessage.success("success", pageInfo);
     }
@@ -180,12 +180,12 @@ public class WeChatApiController extends BaseController {
     }
 
     /**
-     *  获取所有街道
+     * 获取所有街道
      *
      * @return
      */
     @GetMapping("/streets")
-    public Object getStreetList(){
+    public Object getStreetList() {
         Street street = new Street();
         street.setIs_start(true);
         List<Street> streets = streetService.findListByWhere(street);
@@ -198,7 +198,7 @@ public class WeChatApiController extends BaseController {
      * @return
      */
     @GetMapping("/parkNames")
-    public Object findParkNames(SearchCondition condition){
+    public Object findParkNames(SearchCondition condition) {
         PageInfo<Park> pageInfo = parkService.findParkNames(condition);
         return ResponseMessage.success("success", pageInfo);
     }
@@ -233,7 +233,7 @@ public class WeChatApiController extends BaseController {
      * @return
      */
     @GetMapping("/front/parkDetail/{id}")
-    public Object frontParkDetail(@PathVariable Integer id){
+    public Object frontParkDetail(@PathVariable Integer id) {
         Park park = parkService.frontParkDetailById(id);
         park.setFile_down_url(setFileUrl());
         return ResponseMessage.success("success", park);
@@ -259,7 +259,7 @@ public class WeChatApiController extends BaseController {
      * @return
      */
     @GetMapping("/firstContact/{id}")
-    public Object firstCompanyContact(@PathVariable Integer id){
+    public Object firstCompanyContact(@PathVariable Integer id) {
         User firstContact = userService.findFirstContact(id);
         return ResponseMessage.success("success", firstContact);
     }
@@ -271,22 +271,22 @@ public class WeChatApiController extends BaseController {
      * @return
      */
     @GetMapping("/personalCenter/{id}")
-    public Object personalCenter(@PathVariable Integer id){
+    public Object personalCenter(@PathVariable Integer id) {
         User user = userService.findById(id);
 
         if (user.getUser_type().equals(Constant.UserType.GOVERNMENT)) {
             user.setDepartment_name(userService.getGovDepartment(user));
         }
 
-        if (user.getUser_type().equals(Constant.UserType.COMPANY)){
+        if (user.getUser_type().equals(Constant.UserType.COMPANY)) {
             user.setDepartment_name(userService.getCompanyDepartment(user));
         }
 
-        if (user.getUser_type().equals(Constant.UserType.STREET)){
+        if (user.getUser_type().equals(Constant.UserType.STREET)) {
             user.setDepartment_name(userService.getStreetDepartment(user));
         }
 
-        if (user.getUser_type().equals(Constant.UserType.BUILD)){
+        if (user.getUser_type().equals(Constant.UserType.BUILD)) {
             user.setDepartment_name(userService.getBuildDepartment(user));
         }
         return ResponseMessage.success("success", user);
@@ -300,7 +300,7 @@ public class WeChatApiController extends BaseController {
      */
     @OperationLog(value = "修改密码")
     @PostMapping("/changePass")
-    public Object changePass(@RequestBody ChangePassword changePassword){
+    public Object changePass(@RequestBody ChangePassword changePassword) {
         return userService.changePassword(changePassword);
     }
 
@@ -360,7 +360,7 @@ public class WeChatApiController extends BaseController {
      * @return
      */
     @GetMapping("/companyContactList")
-    public Object companyContact(String letter, String companyName){
+    public Object companyContact(String letter, String companyName) {
 
         List<CompanyContacts> companyContacts = companyService.findCompanyListByName(letter, companyName);
 
@@ -374,7 +374,7 @@ public class WeChatApiController extends BaseController {
     }
 
     /**
-     *载体库楼栋列表
+     * 载体库楼栋列表
      *
      * @return
      */
@@ -382,26 +382,26 @@ public class WeChatApiController extends BaseController {
     public Object getBuildingStatistic(
             @RequestParam(defaultValue = "1", required = false) Integer pageNum,
             @RequestParam(defaultValue = "10", required = false) Integer pageSize,
-            SearchCondition condition){
+            SearchCondition condition) {
         Map<String, Object> map = carrierStatisticService.getWechatBuildingStatistic(pageNum, pageSize, condition);
-        return  ResponseMessage.success("success", map);
+        return ResponseMessage.success("success", map);
     }
 
     /**
-     *载体库各街道列表
+     * 载体库各街道列表
      *
      * @return
      */
     @GetMapping("/streetStatistic")
-    public Object getStreetStatistic (
+    public Object getStreetStatistic(
             @RequestParam(defaultValue = "1", required = false) Integer pageNum,
-            @RequestParam(defaultValue = "10", required = false) Integer pageSize){
+            @RequestParam(defaultValue = "10", required = false) Integer pageSize) {
         Map<String, Object> map = carrierStatisticService.getWechatStreetStatistic(pageNum, pageSize);
-        return  ResponseMessage.success("success", map);
+        return ResponseMessage.success("success", map);
     }
 
     /**
-     *载体各库园区列表
+     * 载体各库园区列表
      *
      * @return
      */
@@ -409,9 +409,9 @@ public class WeChatApiController extends BaseController {
     public Object getParkStatistic(
             @RequestParam(defaultValue = "1", required = false) Integer pageNum,
             @RequestParam(defaultValue = "10", required = false) Integer pageSize,
-            @PathVariable Integer id){
+            @PathVariable Integer id) {
         Map<String, Object> map = carrierStatisticService.getWechatParkStatistic(pageNum, pageSize, id);
-        return  ResponseMessage.success("success", map);
+        return ResponseMessage.success("success", map);
     }
 
     @OperationLog(value = "查看我的消息列表")
@@ -476,7 +476,7 @@ public class WeChatApiController extends BaseController {
      * @return
      */
     @GetMapping("activityStatistic/{userId}")
-    public Object activityStatistic(@PathVariable Integer userId){
+    public Object activityStatistic(@PathVariable Integer userId) {
 
         ActivityStatistic statistic = activityRegistrationService.findActivityStatistic(userId);
 
@@ -489,7 +489,7 @@ public class WeChatApiController extends BaseController {
      * @return
      */
     @GetMapping("findTypesActivitys/{userId}")
-    public Object findTypesActivitys(@PathVariable Integer userId, String type){
+    public Object findTypesActivitys(@PathVariable Integer userId, String type) {
 
         List<ActivityDetail> activitys = activityRegistrationService.findTypesActivitys(type, userId);
         for (ActivityDetail activity : activitys) {
@@ -502,7 +502,7 @@ public class WeChatApiController extends BaseController {
         }
         Map<String, Object> map = new HashMap<>();
         map.put("file_url", setFileUrl());
-        map .put("activitys", activitys);
+        map.put("activitys", activitys);
         return ResponseMessage.success("success", map);
     }
 
@@ -519,27 +519,27 @@ public class WeChatApiController extends BaseController {
     }
 
     /**
-     *  取消报名
+     * 取消报名
      *
      * @param ids
      * @return
      */
     @PostMapping("/abort")
-    public Object quert(@RequestBody List<String> ids){
+    public Object quert(@RequestBody List<String> ids) {
 //        List<String> idList = Arrays.asList(ids);
         activityRegistrationService.adortRegister(ids);
         return ResponseMessage.success("取消成功");
     }
 
     /**
-     *  强烈推荐
+     * 强烈推荐
      *
      * @return
      */
     @GetMapping("/highlyRecommended")
     public Object highlyRecommended(
             @RequestParam(defaultValue = "1") Integer pageNum,
-            @RequestParam(defaultValue = "10") Integer pageSize){
+            @RequestParam(defaultValue = "10") Integer pageSize) {
         Map<String, Object> map = new HashMap<>();
         map.put("file_url", setFileUrl());
         map.put("data", activityService.findHighlyRecommended(pageNum, pageSize));

+ 49 - 3
src/main/java/platform/modules/government/web/ActivityController.java

@@ -7,6 +7,7 @@ import com.github.pagehelper.PageInfo;
 import org.apache.catalina.Executor;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureOrder;
 import org.springframework.stereotype.Controller;
@@ -41,6 +42,7 @@ import platform.modules.request.ActivityFindRequest;
 import platform.modules.request.ContractReportFindRequest;
 import platform.modules.sys.entity.*;
 import platform.modules.sys.report.ActivityRegistrationExports;
+import platform.modules.sys.report.ActivitySignExports;
 import platform.modules.sys.report.ContractExport;
 import platform.modules.sys.service.*;
 import platform.modules.sys.web.ResponseMessage;
@@ -203,13 +205,13 @@ public class ActivityController extends BaseController {
     }
 
     /**
-     * 跳转到导出excel
+     * 跳转到报名信息导出excel
      *
      * @return
      */
     @OperationLog(value = "导出活动报名信息表")
-    @GetMapping(value = "/exportExcel")
-    public void exportExcel(HttpServletResponse response, ActivityFindRequest activityFindRequest) throws Exception {
+    @GetMapping(value = "/exportExcelRegistration")
+    public void exportExcelRegistration(HttpServletResponse response, ActivityFindRequest activityFindRequest) throws Exception {
         log.info("跳转到活动报名下载!");
         Integer id = activityFindRequest.getId();
         ActivityDetail activityDetail = activityService.findOne(id.toString());
@@ -235,6 +237,48 @@ public class ActivityController extends BaseController {
         new ExportExcel(activityDetail.getActivity_title() + "报名信息表", ActivityRegistrationExports.class).setDataList(registrationList).write(response, fileName).dispose();
     }
 
+    /**
+     * 跳转到签到信息导出excel
+     *
+     * @return
+     */
+    @OperationLog(value = "导出活动签到信息表")
+    @GetMapping(value = "/exportExcelSign")
+    public void exportExcelSign(HttpServletResponse response, ActivityFindRequest activityFindRequest) throws Exception {
+
+        log.info("跳转到活动报名下载!");
+        Integer id = activityFindRequest.getId();
+        ActivityDetail activityDetail = activityService.findOne(id.toString());
+        String fileName = activityDetail.getActivity_title() + "签到信息表.xlsx";
+        List<ActivityRegistration> activityRegistrationList = activityRegistrationService.findSginList(id);
+        List<ActivitySignExports> signList = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        for (ActivityRegistration activityRegistration : activityRegistrationList) {
+
+            ActivitySignExports activitySignExports = new ActivitySignExports();
+            BeanUtils.copyProperties(activityRegistration, activitySignExports);
+
+            if (activityRegistration.getRegistration_time() != null)
+                activitySignExports.setRegistration_time(sdf.format(activityRegistration.getRegistration_time()));
+
+            if (activityRegistration.getSign_time() != null)
+                activitySignExports.setSign_time(sdf.format(activityRegistration.getSign_time()));
+
+
+            if (StringUtils.isBlank(activitySignExports.getSign_state())) {
+                activitySignExports.setSign_state("待确认");
+            }
+            if (Objects.equals(activitySignExports.getSign_state(), "0")) {
+                activitySignExports.setSign_state("已签到");
+            }
+            if (Objects.equals(activitySignExports.getSign_state(), "1")) {
+                activitySignExports.setSign_state("未参加");
+            }
+            signList.add(activitySignExports);
+        }
+        new ExportExcel(activityDetail.getActivity_title() + "签到信息表", ActivitySignExports.class).setDataList(signList).write(response, fileName).dispose();
+    }
+
     /**
      * 跳转到详情页面
      *
@@ -829,6 +873,7 @@ public class ActivityController extends BaseController {
         ActivityRegistration activityRegistration = new ActivityRegistration();
         activityRegistration.setId(Integer.parseInt(id));
         activityRegistration.setSign_state(state);
+        activityRegistration.setSign_time(new Date());
         return ResponseMessage.success("操作成功", activityRegistrationService.updateState(activityRegistration));
     }
 
@@ -838,6 +883,7 @@ public class ActivityController extends BaseController {
         log.info("批量更新活动签到状态");
         ActivityRegistration activityRegistration = new ActivityRegistration();
         activityRegistration.setSign_state(state);
+        activityRegistration.setSign_time(new Date());
 
         String[] idsArr = ids.split(",");
 

+ 5 - 0
src/main/java/platform/modules/sys/dao/ActivityRegistrationDao.java

@@ -6,6 +6,7 @@ import platform.modules.carrier.dto.ActivityStatistic;
 import platform.modules.sys.entity.ActivityDetail;
 import platform.modules.sys.entity.ActivityRegistration;
 import platform.modules.sys.report.ActivityRegistrationExports;
+import platform.modules.sys.report.ActivitySignExports;
 
 import java.util.List;
 
@@ -26,6 +27,10 @@ public interface ActivityRegistrationDao extends BaseMapper<ActivityRegistration
 
     List<ActivityRegistration> findByRelationIdAndType(@Param("type") String type, @Param("rel") String id, @Param("activity_id") String activity_id);
 
+    List<ActivityRegistration> findByActivityAndUserId(@Param("activity_id") String activity_id, @Param("user_id") String user_id);
+
+    List<ActivityRegistration> findByActivityIdAndUserIdAndPhones(@Param("activity_id") String activity_id,@Param("user_id") String user_id, @Param("registrations") List<ActivityRegistration> registrations);
+
     List<ActivityRegistrationExports> findRegistrationExport(@Param("activityId") Integer activityId, @Param("userId") Integer userId);
 
     void adortRegister(@Param("list") List<String> ids);

+ 2 - 0
src/main/java/platform/modules/sys/entity/ActivityRegistration.java

@@ -38,6 +38,8 @@ public class ActivityRegistration extends BaseEntity {
 
     private String review_state;
 
+    private Date sign_time;
+
     private String sign_state;
 
     private String relation_id;

+ 1 - 1
src/main/java/platform/modules/sys/report/ActivityRegistrationExports.java

@@ -17,7 +17,7 @@ public class ActivityRegistrationExports extends BaseEntity {
     @ExcelField(title="姓名", align=2, sort=5)
     private String name;
 
-    @ExcelField(title="手机", align=2, sort=5)
+    @ExcelField(title="手机号码", align=2, sort=5)
     private String phone;
 
     @ExcelField(title="邮箱", align=2, sort=5)

+ 32 - 0
src/main/java/platform/modules/sys/report/ActivitySignExports.java

@@ -0,0 +1,32 @@
+package platform.modules.sys.report;
+
+import lombok.Data;
+import platform.common.annotation.ExcelField;
+import platform.common.base.model.BaseEntity;
+
+import java.util.Date;
+
+@Data
+public class ActivitySignExports extends BaseEntity {
+
+    @ExcelField(title = "单位名称", align = 2, sort = 5)
+    private String user_name;
+
+    @ExcelField(title = "姓名", align = 2, sort = 5)
+    private String name;
+
+    @ExcelField(title = "职位", align = 2, sort = 5)
+    private String position;
+
+    @ExcelField(title = "手机号码", align = 2, sort = 5)
+    private String phone;
+
+    @ExcelField(title = "报名时间", align = 2, sort = 5)
+    private String registration_time;
+
+    @ExcelField(title = "签到信息", align = 2, sort = 5)
+    private String sign_state;
+
+    @ExcelField(title = "签到时间", align = 2, sort = 5)
+    private String sign_time;
+}

+ 18 - 9
src/main/java/platform/modules/sys/service/ActivityRegistrationService.java

@@ -1,6 +1,5 @@
 package platform.modules.sys.service;
 
-import com.aliyuncs.exceptions.ClientException;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 
@@ -12,7 +11,6 @@ import platform.common.Constant;
 import platform.common.base.service.BaseService;
 import platform.common.util.AlibabaSMSUtil;
 import platform.common.util.ShiroUtils;
-import platform.modules.build.entity.Tenancy;
 import platform.modules.carrier.dto.ActivityStatistic;
 import platform.modules.government.entity.Attachment;
 import platform.modules.government.entity.FileDown;
@@ -22,11 +20,10 @@ import platform.modules.government.service.UserService;
 import platform.modules.home.service.HomeRefactorService;
 import platform.modules.sys.dao.ActivityRegistrationDao;
 import platform.modules.sys.entity.ActivityDetail;
-import platform.modules.sys.entity.ActivityFeedback;
 import platform.modules.sys.entity.ActivityRegistration;
 import platform.modules.sys.entity.ActivityReview;
 import platform.modules.sys.report.ActivityRegistrationExports;
-import tk.mybatis.mapper.entity.Example;
+import platform.modules.sys.report.ActivitySignExports;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -141,6 +138,8 @@ public class ActivityRegistrationService extends BaseService<ActivityRegistratio
             }*/
 
         }
+        if (activityRegistration.getId() != null)
+            return this.updateSelective(activityRegistration);
         return this.saveSelective(activityRegistration);
     }
 
@@ -183,6 +182,12 @@ public class ActivityRegistrationService extends BaseService<ActivityRegistratio
         return list.size();
     }
 
+    @Transactional(readOnly = true)
+    public List<ActivityRegistration> findByActivityIdAndUserIdAndPhones(String activity_id, String user_id, List<ActivityRegistration> registrations) {
+
+        return activityRegistrationDao.findByActivityIdAndUserIdAndPhones(activity_id, user_id, registrations);
+    }
+
 
     /**
      * 政府活动管理-签到信息
@@ -281,9 +286,11 @@ public class ActivityRegistrationService extends BaseService<ActivityRegistratio
      *
      * @return
      */
-    public List<ActivityRegistration> getCurrRegUsers(String activity_id, String phone) {
+    public List<ActivityRegistration> getCurrRegUsers(String activity_id, String user_id) {
 
-        User user = userService.findByMobile(phone);
+        /*User user = userService.findByMobile(phone);
+        if (user == null)
+            return null;
         Integer userType = user.getUser_type();
         String relationId = "";
         if (Objects.equals(Constant.UserType.GOVERNMENT, userType)) {
@@ -296,10 +303,10 @@ public class ActivityRegistrationService extends BaseService<ActivityRegistratio
             relationId = user.getCompany_id().toString();
         } else if (Objects.equals(Constant.UserType.PERSONAL, userType)) {
             relationId = user.getId().toString();
-        }else if (Objects.equals(Constant.UserType.WECHAT, userType)) {
+        } else if (Objects.equals(Constant.UserType.WECHAT, userType)) {
             relationId = user.getId().toString();
-        }
-        return activityRegistrationDao.findByRelationIdAndType(userType.toString(), relationId, activity_id);
+        }*/
+        return activityRegistrationDao.findByActivityAndUserId(activity_id, user_id);
     }
 
     /**
@@ -310,6 +317,8 @@ public class ActivityRegistrationService extends BaseService<ActivityRegistratio
     public List<ActivityRegistration> getWechatCurrRegUsers(String activity_id, Integer user_id) {
 
         User user = userService.findById(user_id);
+        if (user == null)
+            return null;
         Integer userType = user.getUser_type();
 
         String relationId = "";

+ 1 - 1
src/main/resources/application.yml

@@ -181,7 +181,7 @@ api_url: http://snd.ideatob.com/mp/api/
 apk_url: E:\UPLOAD\
 
 #访问路径
-fileUrl: http://10.43.26.100:81
+fileUrl: http://192.168.1.116:8001/uploads
 
 #域名
 service_name: 127.0.0.1

+ 33 - 1
src/main/resources/mapper/sys/ActivityRegistrationDao.xml

@@ -100,7 +100,8 @@
             reg.registration_way registration_way,
             reg.review_state review_state,
             reg.sign_state sign_state,
-            reg.registration_time registration_time
+            reg.registration_time registration_time,
+            reg.sign_time sign_time
         FROM
             ac_activity_registration reg
         LEFT JOIN (
@@ -291,6 +292,37 @@
             reg.create_time ASC
     </select>
 
+    <select id="findByActivityIdAndUserIdAndPhones" resultType="platform.modules.sys.entity.ActivityRegistration">
+        SELECT
+        reg.*
+        FROM
+        ac_activity_registration reg
+        WHERE
+        reg.del_flag = 0
+        AND reg.review_state != 3
+        AND reg.activity_id = #{activity_id}
+        AND reg.user_id != #{user_id}
+        AND reg.phone IN
+        <foreach collection="registrations" index="index" item="item" open="(" separator="," close=")">
+            #{item.phone}
+        </foreach>
+    </select>
+
+    <select id="findByActivityAndUserId"
+            resultType="platform.modules.sys.entity.ActivityRegistration">
+
+       SELECT
+           *
+        FROM
+            ac_activity_registration reg
+        WHERE
+            reg.del_flag = 0
+        and reg.activity_id = #{activity_id}
+        and reg.user_id = #{user_id}
+        ORDER BY
+            reg.create_time ASC
+    </select>
+
     <select id="findRegistrationExport" parameterType="java.lang.Integer"
             resultType="platform.modules.sys.report.ActivityRegistrationExports">
 

+ 24 - 5
src/main/resources/templates/admin/government/activity_detail.html

@@ -199,7 +199,7 @@
                 <tr class="text-c">
                     <th>单位名称</th>
                     <th width="90">姓名</th>
-                    <th>手机</th>
+                    <th>手机号码</th>
                     <th>邮箱</th>
                     <th>职位</th>
                     <th>报名途径</th>
@@ -228,7 +228,7 @@
                 <div style="text-align: center">
                     <!--<a th:onclick="'javascript:print(\'打印\',\'/government/activity/printReg/'+${activity.id}+'\');'"
                        class="btn btn-secondary radius" type="button">打印全部</a>-->
-                    <a th:onclick="'javascript:exportExcel(\''+${activity.id}+'\');'"
+                    <a th:onclick="'javascript:exportExcelRegistration(\''+${activity.id}+'\');'"
                        class="btn btn-secondary radius" type="button">下载</a>
                     <a onclick="removeIframe();" class="btn btn-default radius" type="button">返回</a>
                 </div>
@@ -243,23 +243,38 @@
                 <tr class="text-c">
                     <th>单位名称</th>
                     <th width="90">姓名</th>
+                    <th>职位</th>
+                    <th>手机号码</th>
+                    <th>报名时间</th>
                     <th>签到信息</th>
                     <th>签到时间</th>
                 </tr>
                 </thead>
                 <tbody>
                 <tr class="text-c" th:each="m,iterStat:${signList}">
+                    <!--单位名称-->
                     <td th:text="${m.user_name}"></td>
+                    <!--姓名-->
                     <td th:text="${m.name}"></td>
+                    <!--职位-->
+                    <td th:text="${m.position}"></td>
+                    <!--手机号码-->
+                    <td th:text="${m.phone}"></td>
+                    <!--报名时间-->
+                    <td th:text="${#dates.format(m.registration_time, 'yyyy-MM-dd HH:mm:ss')}"></td>
+                    <!--签到信息-->
                     <td th:if="${m.sign_state=='' || m.sign_state==null}">待确认</td>
                     <td th:if="${m.sign_state=='0'}">已签到</td>
                     <td th:if="${m.sign_state=='1'}">未参加</td>
-                    <td th:text="${#dates.format(m.registration_time, 'yyyy-MM-dd HH:mm:ss')}"></td>
+                    <!--签到时间-->
+                    <td th:text="${#dates.format(m.sign_time, 'yyyy-MM-dd HH:mm:ss')}"></td>
                 </tr>
                 </tbody>
             </table>
             <div class="row cl" style="padding-top: 10px">
                 <div style="text-align: center">
+                    <a th:onclick="'javascript:exportExcelSign(\''+${activity.id}+'\');'"
+                       class="btn btn-secondary radius" type="button">下载</a>
                     <a onclick="removeIframe();" class="btn btn-default radius" type="button">返回</a>
                 </div>
             </div>
@@ -294,8 +309,12 @@
         layer.full(index);
     }
 
-    function exportExcel(id) {
-        window.open(pagePath + "/government/activity/exportExcel?id=" + id);
+    function exportExcelRegistration(id) {
+        window.open(pagePath + "/government/activity/exportExcelRegistration?id=" + id);
+    }
+
+    function exportExcelSign(id) {
+        window.open(pagePath + "/government/activity/exportExcelSign?id=" + id);
     }
 
     /**