魏熙美 6 gadus atpakaļ
vecāks
revīzija
265a20385b

+ 7
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TpActivitySignInMapper.java Parādīt failu

@@ -3,6 +3,7 @@ package com.community.huiju.dao;
3 3
 
4 4
 import com.community.huiju.model.TpActivitySignIn;
5 5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6 7
 
7 8
 @Mapper
8 9
 public interface TpActivitySignInMapper {
@@ -17,4 +18,10 @@ public interface TpActivitySignInMapper {
17 18
     int updateByPrimaryKeySelective(TpActivitySignIn record);
18 19
 
19 20
     int updateByPrimaryKey(TpActivitySignIn record);
21
+
22
+    /**
23
+     * 查询当前人员是否已签到
24
+     *
25
+     */
26
+    TpActivitySignIn selectSing(@Param("activityId") Integer activityId,@Param("userID") Integer userID);
20 27
 }

+ 13
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TpActivity.java Parādīt failu

@@ -47,6 +47,19 @@ public class TpActivity {
47 47
      * 报名状态
48 48
      */
49 49
     private String signStatus;
50
+    /**
51
+     * 签到状态
52
+     * 0已签到,1未签到
53
+     */
54
+    private  Integer signType;
55
+
56
+    public void setSignType(Integer signType) {
57
+        this.signType = signType;
58
+    }
59
+
60
+    public Integer getSignType() {
61
+        return signType;
62
+    }
50 63
 
51 64
     private List<String> imgList;
52 65
 

+ 4
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/SocialServiceImpl.java Parādīt failu

@@ -203,6 +203,10 @@ public class SocialServiceImpl implements SocialServiceI {
203 203
         if (null != tpUser) {
204 204
             tpActivity.setUserName(tpUser.getUserName());
205 205
         }
206
+        //查看当前人是否签到
207
+        TpActivitySignIn tpActivitySignIn= tpActivitySignInMapper.selectSing(activityId,userId);
208
+        Integer signType=tpActivitySignIn==null?0:1;
209
+        tpActivity.setSignType(signType);
206 210
 
207 211
         //返回报名状态
208 212
         Integer signNum = tpActivitySignupMapper.findTpActivetitySignByUserId(tpActivity.getId(), communityId, userId);

+ 37
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserVerifyServicelmpl.java Parādīt failu

@@ -41,6 +41,9 @@ public class TaUserVerifyServicelmpl implements TaUserVerifyServicel {
41 41
     @Autowired
42 42
     private TaUserMapper taUserMapper;
43 43
 
44
+    @Autowired
45
+    private TpMessageMapper tpMessageMapper;
46
+
44 47
     /**
45 48
      * 期
46 49
      */
@@ -246,7 +249,40 @@ public class TaUserVerifyServicelmpl implements TaUserVerifyServicel {
246 249
                 // 插入楼栋信息数据
247 250
                 insertTpBuildingOwnerInfo(userElement, user, null);
248 251
             }
249
-
252
+            //审核通过后推送消息(临时数据)
253
+            String[] messageArr= new String[14];
254
+            messageArr[0]="账号已审核通过,看看下面的消息了解下APP如何使用吧!";
255
+            messageArr[1]="点击顶部小区名称,切换到其他房产或小区,或关联更多房产";
256
+            messageArr[2]="点击上方 人脸录入,为自己或家人录入人脸信息,家人未注册可先替TA注册";
257
+            messageArr[3]="点击上方 访客邀请,将生成的二维码发送给访客,访客即可使用二维码开门";
258
+            messageArr[4]="点击上方 公区监控,查看小区公共区域视频直播,看看大家都在干什么";
259
+            messageArr[5]="点击上方 智能家居,安装APP玩转室内智能家居设备";
260
+            messageArr[6]="想知道物业公告和社区活动?点击底部 论坛 查看";
261
+            messageArr[7]="参与社区议事,发布二手/求购/租赁等热门话题,点击底部 论坛 话题";
262
+            messageArr[8]="点击底部开锁图标,获取开门二维码,即可扫码开门";
263
+            messageArr[9]="楼道灯不亮,电梯坏了,通下水道,找保洁?点击底部 服务 报修";
264
+            messageArr[10]="想投诉施工扰民、乱搭乱建、乱停车?点击底部 服务 投诉";
265
+            messageArr[11]="有很急的事需要马上联系物业?点击底部 服务 物业 电话联系物业";
266
+            messageArr[12]="家人想刷脸进门不会操作?点击底部 个人 房屋成员管理 邀请新成员为TA录入人脸";
267
+            messageArr[13]="物业费水电费不想跑去物业交?点击底部 个人 物业相关缴费 一键缴费";
268
+            for (String count:messageArr) {
269
+                TpMessage message = new TpMessage();
270
+                message.setCommunityId(userVerify.getCommunityId());
271
+                message.setMessageType("6");
272
+                message.setAdviceType("1");
273
+                message.setModelType("1");
274
+                message.setUuid(userElement.getId());
275
+                message.setUuidType("1");
276
+                message.setSource("1");
277
+                message.setMessageContent(count);
278
+                message.setStatus("1");
279
+                message.setResult("");
280
+                message.setMeaasgeTypeId("");
281
+                message.setReadStatus("0");
282
+                message.setCreateUser(userElement.getId());
283
+                message.setCreateDate(new Date());
284
+                tpMessageMapper.insert(message);
285
+            }
250 286
             responseBean.addSuccess("操作成功!");
251 287
             return responseBean;
252 288
         }

+ 10
- 0
CODE/smart-community/app-api/src/main/resources/mapper/TpActivitySignInMapper.xml Parādīt failu

@@ -139,4 +139,14 @@
139 139
       create_date = #{createDate,jdbcType=TIMESTAMP}
140 140
     where id = #{id,jdbcType=INTEGER}
141 141
   </update>
142
+  <select id="selectSing" resultMap="BaseResultMap">
143
+    select
144
+    <include refid="Base_Column_List" />
145
+    from
146
+    tp_activity_sign_in
147
+    where
148
+    activity_id = #{activityId,jdbcType=INTEGER}
149
+    and ta_user_id = #{userID,jdbcType=INTEGER}
150
+  </select>
151
+
142 152
 </mapper>

+ 1
- 1
CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/ActivityController.java Parādīt failu

@@ -80,7 +80,7 @@ public class ActivityController extends BaseController {
80 80
             @ApiImplicitParam(paramType = "header", dataTypeClass = String.class, name = "Login-Type", value = "值为 web"),
81 81
             @ApiImplicitParam(paramType = "body", dataTypeClass = String.class, name = "parameter", value = "id活动编号;activityTitle活动标题;" +
82 82
                     "activityCarouselImg轮播图;activityContent活动详情;contentImg活动内容配图;signUpMax活动人数上限;" +
83
-                    "registrationEndTime报名活动结束时间;sort权重;status状态 0 是已作废 1 是已发布   2 是草稿,radio:1是需要二维码,2是不需要")
83
+                    "registrationEndTime报名活动结束时间;sort权重;status状态 0 是已作废 1 是已发布   2 是草稿,signInCode:1是需要二维码,2是不需要")
84 84
     })
85 85
     @RequestMapping(value = "/activity/update", method = RequestMethod.PUT)
86 86
     public ResponseBean updateActivity(@RequestBody String parameter, HttpSession session) {

+ 5
- 2
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/TaUserVerifyServiceImpl.java Parādīt failu

@@ -7,9 +7,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 7
 import com.community.commom.constant.Constant;
8 8
 import com.community.commom.mode.ResponseBean;
9 9
 import com.community.commom.session.UserElement;
10
+import com.community.huiju.dao.MessageMapper;
10 11
 import com.community.huiju.dao.TaUserMapper;
11 12
 import com.community.huiju.dao.TaUserVerifyMapper;
12 13
 import com.community.huiju.dao.UserMapper;
14
+import com.community.huiju.model.Message;
13 15
 import com.community.huiju.model.TaUser;
14 16
 import com.community.huiju.model.TaUserVerify;
15 17
 import com.community.huiju.model.User;
@@ -18,6 +20,8 @@ import org.apache.commons.lang.StringUtils;
18 20
 import org.springframework.beans.factory.annotation.Autowired;
19 21
 import org.springframework.stereotype.Service;
20 22
 
23
+import java.time.LocalDateTime;
24
+import java.util.Date;
21 25
 import java.util.List;
22 26
 
23 27
 /**
@@ -67,9 +71,8 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
67 71
         String status = verifyStatus == true ? Constant.APPROVED : Constant.REJECTED;
68 72
         userVerify.setVerifyStatus(status);
69 73
         userVerify.setVerifyName(user.getUserName());
70
-
71
-        taUserVerifyMapper.updateById(userVerify);
72 74
         responseBean.addSuccess("操作成功!");
75
+
73 76
         return responseBean;
74 77
     }
75 78
 }

+ 10
- 18
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/TpActivityServiceImpl.java Parādīt failu

@@ -236,21 +236,18 @@ public class TpActivityServiceImpl extends ServiceImpl<TpActivityMapper, TpActiv
236 236
                 // 扫码签到
237 237
 
238 238
                 if (radio==1){
239
-                    try {
240
-                       InputStream inputStream= QRCode.encode(qrCodePerproties.getUrl(),tpActivity.getId()+"");
241
-                        String codeUrl= imageServiceI.getImageUrl(inputStream);
239
+
240
+//                       InputStream inputStream= QRCode.encode(qrCodePerproties.getUrl(),tpActivity.getId()+"");
241
+//                        String codeUrl= imageServiceI.getImageUrl(inputStream);
242
+
242 243
                         TdImages tdImages= new TdImages();
243
-                        tdImages.setImageUrl(codeUrl);
244
+                        tdImages.setImageUrl(qrCodePerproties.getUrl() + tpActivity.getId());
244 245
                         tdImages.setUuid(tpActivity.getId());
245 246
                         tdImages.setType("activityCode");
246 247
                         tdImages.setCreateUser(userElement.getId());
247 248
                         tdImages.setCreateTime(LocalDateTime.now());
248 249
                         tdImagesMapper.insert(tdImages);
249
-                    } catch (WriterException e) {
250
-                        e.printStackTrace();
251
-                    } catch (IOException e) {
252
-                        e.printStackTrace();
253
-                    }
250
+
254 251
 
255 252
                 }
256 253
 
@@ -344,21 +341,16 @@ public class TpActivityServiceImpl extends ServiceImpl<TpActivityMapper, TpActiv
344 341
          tdImagesMapper.delete(queryWrapper);
345 342
 
346 343
         if (radio==1){
347
-            try {
348
-                InputStream inputStream= QRCode.encode(qrCodePerproties.getUrl(), tpActivity.getId()+"");
349
-                String codeUrl= imageServiceI.getImageUrl(inputStream);
344
+
345
+//                InputStream inputStream= QRCode.encode(qrCodePerproties.getUrl(), tpActivity.getId()+"");
346
+//                String codeUrl= imageServiceI.getImageUrl(inputStream);
350 347
                 TdImages tdImages= new TdImages();
351
-                tdImages.setImageUrl(codeUrl);
348
+                tdImages.setImageUrl(qrCodePerproties.getUrl() + tpActivity.getId());
352 349
                 tdImages.setUuid(tpActivity.getId());
353 350
                 tdImages.setType(Constant.ACTIVITY);
354 351
                 tdImages.setCreateUser(userElement.getId());
355 352
                 tdImages.setCreateTime(LocalDateTime.now());
356 353
                 tdImagesMapper.insert(tdImages);
357
-            } catch (WriterException e) {
358
-                e.printStackTrace();
359
-            } catch (IOException e) {
360
-                e.printStackTrace();
361
-            }
362 354
 
363 355
         }
364 356
 

+ 1
- 0
VUECODE/smart-property-manage/package.json Parādīt failu

@@ -23,6 +23,7 @@
23 23
     "js-cookie": "2.2.0",
24 24
     "normalize.css": "7.0.0",
25 25
     "nprogress": "0.2.0",
26
+    "qrcode": "^1.3.3",
26 27
     "qs": "^6.6.0",
27 28
     "vue": "2.5.17",
28 29
     "vue-amap": "^0.5.8",

+ 1
- 1
VUECODE/smart-property-manage/src/api/activity.js Parādīt failu

@@ -39,7 +39,7 @@ export function updateActivity(data) {
39 39
     url: '/activity/update',
40 40
     method: 'put',
41 41
     data: {
42
-      radio: data.radio,
42
+      signInCode: data.signInCode,
43 43
       id: data.id,
44 44
       activityTitle: data.activityTitle,
45 45
       activityCarouselImg: data.activityCarouselImg, // 轮播图

+ 10
- 1
VUECODE/smart-property-manage/src/views/social/activity/edi/index.vue Parādīt failu

@@ -50,6 +50,13 @@
50 50
             placeholder="选择日期"/>
51 51
         </div>
52 52
       </el-form-item>
53
+      <el-form-item>
54
+      <div style="display: flex;">
55
+          <span style="width: 200px;transform:translateY(-1%);">是否需要报名人扫码签到</span>
56
+          <el-radio v-model="ruleForm.signInCode" label="1" style="padding-left:4%;font-weight:bold;font-size:12px;transform:translateY(30%);">需要</el-radio>
57
+          <el-radio v-model="ruleForm.signInCode" label="2" style="padding-left:8%;font-weight:bold;font-size:12px;transform:translateY(30%);">不需要</el-radio> 
58
+      </div>
59
+      </el-form-item>
53 60
       <el-form-item prop="sort">
54 61
         <div style="display: flex; justify-content: flex-start;">
55 62
           <span style="width: 120px;">权重值</span>
@@ -70,6 +77,7 @@ export default {
70 77
   data() {
71 78
     return {
72 79
       ruleForm: {
80
+        signInCode: '',
73 81
         id: '',
74 82
         activityTitle: '',
75 83
         activityCarouselImg: '', // 轮播图
@@ -78,7 +86,8 @@ export default {
78 86
         signUpMax: '', //  活动人数上限
79 87
         registrationEndTime: '', // 报名活动结束时间
80 88
         sort: 1, // 权重
81
-        status: '' // 状态 0 是已作废 1 是已发布   2 是草稿 3 是已修改
89
+        status: '', // 状态 0 是已作废 1 是已发布   2 是草稿 3 是已修改
90
+        radio: ''
82 91
       },
83 92
       activityContentList: [], // 活动配图预览列表
84 93
       imageUrl: '', // 轮播图预览

+ 55
- 24
VUECODE/smart-property-manage/src/views/social/activity/info/index.vue Parādīt failu

@@ -6,24 +6,20 @@
6 6
       {{ ruleForm.activityContent }}
7 7
     </div>
8 8
     <div class="activityContextImg">
9
-      <img v-for="item in ruleForm.contentImg" :src="item" width="80" height="80" >
9
+      <img v-for="item in ruleForm.contentImg" :src="item" width="80" height="80" />
10 10
     </div>
11
+    <span v-if="ruleForm.signInCode=='1'">
11 12
     <div style="display: flex;">
12 13
           <span style="width: 200px;transform:translateY(25%);">是否需要报名人扫码签到</span>
13
-          <el-radio v-model="ruleForm.radio" label="1" style="padding-left:4%;font-weight:bold;font-size:12px;transform:translateY(30%);">需要</el-radio>
14
-          <el-radio v-model="ruleForm.radio" label="2" style="padding-left:8%;font-weight:bold;font-size:12px;transform:translateY(30%);">不需要</el-radio> 
15
-          <el-button type="primary" style="float:left;" @click="singn">查看签到名单</el-button> 
14
+          <el-radio v-model="ruleForm.signInCode" label="1" style="padding-left:4%;font-weight:bold;font-size:12px;transform:translateY(30%);">需要</el-radio>
15
+          <el-radio v-model="ruleForm.signInCode" label="2" style="padding-left:8%;font-weight:bold;font-size:12px;transform:translateY(30%);">不需要</el-radio> 
16
+          <span style="padding-left:20%"><el-button type="primary" style="float:left;" @click="singn">查看签到名单</el-button></span> 
16 17
     </div>
17
-      <div style="padding-left:30%;">
18
-        <div><img :src="ruleForm.activityCode" width="200" height="200" ></div>
19
-        
20
-        <a :href="ruleForm.activityCode" download="图片">
21
-      <img :src="ruleForm.activityCode" alt="图片">
22
-        </a>
23
-
24
-        <!-- <a download="图片" :href="ruleForm.activityCode + 'admin/miniProgram.jpg'">点击下载</a>
25
-        <div><el-button type="primary" style="float:left;" @click=" downloadCodeImg()">查看签到名单</el-button> </div> -->
26
-      </div>
18
+    <div style="padding-left:30%;">
19
+        <div><img :src="qrcode" width="200" height="200" ></div>
20
+        <a :href="qrcode" download="qrcode.jpg"  style="color:#00BFFF;padding-left:15%">点击下载</a>
21
+    </div>
22
+    </span>
27 23
     <div class="progress">
28 24
       <div class="text-progress">
29 25
         <span class="people-number">已报名人数 {{ ruleForm.signUpCount }}</span>
@@ -32,7 +28,7 @@
32 28
       </div>
33 29
       <div class="circular"/>
34 30
       <div class="people-limit">限制{{ ruleForm.signUpMax }}人</div>
35
-      <a type="primary" style="float: left;" @click="lockSignUp">查看报名名单</a>
31
+      <el-button type="primary" style="float: left;" @click="lockSignUp">查看报名名单</el-button>
36 32
     </div>
37 33
     <span>报名截止时间:{{ formatDate(ruleForm.registrationEndTime) }}</span>
38 34
     <div class="bom-button">
@@ -42,6 +38,8 @@
42 38
 </template>
43 39
 
44 40
 <script>
41
+import html2canvas from 'html2canvas';
42
+import QRCode from 'qrcode'
45 43
 
46 44
 export default {
47 45
   name: 'Index',
@@ -61,8 +59,11 @@ export default {
61 59
         sort: 1, // 权重
62 60
         status: '' // 状态 0 是已作废 1 是已发布   2 是草稿 3 是已修改
63 61
       },
62
+      codeIMG: '',
63
+      ownerDocument: '',
64 64
       isEdi: true, // 显示修改按钮
65
-      innerW: 0 // 进度条
65
+      innerW: 0, // 进度条
66
+      qrcode: '',
66 67
     }
67 68
   },
68 69
   mounted() {
@@ -76,12 +77,10 @@ export default {
76 77
         this.ruleForm = resData.info
77 78
         this.codeIMG =resData.info.activityCode
78 79
         this.ruleForm.contentImg = resData.contentImg
79
-        if (this.ruleForm.signUpMax !== 0) {
80
-          const tempNum = 450 / this.ruleForm.signUpMax
81
-          this.innerW = this.ruleForm.signUpCount * tempNum
82
-          console.log(this.$refs.innerDiv.style.width)
83
-          console.log(this.innerW)
84
-        }
80
+
81
+        QRCode.toDataURL(this.codeIMG, (err, url)=> {
82
+          this.qrcode = url
83
+        })
85 84
         if (this.ruleForm.status === '0') {
86 85
           this.isEdi = false
87 86
         }
@@ -121,8 +120,40 @@ export default {
121 120
   alink.href = this.ruleForm.activityCode;
122 121
   alink.download = "pic"; //图片名
123 122
   alink.click();
124
-  }
125
-  
123
+  },
124
+
125
+   dataURLToBlob(dataurl) {//ie 图片转格式
126
+          var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
127
+            bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
128
+          while (n--) {
129
+            u8arr[n] = bstr.charCodeAt(n);
130
+          }
131
+          return new Blob([u8arr], {type: mime})
132
+        },
133
+        
134
+        downloadResult() {
135
+          html2canvas(document.getElementById('mymap')).then(canvas => {
136
+				this.imgmap = canvas.toDataURL()
137
+				console.log(999, this.imgmap)
138
+				if (window.navigator.msSaveOrOpenBlob) {
139
+					var bstr = atob(this.imgmap.split(',')[1])
140
+					var n = bstr.length
141
+					var u8arr = new Uint8Array(n)
142
+					while (n--) {
143
+						u8arr[n] = bstr.charCodeAt(n)
144
+					}
145
+					var blob = new Blob([u8arr])
146
+					window.navigator.msSaveOrOpenBlob(blob, 'chart-download' + '.' + 'png')
147
+				} else {
148
+					// 这里就按照chrome等新版浏览器来处理
149
+					const a = document.createElement('a')
150
+					a.href = this.imgmap
151
+					a.setAttribute('download', 'chart-download')
152
+					a.click()
153
+				}
154
+ 
155
+			});
156
+        }
126 157
 }
127 158
   }
128 159
 </script>

+ 378
- 354
文档/MYSQL/smartCommunity.pdb
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


+ 378
- 354
文档/MYSQL/smartCommunity.pdm
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu