From a2746876e81443d52bc4cb6f35bf8554741a6b4c Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 18 十月 2024 14:28:33 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
---
admin/src/views/system/permission.vue | 4
server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java | 78 +++++
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/SmsConfig.java | 4
server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java | 1
server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java | 9
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WxNoticeConfigMapper.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java | 12
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java | 2
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WxNoticeConfigController.java | 109 +++++++
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java | 59 +++
admin/src/views/business/carEvent.vue | 8
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 28 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WxNoticeConfigService.java | 101 ++++++
server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PositionServiceImpl.java | 4
server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java | 6
server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WxNoticeConfig.java | 74 ++++
server/system_service/src/main/java/com/doumee/api/BaseController.java | 8
server/system_gateway/src/main/resources/bootstrap.yml | 2
server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java | 145 +++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WxNoticeConfigServiceImpl.java | 160 ++++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 3
admin/src/views/business/relativeMember.vue | 12
admin/src/views/business/deviceEvent.vue | 2
29 files changed, 827 insertions(+), 35 deletions(-)
diff --git a/admin/src/views/business/carEvent.vue b/admin/src/views/business/carEvent.vue
index 8087856..6c912f5 100644
--- a/admin/src/views/business/carEvent.vue
+++ b/admin/src/views/business/carEvent.vue
@@ -20,10 +20,10 @@
</el-form-item>
<el-form-item label="浜嬩欢绫诲瀷" prop="eventType">
<el-select v-model="searchForm.eventType" placeholder="璇烽�夋嫨">
- <el-option label="鍦ㄥ洯鍘嬬嚎浜嬩欢" value="771760130"></el-option>
- <el-option label="鍦ㄥ洯鏀捐浜嬩欢" value="771760131"></el-option>
- <el-option label="绂诲洯鍘嬬嚎浜嬩欢" value="771760133"></el-option>
- <el-option label="绂诲洯鏀捐浜嬩欢" value="771760134"></el-option>
+ <el-option label="鍏ュ満鍘嬬嚎浜嬩欢" value="771760130"></el-option>
+ <el-option label="鍏ュ満鏀捐浜嬩欢" value="771760131"></el-option>
+ <el-option label="鍑哄満鍘嬬嚎浜嬩欢" value="771760133"></el-option>
+ <el-option label="鍑哄満鏀捐浜嬩欢" value="771760134"></el-option>
</el-select>
</el-form-item>
<el-form-item label="璧峰鏃堕棿" prop="eventType">
diff --git a/admin/src/views/business/deviceEvent.vue b/admin/src/views/business/deviceEvent.vue
index f6b4a8f..911e069 100644
--- a/admin/src/views/business/deviceEvent.vue
+++ b/admin/src/views/business/deviceEvent.vue
@@ -77,7 +77,7 @@
</el-table-column>
<el-table-column label="鎶撴媿鐓х墖" min-width="100px">
<template slot-scope="{row}">
- <el-image style="width: 80px; height: 80px" :src="row.extEventPictureURL"
+ <el-image v-if="row.extEventPictureURL" style="width: 80px; height: 80px" :src="row.extEventPictureURL"
:preview-src-list="[row.extEventPictureURL]">
</el-image>
</template>
diff --git a/admin/src/views/business/relativeMember.vue b/admin/src/views/business/relativeMember.vue
index 31248aa..df14305 100644
--- a/admin/src/views/business/relativeMember.vue
+++ b/admin/src/views/business/relativeMember.vue
@@ -37,9 +37,9 @@
<el-option label="鍚屾澶辫触" value="2"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="">
+<!-- <el-form-item label="">
<el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1">鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
- </el-form-item>
+ </el-form-item>-->
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
@@ -71,8 +71,14 @@
icon="el-icon-plus" v-permissions="['business:traintime:create']">鍩硅鏈熷鍏�</el-button></li>
<li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete"
v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
- <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()">涓嬪彂鎺堟潈</el-button></li>
+ <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()">涓嬪彂鎺堟潈</el-button>
+ <li style="float: right">
+ <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1"
+ @change="search">鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
+ </li>
+<!--
<li><el-button type="primary" v-permissions="['business:empower:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
+-->
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
diff --git a/admin/src/views/system/permission.vue b/admin/src/views/system/permission.vue
index 76f35b3..18935a1 100644
--- a/admin/src/views/system/permission.vue
+++ b/admin/src/views/system/permission.vue
@@ -29,8 +29,8 @@
>
<el-table-column type="selection" fixed="left" width="55"></el-table-column>
<el-table-column prop="code" label="鏉冮檺缂栫爜" fixed="left" min-width="200px"></el-table-column>
- <el-table-column prop="name" label="鏉冮檺鍚嶇О" fixed="left" min-width="120px"></el-table-column>
- <el-table-column prop="remark" label="鏉冮檺澶囨敞" min-width="120px"></el-table-column>
+ <el-table-column prop="name" label="鏉冮檺鍚嶇О" fixed="left" min-width="200px"></el-table-column>
+ <el-table-column prop="remark" label="鏉冮檺澶囨敞" min-width="200px"></el-table-column>
<el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
<template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
</el-table-column>
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
index 8ecd0a5..099da4a 100644
--- a/server/system_gateway/src/main/resources/bootstrap.yml
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
profiles:
- active: dev
+ active: pro
application:
name: system_gateway
# 瀹夊叏閰嶇疆
diff --git a/server/system_service/src/main/java/com/doumee/api/BaseController.java b/server/system_service/src/main/java/com/doumee/api/BaseController.java
index 7aae08b..3001582 100644
--- a/server/system_service/src/main/java/com/doumee/api/BaseController.java
+++ b/server/system_service/src/main/java/com/doumee/api/BaseController.java
@@ -1,6 +1,7 @@
package com.doumee.api;
import com.alibaba.fastjson.JSONObject;
+import com.doumee.config.jwt.JwtProperties;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -13,9 +14,11 @@
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
+import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.TimeUnit;
/**
* Controller鍩虹被
@@ -27,6 +30,8 @@
@Autowired
private RedisTemplate<String,Object> stringRedisTemplate;
+ @Resource
+ private JwtProperties jwtProperties;
/**
* 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
* @author Eva.Caesar Liu
@@ -47,6 +52,9 @@
}
return user;
}
+ public void updateLoginUser (String token,LoginUserInfo userInfo) {
+ stringRedisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token,JSONObject.toJSONString(userInfo),jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
+ }
/**
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java
index fa6223a..eee029f 100644
--- a/server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java
@@ -4,6 +4,7 @@
import com.doumee.biz.system.SystemUserBiz;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
import com.doumee.dao.system.dto.UpdatePwdDto;
import com.doumee.service.system.SystemLoginService;
@@ -35,8 +36,11 @@
@ApiOperation("淇敼褰撳墠鐢ㄦ埛瀵嗙爜")
@PostMapping("/updatePwd")
public ApiResponse updatePwd (@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated @RequestBody UpdatePwdDto dto) {
- dto.setUserId(this.getLoginUser(token).getId());
+ LoginUserInfo userInfo = this.getLoginUser(token);
+ dto.setUserId(userInfo.getId());
systemUserBiz.updatePwd(dto);
+ userInfo.setNeedChangePwd(Constants.ONE);
+ updateLoginUser(token,userInfo);//鏇存柊鐧诲綍token涓粦瀹氱殑鐢ㄦ埛淇℃伅涓哄凡鏇存柊瀵嗙爜
return ApiResponse.success(null);
}
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index 71edf44..071fe85 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -9,6 +9,7 @@
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.PwdCheckUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.system.SystemDepartmentUserMapper;
import com.doumee.dao.system.dto.*;
@@ -81,6 +82,13 @@
@Override
public void updatePwd(UpdatePwdDto dto) {
+ //鐧诲綍瀵嗙爜澶嶆潅搴︽牎楠岋細6-20涓瓧绗︼紝鑷冲皯鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃2绉�
+ if(StringUtils.isBlank(dto.getNewPwd())
+ ||dto.getNewPwd().length()>20
+ ||dto.getNewPwd().length()<6
+ ||PwdCheckUtil.checkPassword(dto.getNewPwd())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝瀵嗙爜澶嶆潅搴︿笉婊¤冻瑕佹眰锛�6-20涓瓧绗︼紝鑷冲皯鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃2绉�");
+ }
SystemUser user = systemUserService.findById(dto.getUserId());
if (user.getDeleted()) {
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鐢ㄦ埛涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎");
@@ -93,6 +101,7 @@
SystemUser newUser = new SystemUser();
newUser.setId(dto.getUserId());
newUser.setPassword(Utils.Secure.encryptPassword(dto.getNewPwd(), user.getSalt()));
+ newUser.setNeedChangePwd(Constants.ONE);
systemUserService.updateById(newUser);
}
@@ -108,6 +117,7 @@
updateUserDto.setId(dto.getId());
updateUserDto.setUpdateUser(dto.getOperaUserId());
updateUserDto.setPassword(Utils.Secure.encryptPassword(dto.getPassword(), systemUser.getSalt()));
+ updateUserDto.setNeedChangePwd(Constants.ZERO);
systemUserService.updateById(updateUserDto);
}
@@ -138,6 +148,7 @@
systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt));
systemUser.setSalt(salt);
systemUser.setSource(Constants.ZERO);
+ systemUser.setNeedChangePwd(Constants.ZERO);
// 鍒涘缓鐢ㄦ埛璁板綍
systemUser.setType(Constants.ZERO);
@@ -263,20 +274,27 @@
.filter(s->StringUtils.isNotBlank(s))
.distinct()
.collect(Collectors.toList());
+ String pwd =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode();
if (!CollectionUtils.isEmpty(collect)){
QueryWrapper<SystemDepartment> wrapper = new QueryWrapper<>();
wrapper.lambda().in(SystemDepartment::getName,collect);
List<SystemDepartment> systemDepartments = systemDepartmentService.findList(wrapper);
Map<Integer, String> collect1 = systemDepartments.stream().collect(Collectors.toMap(s -> s.getId(), s -> s.getName()));
-
+ // 鐢熸垚瀵嗙爜鐩�
dataList.forEach(s->{
+
CreateSystemUserDTO systemUser = new CreateSystemUserDTO();
systemUser.setDepartmentId(getKey(collect1,s.getDepartmentName()));
systemUser.setUsername(s.getUsername());
systemUser.setRealname(s.getUsername());
systemUser.setEmpNo(s.getEmpNo());
systemUser.setMobile(s.getMobile());
- systemUser.setPassword(s.getMobile());
+ String salt = RandomStringUtils.randomAlphabetic(6);
+// systemUser.setPassword(s.getMobile());
+ // 鐢熸垚瀵嗙爜 String pwd =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode();
+ systemUser.setPassword(Utils.Secure.encryptPassword(pwd, salt));
+ systemUser.setNeedChangePwd(Constants.ZERO);
+ systemUser.setSalt(salt);
systemUser.setCreateUser(loginUserInfo.getId());
systemUser.setUpdateUser(loginUserInfo.getId());
systemUser.setType(Constants.ZERO);
@@ -297,7 +315,11 @@
systemUser.setRealname(s.getUsername());
systemUser.setEmpNo(s.getEmpNo());
systemUser.setMobile(s.getMobile());
- systemUser.setPassword(s.getMobile());
+ // 鐢熸垚瀵嗙爜 String pwd =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode();
+ String salt = RandomStringUtils.randomAlphabetic(6);
+ systemUser.setPassword(Utils.Secure.encryptPassword(pwd, salt));
+ systemUser.setNeedChangePwd(Constants.ZERO);
+// systemUser.setPassword(s.getMobile());
systemUser.setCreateUser(loginUserInfo.getId());
systemUser.setUpdateUser(loginUserInfo.getId());
systemUser.setType(Constants.ZERO);
diff --git a/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java b/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
index 907be16..8cc71b7 100644
--- a/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
+++ b/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
@@ -36,6 +36,7 @@
private Integer memberId;
private Integer type;
+ private Integer needChangePwd;
private String mobile;
private String sessionId;
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
index 1871e2d..89cfa4f 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DESUtil.java
@@ -18,6 +18,7 @@
import java.net.URLEncoder;
import java.security.Key;
import java.util.Base64;
+import java.util.UUID;
import java.util.concurrent.TimeUnit;
public class DESUtil {
@@ -191,12 +192,14 @@
long currentTimeMillis = System.currentTimeMillis() + 1000*60*60*hour;
String encrypt = DESUtil.encrypt("12345678",currentTimeMillis + "_" + userName );
try{
- encrypt = URLEncoder.encode(encrypt,"UTF-8");
+// encrypt = Base64.getEncoder().encodeToString(encrypt.getBytes());
+// encrypt = URLEncoder.encode(encrypt,"UTF-8");
}catch (Exception e){
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"鐢熸垚鍔犲瘑鐮佸け璐�!");
}
- redisTemplate.opsForValue().set(Constants.REDIS_HK_TOKEN_KEY+encrypt, encrypt,1000*60*60*hour, TimeUnit.MILLISECONDS);
- return encrypt;
+ String token = UUID.randomUUID().toString();
+ redisTemplate.opsForValue().set(Constants.REDIS_HK_TOKEN_KEY+token, encrypt,1000*60*60*hour, TimeUnit.MILLISECONDS);
+ return token;
}
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java
new file mode 100644
index 0000000..8ecd514
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java
@@ -0,0 +1,78 @@
+package com.doumee.core.utils;
+
+import java.util.regex.Pattern;
+
+/**
+ * Java姝e垯鏍¢獙瀵嗙爜鑷冲皯鍖呭惈锛氬瓧姣嶆暟瀛楃壒娈婄鍙蜂腑鐨�2绉�
+ */
+public class PwdCheckUtil {
+
+ /**
+ * 鍋囧畾璁剧疆瀵嗙爜鏃讹紝瀵嗙爜瑙勫垯涓猴細 瀛楁瘝銆佹暟瀛椼�佺壒娈婄鍙凤紝鑷冲皯鍖归厤2绉�
+ * 鍒欏瘑鐮佸彲鑳藉嚭鐜扮殑鎯呭喌鏈夛細
+ * 1銆佹暟瀛�+鐗规畩绗﹀彿
+ * 2銆佸瓧姣�+鐗规畩绗﹀彿
+ * 3銆佸瓧姣�+鏁板瓧
+ * 4銆佸瓧姣�+鏁板瓧+鐗规畩绗﹀彿
+ * (缁勫悎涓庨『搴忔棤鍏�)
+ * 瑙e喅鎬濊矾锛�
+ * 1銆侀亶鍘嗗瓧绗︿覆鐨勫瓧绗︽暟缁勶紝鏌ョ湅鏄惁鍖呭惈鐩爣鐗规畩瀛楃锛岃嫢鍖呭惈锛屽垯鏍囪瀛楃涓�
+ * 鍖呭惈鐗规畩瀛楃锛屽苟鏇挎崲褰撳墠鐗规畩瀛楃涓�''銆�
+ * 2銆佸垽鏂墿涓嬬殑瀛楃缁勬垚鐨勫瓧绗︿覆锛屾槸鍚﹀尮閰嶄互涓嬫儏鍐�
+ * - 绾瓧姣�
+ * - 绾暟瀛�
+ * - 瀛楁瘝+鏁板瓧
+ * 3銆佸瓧绗︿覆鍖归厤瑙勫垯
+ * 绾瓧姣�+鍖呭惈鐗规畩瀛楃 ---- 鍖归厤閫氳繃
+ * 绾暟瀛�+鍖呭惈鐗规畩瀛楃 ---- 鍖归厤閫氳繃
+ * 瀛楁瘝+鏁板瓧+鍖呭惈涓暟瀛楃 ---- 鍖归厤閫氳繃
+ */
+ //鐗规畩瀛楃
+ public static final String SPEC_CHARACTERS = " !\"#$%&'()*+,-./:;<=>?@\\]\\[^_`{|}~";
+ // 绾瓧姣�
+ public static final String character = "[a-zA-Z]{1,}$";
+ // 绾暟瀛�
+ public static final String numberic = "[0-9]{1,}$";
+ // 瀛楁瘝鍜屾暟瀛�
+ public static final String number_and_character = "((^[a-zA-Z]{1,}[0-9]{1,}[a-zA-Z0-9]*)+)" +
+ "|((^[0-9]{1,}[a-zA-Z]{1,}[a-zA-Z0-9]*)+)$";
+ // 瀛楁瘝鎴栨暟瀛�
+ public static final String number_or_character = "[a-zA-Z0-9]+$";
+ // 瀛楁瘝鏁板瓧涓嬪垝绾�
+ public static final String ncw = "\\w+$";
+
+ public static boolean checkPassword(String targetString) {
+ String opStr = targetString;
+ boolean isLegal = false;
+ boolean hasSpecChar = false;
+ char[] charArray = opStr.toCharArray();
+ for (char c : charArray) {
+ if (SPEC_CHARACTERS.contains(String.valueOf(c))) {
+ hasSpecChar = true;
+ // 鏇挎崲姝ゅ瓧绗︿覆
+ opStr = opStr.replace(c, ' ');
+ }
+ }
+ String excSpecCharStr = opStr.replace(" ", "");
+ boolean isPureNum = Pattern.compile(numberic).matcher(excSpecCharStr).matches();
+ boolean isPureChar = Pattern.compile(character).matcher(excSpecCharStr).matches();
+ boolean isNumAndChar = Pattern.compile(number_and_character).matcher(excSpecCharStr).matches();
+ isLegal = ((isPureNum && hasSpecChar)
+ || (isPureChar && hasSpecChar) || isNumAndChar && hasSpecChar) || isNumAndChar;
+ System.out.println("瀛楃涓诧細" + targetString + ",鏄惁绗﹀悎瑙勫垯锛�" + isLegal);
+ System.out.println("---------------");
+ return isLegal;
+ }
+
+ public static void main(String[] args) {
+ checkPassword("fasdagd");
+ checkPassword("41234123");
+ checkPassword("#$%^&&*(");
+ checkPassword("fasd$$");
+ checkPassword("41234%%%");
+ checkPassword("fasd41^(324");
+ checkPassword("fa413%^&*");
+ checkPassword("&%fa413%^&*");
+ }
+
+}
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java
index 7e7ae5b..abd294b 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/NoticesDTO.java
@@ -17,9 +17,12 @@
@Data
public class NoticesDTO {
- @ApiModelProperty(value = "鐢ㄦ埛涓婚敭",hidden = true)
+ @ApiModelProperty(value = "member涓婚敭",hidden = true)
private Integer memberId;
+ @ApiModelProperty(value = "鐢ㄦ埛涓婚敭",hidden = true)
+ private Integer userId;
+
@ApiModelProperty(value = "鏌ヨ绫诲瀷: 0=寰呭鐞嗭紱1=宸插鐞嗭紱2=鎴戝彂甯冪殑锛�3=鎶勯�佹垜")
private Integer queryType;
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index 196e1e6..d4874b3 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -84,6 +84,8 @@
@ApiModelProperty(value = "鍒涘缓浜�", example = "1", hidden = true)
private Integer createUser;
+ @ApiModelProperty(value = "鏄惁闇�瑕佸己鍒舵洿鏂板瘑鐮� 0鏄� 1鍚�")
+ private Integer needChangePwd;
@ApiModelProperty(value = "鏇存柊浜�", example = "1", hidden = true)
private Integer updateUser;
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
index 15af0a6..72df53c 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
@@ -178,6 +178,7 @@
queryWrapper.ge(noticesDTO.getStartDate() != null, Notices::getCreateDate, Utils.Date.getStart(noticesDTO.getStartDate() ));
queryWrapper.le(noticesDTO.getEndDate() != null, Notices::getCreateDate, Utils.Date.getEnd(noticesDTO.getEndDate() ));
queryWrapper.eq(Objects.nonNull(noticesDTO.getType()),Notices::getType,noticesDTO.getType());
+ queryWrapper.eq(Objects.nonNull(noticesDTO.getMemberId()),Notices::getUserId,noticesDTO.getMemberId());
queryWrapper.eq(StringUtils.isNotBlank(noticesDTO.getTitle()),Notices::getTitle,noticesDTO.getTitle());
queryWrapper.orderByDesc(Notices::getCreateDate);
PageData<Notices> pageData = PageData.from(noticesMapper.selectJoinPage(page,Notices.class, queryWrapper));
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
index a968b68..05e12cf 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/WmsPushController.java
@@ -72,7 +72,7 @@
e.printStackTrace();
success = Constants.ONE;
}finally {
- wmsService.saveInterfaceLog("/wms/push/outboundNotice", "鎺ㄩ�佸嚭搴撳崟閫氱煡浠诲姟",JSONObject.toJSONString(param),success
+ wmsService.saveInterfaceLog("/wms/push/outboundNotice", "銆怶MS銆戞帹閫佸嚭搴撳崟閫氱煡浠诲姟",JSONObject.toJSONString(param),success
, JSONObject.toJSONString(result),Constants.ONE);
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java
index f6d5cf1..dc5ade1 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java
@@ -97,7 +97,9 @@
@ApiOperation(value = "浠诲姟涓績澶撮儴 - PC", notes = "PC")
@PostMapping("/taskCenterHeadPC")
public ApiResponse<InternalHomeVO> taskCenterHeadPC(@RequestBody NoticesDTO noticesDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
- noticesDTO.setMemberId(getLoginUser(token).getMemberId());
+ LoginUserInfo loginUserInfo = getLoginUser(token);
+ noticesDTO.setMemberId(loginUserInfo.getMemberId());
+ noticesDTO.setUserId(loginUserInfo.getId());
return ApiResponse.success("鏌ヨ鎴愬姛",approveService.getHomeDataPC(noticesDTO));
}
@@ -107,6 +109,7 @@
public ApiResponse<PageData<Notices>> taskPage (@RequestBody PageWrap<NoticesDTO> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
LoginUserInfo loginUserInfo = getLoginUser(token);
pageWrap.getModel().setMemberId(loginUserInfo.getMemberId());
+ pageWrap.getModel().setUserId(loginUserInfo.getId());
return ApiResponse.success(noticesService.taskCanterPage(pageWrap));
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WxNoticeConfigController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WxNoticeConfigController.java
new file mode 100644
index 0000000..696f6f6
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WxNoticeConfigController.java
@@ -0,0 +1,109 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.config.annotation.CloudRequiredPermission;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.WxNoticeConfig;
+import com.doumee.service.business.WxNoticeConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/10/17 15:44
+ */
+@Api(tags = "寰俊鍏紬鍙烽�氱煡閰嶇疆")
+@RestController
+@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/wxNoticeConfig")
+public class WxNoticeConfigController extends BaseController {
+
+ @Autowired
+ private WxNoticeConfigService wxNoticeConfigService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @CloudRequiredPermission("business:wxnoticeconfig:create")
+ public ApiResponse create(@RequestBody WxNoticeConfig wxNoticeConfig) {
+ return ApiResponse.success(wxNoticeConfigService.create(wxNoticeConfig));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @CloudRequiredPermission("business:wxnoticeconfig:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ wxNoticeConfigService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @CloudRequiredPermission("business:wxnoticeconfig:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ wxNoticeConfigService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @CloudRequiredPermission("business:wxnoticeconfig:update")
+ public ApiResponse updateById(@RequestBody WxNoticeConfig wxNoticeConfig) {
+ wxNoticeConfigService.updateById(wxNoticeConfig);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @CloudRequiredPermission("business:wxnoticeconfig:query")
+ public ApiResponse<PageData<WxNoticeConfig>> findPage (@RequestBody PageWrap<WxNoticeConfig> pageWrap) {
+ return ApiResponse.success(wxNoticeConfigService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @CloudRequiredPermission("business:wxnoticeconfig:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<WxNoticeConfig> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(WxNoticeConfig.class).export(wxNoticeConfigService.findPage(pageWrap).getRecords(), "寰俊鍏紬鍙烽�氱煡閰嶇疆", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @CloudRequiredPermission("business:wxnoticeconfig:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(wxNoticeConfigService.findById(id));
+ }
+
+
+
+ @ApiOperation("鎵归噺绂佸惎鐢�")
+ @GetMapping("/updateStatus/batch")
+ @CloudRequiredPermission("business:wxnoticeconfig:update")
+ public ApiResponse updateStatusBatch(@RequestParam String ids,@RequestParam Integer status) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ wxNoticeConfigService.updateStatusByIdInBatch(idList,status);
+ return ApiResponse.success(null);
+ }
+
+
+
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
index 83fb8c8..7782d65 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -68,12 +68,10 @@
@ApiOperation("token瑙f瀽")
@GetMapping("/water/decodeToken")
public Map<String,Object> decodeToken(@RequestParam String token) {
- String token1 =token;
- log.info("銆愬畨闃插钩鍙板崟鐐圭櫥褰晅oken瑙f瀽銆�================="+token1);
+ log.info("銆愬畨闃插钩鍙板崟鐐圭櫥褰晅oken瑙f瀽銆�================="+token);
int success = Constants.ZERO;
Map<String,Object> result = new HashMap<>() ;
try {
- token = URLEncoder.encode(token1);
HkBaseTokenRequest hkBaseTokenRequest = new HkBaseTokenRequest();
hkBaseTokenRequest.setToken(token);
result = this.decodeTokenForHk(hkBaseTokenRequest);
@@ -85,7 +83,7 @@
e.printStackTrace();
success = Constants.ONE;
}finally {
- interfaceLogService.saveInterfaceLog("/hk/api/water/decodeToken", "銆愬畨闃插钩鍙般�戝崟鐐圭櫥褰晅oken瑙f瀽",token1,
+ interfaceLogService.saveInterfaceLog("/hk/api/water/decodeToken", "銆愬畨闃插钩鍙般�戝崟鐐圭櫥褰晅oken瑙f瀽",token,
success, JSONObject.toJSONString(result),Constants.ZERO);
}
return result;
@@ -106,11 +104,7 @@
result.put("msg","token鏃犳晥!");
return result;
}
- String userName = null;
- try {
- userName = DESUtil.verifyHkToken(URLDecoder.decode(hkBaseTokenRequest.getToken(),"UTF-8"));
- }catch (Exception e){
- }
+ String userName = DESUtil.verifyHkToken( redisToken);;
if(StringUtils.isBlank(userName)){
result.put("code","-1");
result.put("msg","token鍙傛暟涓虹┖");
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
new file mode 100644
index 0000000..800b992
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
@@ -0,0 +1,145 @@
+package com.doumee.core.wx.wxPlat;
+
+import com.doumee.core.utils.Constants;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/10/17 13:54
+ */
+public class WxPlatConstants {
+
+
+ public static final String visit ="1" ;
+ public static final String visitReport ="2" ;
+ public static final String hiddenDanger ="3" ;
+ public static final String carUse ="4" ;
+ public static final String meeting ="5" ;
+ public static final String platformBook ="6" ;
+ public static final String platformJob ="7" ;
+
+
+ /**
+ * 璁垮鐢宠
+ */
+ public interface visitContent{
+ // 鎻愪氦鎴愬姛缁欑敵璇蜂汉锛氱敵璇锋彁浜ゆ垚鍔熷緟瀹℃牳
+ String visitUpload = "visitUpload";
+ // 瀹℃壒閫氳繃缁欑敵璇蜂汉锛氱敵璇峰凡瀹℃牳閫氳繃
+ String visitAuditSuccess = "visitAuditSuccess";
+ // 瀹℃壒椹冲洖缁欑敵璇蜂汉锛氱敵璇峰凡琚┏鍥�
+ String visitAuditFail = "visitWaitAudit";
+ // 缁欏鎵逛汉锛氱敵璇峰緟鎮ㄥ鎵�
+ String visitWaitAudit = "visitWaitAudit";
+ }
+
+
+ /**
+ * 璁垮鎶ュ
+ */
+ public interface visitReportContent{
+ // 鎻愪氦鎴愬姛缁欑敵璇蜂汉锛氱敵璇锋彁浜ゆ垚鍔熷緟瀹℃牳
+ String visitReportUpload = "visitReportUpload";
+ // 瀹℃壒閫氳繃缁欑敵璇蜂汉锛氱敵璇峰凡瀹℃牳閫氳繃
+ String visitReportAuditSuccess = "visitReportAuditSuccess";
+ // 瀹℃壒椹冲洖缁欑敵璇蜂汉锛氱敵璇峰凡琚┏鍥�
+ String visitReportAuditFail = "visitReportAuditFail";
+ // 缁欏鎵逛汉锛氱敵璇峰緟鎮ㄥ鎵�
+ String visitReportWaitAudit = "visitReportAuditSuccess";
+ }
+
+
+ /**
+ * 闅愭偅闅忔墜鎷�
+ */
+ public interface hiddenDangerContent{
+ //闅愭偅涓婃姤閫氱煡
+ String hiddenDangerUpload = "hiddenDangerUpload";
+ //闅愭偅鏁存敼閫氱煡
+ String hiddenDangerDeal = "hiddenDangerDeal";
+ }
+
+
+ /**
+ * 鐢ㄨ溅鐢宠
+ */
+ public interface carUseBookContent{
+ //鐭俊閫氱煡妯℃澘锛堢粰澶勭悊浜猴級
+ String carUseBookUpload = "carUseBookUpload";
+ //鐢ㄨ溅鐢宠-瀹℃壒閫氳繃閫氱煡锛堢粰鐢宠浜猴級锛氥��
+ String carUseBookAuditSuccess = "carUseBookAuditSuccess";
+ //鐢ㄨ溅鐢宠-瀹℃壒椹冲洖閫氱煡锛堢粰鐢宠浜猴級锛氥��
+ String carUseBookAuditFail = "carUseBookAuditFail";
+ //鐢ㄨ溅鐢宠-瀹℃壒椹冲洖閫氱煡锛堢粰鐢宠浜猴級锛氥��
+ String carUseBookWaitAudit = "carUseBookWaitAudit";
+ }
+
+
+
+
+ /**
+ * 浼氳閫氱煡
+ */
+ public interface meetingContent{
+ //绾夸笅浼氳棰勭害鎴愬姛閫氱煡
+ String reservationSuccess = "reservationSuccess";
+ //浼氳鍙栨秷閫氱煡銆�
+ String meetingCancel = "meetingCancel";
+ //浼氳鍗冲皢寮�濮嬫彁閱掞紙璁㈤槄娑堟伅锛�
+ String meetingBeginA = "meetingBeginA";
+ //浼氳鍗冲皢缁撴潫鎻愰啋锛堣闃呮秷鎭級
+ String meetingEndA = "meetingEndA";
+ }
+
+
+
+ /**
+ * 鐗╂祦杞﹂绾�
+ */
+ public interface platformBookContent{
+ // 鎻愪氦鎴愬姛缁欑敵璇蜂汉锛氱敵璇锋彁浜ゆ垚鍔熷緟瀹℃牳
+ String platformBookUpload = "platformBookUpload";
+ // 瀹℃壒閫氳繃缁欑敵璇蜂汉锛氱敵璇峰凡瀹℃牳閫氳繃
+ String platformBookAuditSuccess = "platformBookAuditSuccess";
+ // 瀹℃壒椹冲洖缁欑敵璇蜂汉锛氱敵璇峰凡琚┏鍥�
+ String platformBookAuditFail = "platformBookWaitAudit";
+ // 缁欏鎵逛汉锛氱敵璇峰緟鎮ㄥ鎵�
+ String platformBookWaitAudit = "platformBookWaitAudit";
+ }
+
+
+
+ /**
+ * 鐗╂祦浣滀笟
+ */
+ public interface platformJobContent{
+ //鐗╂祦杞﹂绾�-鍙彿鍏ュ洯绛夊緟锛堢粰鍙告満锛�
+ String platformJobCallIn = "platformJobCallIn";
+ //鐗╂祦杞﹂绾�-鏈堝彴鍙彿锛堢粰鍙告満锛�
+ String platformJobSingIn = "platformJobSingIn";
+ //鐗╂祦杞﹂绾�-鏈堝彴鍙彿杩囧彿锛堢粰鍙告満锛�
+ String platformJobOverNum = "platformJobOverNum";
+ //鐗╂祦杞﹂绾�-浣滀笟寮�濮嬶紙缁欏徃鏈猴級
+ String platformJobWorking = "platformJobWorking";
+ //鐗╂祦杞﹂绾�-浣滀笟瀹屾垚锛堢粰鍙告満锛�
+ String platformJobFinish = "platformJobFinish";
+ //鐗╂祦杞﹂绾�-绂诲洯鎺堟潈锛堢粰鍙告満锛�
+ String platformJobLevelPower = "platformJobLevelPower";
+ //鐗╂祦杞﹂绾�-鏈堝彴杞Щ锛堢粰鍙告満锛�
+ String platformJobMove = "platformJobMove";
+ //鐗╂祦杞﹂绾�-浣滀笟寮傚父鎸傝捣锛堢粰鍙告満锛�
+ String platformJobError = "platformJobError";
+ //鐗╂祦杞﹂绾�-鏈堝彴鍋滈潬瓒呮椂锛堢粰鍙告満锛�
+ String platformJobTimeOut = "platformJobTimeOut";
+ //鐗╂祦杞﹂绾�-鏈堝彴鍋滈潬閿欒锛堢粰鍙告満锛�
+ String platformJobStopErr = "platformJobStopErr";
+ // 杩愯緭浠诲姟涓嬭揪 锛堢粰鍙告満锛�
+ String platformJobNewJob = "platformJobNewJob";
+ }
+
+
+
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
index 57febaf..90a9baf 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -1,6 +1,11 @@
package com.doumee.core.wx.wxPlat;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.WxNoticeConfigMapper;
import com.doumee.dao.business.model.Visits;
+import com.doumee.dao.business.model.WxNoticeConfig;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
@@ -8,6 +13,9 @@
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Objects;
/**
* 寰俊鍏紬鍙烽�氱煡
@@ -28,8 +36,9 @@
this.wxMpService = wxMpService;
}
+
/**
- * 璁垮璁板綍瀹℃壒涓氬姟閫氱煡
+ * 璁垮涓氬姟閫氱煡鎺ュ彛
*/
public Boolean sendVisitAuditTemplateNotice(Visits visits,String prefix,String tempId){
if(StringUtils.isBlank(visits.getOpenid())){
@@ -40,6 +49,8 @@
.templateId(tempId)
.url(prefix + visits.getId())
.build();
+
+
String thing1 = "寰呭鎵�";
if(visits.getStatus()==2){
thing1 = "瀹℃牳閫氳繃";
@@ -66,4 +77,50 @@
}
+
+ /**
+ * 璁垮涓氬姟閫氱煡
+ */
+ public void sendVisitTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper,Visits visits,String objCode, String prefix, String tempId, List<String> openIds){
+ if(CollectionUtils.isNotEmpty(openIds)){
+ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
+ .eq(WxNoticeConfig::getObjCode,objCode)
+ .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+ .last(" limit 1")
+ );
+ if(Objects.isNull(wxNoticeConfig)){
+ return;
+ }
+ WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
+ .toUser(visits.getOpenid())
+ .templateId(tempId)
+ .url(prefix + visits.getId())
+ .build();
+
+ templateMessage.addData(new WxMpTemplateData("thing1", visits.getName()))
+ .addData(new WxMpTemplateData("car_number7", StringUtils.isBlank(visits.getCarNos())?visits.getCarNos():"-"))
+ .addData(new WxMpTemplateData("character_string6", Constants.equalsInteger(visits.getMemberNum(),Constants.ZERO)?Constants.ONE+"":visits.getMemberNum().toString()))
+ .addData(new WxMpTemplateData("const9", wxNoticeConfig.getTitile()))
+ .addData(new WxMpTemplateData("thing4", visits.getReason()))
+ ;
+ String msgId = null;
+ try {
+ for (String openId:openIds) {
+ templateMessage.setToUser(openId);
+ }
+ // 鍙戦�佹ā鏉挎秷鎭�
+ msgId = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
+ } catch (WxErrorException e) {
+ e.printStackTrace();
+ }
+ log.warn("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", msgId != null ? "鎴愬姛" : "澶辫触");
+
+
+ }
+
+ }
+
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WxNoticeConfigMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WxNoticeConfigMapper.java
new file mode 100644
index 0000000..662380c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WxNoticeConfigMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.WxNoticeConfig;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/10/17 15:44
+ */
+public interface WxNoticeConfigMapper extends BaseMapper<WxNoticeConfig> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/SmsConfig.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/SmsConfig.java
index dbf31cb..bd78a7a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/SmsConfig.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/SmsConfig.java
@@ -59,6 +59,10 @@
@ExcelColumn(name="鐭俊缂栫爜")
private String code;
+ @ApiModelProperty(value = "鏍囬")
+ @ExcelColumn(name="鏍囬")
+ private String name;
+
@ApiModelProperty(value = "鐭俊鍐呭")
@ExcelColumn(name="鐭俊鍐呭")
private String content;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WxNoticeConfig.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WxNoticeConfig.java
new file mode 100644
index 0000000..e345901
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WxNoticeConfig.java
@@ -0,0 +1,74 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 寰俊鍏紬鍙烽�氱煡閰嶇疆
+ * @author 姹熻箘韫�
+ * @date 2024/10/17 15:44
+ */
+@Data
+@ApiModel("寰俊鍏紬鍙烽�氱煡閰嶇疆")
+@TableName("`wx_notice_config`")
+public class WxNoticeConfig {
+
+ @TableId(type = IdType.AUTO)
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private String creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private String edirot;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞")
+ private String remark;
+
+ @ApiModelProperty(value = "寮�鍚姸鎬侊細0寮�鍚紱1鍏抽棴", example = "1")
+ @ExcelColumn(name="寮�鍚姸鎬侊細0寮�鍚紱1鍏抽棴")
+ private Integer status;
+
+ @ApiModelProperty(value = "妯℃澘ID")
+ @ExcelColumn(name="妯℃澘ID")
+ private String tempId;
+
+ @ApiModelProperty(value = "鏍囬(鏋氫妇鍊�)")
+ @ExcelColumn(name="鏍囬(鏋氫妇鍊�)")
+ private String titile;
+
+ @ApiModelProperty(value = "涓氬姟缂栫爜")
+ @ExcelColumn(name="涓氬姟缂栫爜")
+ private String objCode;
+
+ @ApiModelProperty(value = "涓氬姟绫诲瀷 1=璁垮涓氬姟锛�2=璁垮鎶ュ锛�3=闅愭偅闅忔墜鎷嶏紱4=鐢ㄨ溅鐢宠锛�5=浼氳瀹や俊鎭紱6=鐗╂祦杞﹂绾︼紱7=鐗╂祦杞︿綔涓�", example = "1")
+ @ExcelColumn(name="涓氬姟绫诲瀷 1=璁垮涓氬姟锛�2=璁垮鎶ュ锛�3=闅愭偅闅忔墜鎷嶏紱4=鐢ㄨ溅鐢宠锛�5=浼氳瀹や俊鎭紱6=鐗╂祦杞﹂绾︼紱7=鐗╂祦杞︿綔涓�")
+ private Integer objType;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
index 195779b..880978b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -115,7 +115,7 @@
DriverHomeVO getDriverHome(LoginUserInfo loginUserInfo);
/**
- * 璺濈绛惧埌
+ * 璺濈绛惧埌路
* @param signInDTO
*/
void signIn(SignInDTO signInDTO);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WxNoticeConfigService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WxNoticeConfigService.java
new file mode 100644
index 0000000..26b7918
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WxNoticeConfigService.java
@@ -0,0 +1,101 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.WxNoticeConfig;
+import java.util.List;
+
+/**
+ * 寰俊鍏紬鍙烽�氱煡閰嶇疆Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2024/10/17 15:44
+ */
+public interface WxNoticeConfigService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param wxNoticeConfig 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(WxNoticeConfig wxNoticeConfig);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param wxNoticeConfig 瀹炰綋瀵硅薄
+ */
+ void delete(WxNoticeConfig wxNoticeConfig);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param wxNoticeConfig 瀹炰綋瀵硅薄
+ */
+ void updateById(WxNoticeConfig wxNoticeConfig);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param wxNoticeConfigs 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<WxNoticeConfig> wxNoticeConfigs);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return WxNoticeConfig
+ */
+ WxNoticeConfig findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param wxNoticeConfig 瀹炰綋瀵硅薄
+ * @return WxNoticeConfig
+ */
+ WxNoticeConfig findOne(WxNoticeConfig wxNoticeConfig);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param wxNoticeConfig 瀹炰綋瀵硅薄
+ * @return List<WxNoticeConfig>
+ */
+ List<WxNoticeConfig> findList(WxNoticeConfig wxNoticeConfig);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<WxNoticeConfig>
+ */
+ PageData<WxNoticeConfig> findPage(PageWrap<WxNoticeConfig> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param wxNoticeConfig 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(WxNoticeConfig wxNoticeConfig);
+
+
+ void updateStatusByIdInBatch(List<Integer> ids,Integer status);
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PositionServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PositionServiceImpl.java
index 4b518a6..6b5c2b8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PositionServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PositionServiceImpl.java
@@ -109,7 +109,9 @@
QueryWrapper<Position> queryWrapper = new QueryWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
pageWrap.getModel().setIsdeleted(Constants.ZERO);
- queryWrapper.lambda()
+ queryWrapper
+ .select("*,(select count(1) from member where member.position_id = position.id and member.type=2 and isdeleted=0) as memberNum" )
+ .lambda()
.eq(pageWrap.getModel().getId() != null, Position::getId, pageWrap.getModel().getId())
.eq(pageWrap.getModel().getCreator() != null, Position::getCreator, pageWrap.getModel().getCreator())
.ge(pageWrap.getModel().getCreateDate() != null, Position::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WxNoticeConfigServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WxNoticeConfigServiceImpl.java
new file mode 100644
index 0000000..9ff4e73
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WxNoticeConfigServiceImpl.java
@@ -0,0 +1,160 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.WxNoticeConfigMapper;
+import com.doumee.dao.business.model.SmsConfig;
+import com.doumee.dao.business.model.WxNoticeConfig;
+import com.doumee.service.business.WxNoticeConfigService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 寰俊鍏紬鍙烽�氱煡閰嶇疆Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2024/10/17 15:44
+ */
+@Service
+public class WxNoticeConfigServiceImpl implements WxNoticeConfigService {
+
+ @Autowired
+ private WxNoticeConfigMapper wxNoticeConfigMapper;
+
+ @Override
+ public Integer create(WxNoticeConfig wxNoticeConfig) {
+ wxNoticeConfigMapper.insert(wxNoticeConfig);
+ return wxNoticeConfig.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ wxNoticeConfigMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(WxNoticeConfig wxNoticeConfig) {
+ UpdateWrapper<WxNoticeConfig> deleteWrapper = new UpdateWrapper<>(wxNoticeConfig);
+ wxNoticeConfigMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ wxNoticeConfigMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(WxNoticeConfig wxNoticeConfig) {
+ wxNoticeConfigMapper.updateById(wxNoticeConfig);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<WxNoticeConfig> wxNoticeConfigs) {
+ if (CollectionUtils.isEmpty(wxNoticeConfigs)) {
+ return;
+ }
+ for (WxNoticeConfig wxNoticeConfig: wxNoticeConfigs) {
+ this.updateById(wxNoticeConfig);
+ }
+ }
+
+ @Override
+ public WxNoticeConfig findById(Integer id) {
+ return wxNoticeConfigMapper.selectById(id);
+ }
+
+ @Override
+ public WxNoticeConfig findOne(WxNoticeConfig wxNoticeConfig) {
+ QueryWrapper<WxNoticeConfig> wrapper = new QueryWrapper<>(wxNoticeConfig);
+ return wxNoticeConfigMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<WxNoticeConfig> findList(WxNoticeConfig wxNoticeConfig) {
+ QueryWrapper<WxNoticeConfig> wrapper = new QueryWrapper<>(wxNoticeConfig);
+ return wxNoticeConfigMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<WxNoticeConfig> findPage(PageWrap<WxNoticeConfig> pageWrap) {
+ IPage<WxNoticeConfig> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<WxNoticeConfig> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(WxNoticeConfig::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(WxNoticeConfig::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEdirot() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getEdirot, pageWrap.getModel().getEdirot());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(WxNoticeConfig::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(WxNoticeConfig::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getRemark() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getRemark, pageWrap.getModel().getRemark());
+ }
+ if (pageWrap.getModel().getStatus() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getStatus, pageWrap.getModel().getStatus());
+ }
+ if (pageWrap.getModel().getTempId() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getTempId, pageWrap.getModel().getTempId());
+ }
+ if (pageWrap.getModel().getTitile() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getTitile, pageWrap.getModel().getTitile());
+ }
+ if (pageWrap.getModel().getObjCode() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getObjCode, pageWrap.getModel().getObjCode());
+ }
+ if (pageWrap.getModel().getObjType() != null) {
+ queryWrapper.lambda().eq(WxNoticeConfig::getObjType, pageWrap.getModel().getObjType());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(wxNoticeConfigMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(WxNoticeConfig wxNoticeConfig) {
+ QueryWrapper<WxNoticeConfig> wrapper = new QueryWrapper<>(wxNoticeConfig);
+ return wxNoticeConfigMapper.selectCount(wrapper);
+ }
+
+
+ @Override
+ public void updateStatusByIdInBatch(List<Integer> ids,Integer status) {
+ if (CollectionUtils.isEmpty(ids) || Objects.isNull(status)) {
+ return;
+ }
+ wxNoticeConfigMapper.update(new UpdateWrapper<WxNoticeConfig>()
+ .set("status",status)
+ .in("id",ids)
+ );
+ }
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 7143ee1..cc37400 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -22,6 +22,7 @@
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
+import com.doumee.service.business.PlatformJobService;
import com.doumee.service.business.impl.PlatformWarnEventServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
@@ -841,7 +842,7 @@
Constants.PlatformJobStatus.EXCEPTION.getKey(),
Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
)
- )<Constants.ZERO){
+ )==Constants.ZERO){
PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
.eq(PlatformJob::getCarCodeFront,event.getPlateNos())
.eq(PlatformJob::getIsdeleted,Constants.ZERO)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
index 7d5e472..27e8c56 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
@@ -342,7 +342,9 @@
job.setArriveDate(new Date());
job.setSingType(Constants.TWO);
job.setSignDate(new Date());
- List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda().apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null "));
+ List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().
+ lambda().apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null ")
+ );
if(CollectionUtils.isEmpty(signList)){
job.setSignNum(Constants.ONE);
} else{
--
Gitblit v1.9.3