From 3a5e49666af1da441633b0a9bae4c3c2b18974b3 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期二, 14 四月 2026 16:05:41 +0800
Subject: [PATCH] 质押合同添加业务经理绑定,H5相关逻辑完善
---
fzzy-igdss-web/src/main/java/com/fzzy/appwx/manager/WeChatManager.java | 205 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 167 insertions(+), 38 deletions(-)
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/appwx/manager/WeChatManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/appwx/manager/WeChatManager.java
index 4361ee3..27322c9 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/appwx/manager/WeChatManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/appwx/manager/WeChatManager.java
@@ -1,22 +1,48 @@
package com.fzzy.appwx.manager;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fzzy.appwx.param.WeChatBaseParam;
import com.fzzy.appwx.util.WeChatUtil;
+import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.RespCodeEnum;
+import com.fzzy.igds.data.IgdsBaseParam;
import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.domain.PledgeContract;
+import com.fzzy.igds.domain.PledgeContractDepot;
+import com.fzzy.igds.domain.SnapReply;
+import com.fzzy.igds.service.PledgeContractDepotService;
+import com.fzzy.igds.service.PledgeContractService;
+import com.fzzy.igds.service.SnapReplyService;
+import com.google.code.kaptcha.Constants;
import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.system.service.ISysUserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
@Component
public class WeChatManager {
- @Autowired
+ @Resource
private WeChatUtil weChatUtil;
@Autowired
private ISysUserService sysUserService;
+ @Resource
+ private SnapReplyService snapReplyService;
+
+ @Resource
+ private PledgeContractService pledgeContractService;
+
+ @Resource
+ private PledgeContractDepotService pledgeContractDepotService;
public String getOpenid(String code) {
@@ -56,11 +82,28 @@
deptId = Long.valueOf(user.getCompanyId());
user.setDeptId(deptId);
}
- return new PageResponse(RespCodeEnum.CODE_0000.getCode(), "鏌ヨ鎴愬姛",user);
+ return new PageResponse(RespCodeEnum.CODE_0000.getCode(), "鏌ヨ鎴愬姛", user);
+ }
+
+ //鏍¢獙楠岃瘉鐮�
+ public boolean validateResponse(HttpServletRequest request, String validateCode) {
+ // 鈶� 浠嶴ession鑾峰彇鐢熸垚鐨勯獙璇佺爜
+ Object obj = ShiroUtils.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
+ String code = String.valueOf(obj != null ? obj : "");
+
+ // 鈶� 绔嬪嵆娓呴櫎Session涓殑楠岃瘉鐮侊紙闃叉閲嶅浣跨敤锛�
+ request.getSession().removeAttribute(Constants.KAPTCHA_SESSION_KEY);
+
+ // 鈶� 姣斿鐢ㄦ埛杈撳叆鍜屾纭瓟妗堬紙蹇界暐澶у皬鍐欙級
+ if (StringUtils.isEmpty(validateCode) || !validateCode.equalsIgnoreCase(code)) {
+ return false;
+
+ }
+ return true;
}
//缁戝畾openId
- public PageResponse<String> bandOpenId(WeChatBaseParam param) {
+ public PageResponse<String> bandOpenId(HttpServletRequest httpRequest,WeChatBaseParam param) {
//鍒ゆ柇鍙傛暟
if (null == param || StringUtils.isEmpty(param.getOpenid())) {
@@ -71,26 +114,19 @@
return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "鎵嬫満鍙蜂负绌猴紝璇峰~鍐�");
}
-// if (StringUtils.isEmpty(param.getMsgCode())) {
-// return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "楠岃瘉鐮佷笉鑳戒负绌�");
-//
-// }
-//
-// String code = (String) redisService.getCacheObject(WeChatConst.WX_MOBILE_CODE + param.getMobile());
-// if(StringUtils.isEmpty(code)){
-// res.put("code","1007");
-// res.put("msg","楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鑾峰彇");
-// return res;
-// }
-// if(! code.equals(param.getMsgCode())){
-// res.put("code","1007");
-// res.put("msg","楠岃瘉鐮侀敊璇�");
-// return res;
-// }
+ if (StringUtils.isEmpty(param.getMsgCode())) {
+ return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "楠岃瘉鐮佷笉鑳戒负绌�");
+
+ }
+ //楠岃瘉鐮侀獙璇�
+ boolean validateResponse = validateResponse(httpRequest, param.getMsgCode());
+ if (!validateResponse) {
+ return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "楠岃瘉鐮侀敊璇�");
+ }
//鏍规嵁鎵嬫満鍙锋煡鐪嬬敤鎴锋槸鍚︽槸绯荤粺鐢ㄦ埛
SysUser user = sysUserService.selectUserByPhoneNumber(param.getMobile());
- if(user == null || StringUtils.isEmpty(user.getPhonenumber())){
+ if (user == null || StringUtils.isEmpty(user.getPhonenumber())) {
return new PageResponse<String>(RespCodeEnum.CODE_1006.getCode(), "鎵嬫満鍙蜂笉鍦ㄧ郴缁熷唴锛岃鑱旂郴绠$悊鍛橈紒");
}
@@ -100,13 +136,13 @@
// redisService.deleteObject(WeChatConst.WX_MOBILE_CODE + param.getMobile());
- return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "璇锋眰鎴愬姛");
+ return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "缁戝畾鎴愬姛");
}
//瑙g粦openId
- public PageResponse<String> unBandOpenId(WeChatBaseParam param) {
+ public PageResponse<String> unBandOpenId(HttpServletRequest httpRequest,WeChatBaseParam param) {
//鍒ゆ柇鍙傛暟
if (null == param || StringUtils.isEmpty(param.getOpenid())) {
@@ -120,23 +156,14 @@
return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "楠岃瘉鐮佷笉鑳戒负绌�");
}
-
-// String code = (String) redisService.getCacheObject(WeChatConst.WX_MOBILE_CODE + param.getMobile());
-// if(StringUtils.isEmpty(code)){
-// res.put("code","1007");
-// res.put("msg","楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鑾峰彇");
-// return res;
-//
-// }
-// if(! code.equals(param.getMsgCode())){
-// res.put("code","1007");
-// res.put("msg","楠岃瘉鐮侀敊璇�");
-// return res;
-// }
-
+ //楠岃瘉鐮侀獙璇�
+ boolean validateResponse = validateResponse(httpRequest, param.getMsgCode());
+ if (!validateResponse) {
+ return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "楠岃瘉鐮侀敊璇�");
+ }
//鏍规嵁鎵嬫満鍙锋煡璇㈢敤鎴锋槸鍚﹀凡缁忕粦瀹�
SysUser user = sysUserService.selectUserByPhoneNumber(param.getMobile());
- if(user == null || StringUtils.isEmpty(user.getPhonenumber())){
+ if (user == null || StringUtils.isEmpty(user.getPhonenumber())) {
return new PageResponse<String>(RespCodeEnum.CODE_1006.getCode(), "鎵嬫満鍙蜂笉鍦ㄧ郴缁熷唴锛岃鑱旂郴绠$悊鍛橈紒");
}
@@ -144,7 +171,109 @@
user.setOpenId("");
sysUserService.updateUserInfo(user);
-// redisService.deleteObject(WeChatConst.WX_MOBILE_CODE + param.getMobile());
+ return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "璇锋眰鎴愬姛");
+
+ }
+
+ public PageResponse<Page<SnapReply>> getSnapReplyPage(WeChatBaseParam param) {
+
+ if (null == param) {
+ return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_1007.getCode(), "鍙傛暟涓嶅畬鏁达紝璇锋牳鏌�");
+ }
+
+ SysUser user;
+
+ //寰俊鍏紬鍙�
+ if (StringUtils.isEmpty(param.getOpenid())) {
+ return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_1007.getCode(), "鍙傛暟涓嶅畬鏁达紝璇锋牳鏌�");
+
+ }
+ //鏍规嵁openid鏌ヨ鐢ㄦ埛鏄惁宸茬粡缁戝畾
+ user = sysUserService.selectUserByOpenId(param.getOpenid());
+ if (user == null) {
+ return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_1006.getCode(), "灏氭湭缁戝畾鏈嶅姟锛岃鍏堢粦瀹氾紒");
+
+ }
+ //鑾峰彇涓氬姟缁忕悊缁戝畾鐨勮川鎶煎悎鍚�
+ List<PledgeContract> dateByUser = pledgeContractService.getDateByUser(String.valueOf(user.getUserId()));
+ if (dateByUser == null || dateByUser.isEmpty()) {
+ //杩斿洖绌烘暟鎹�
+ return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_0000.getCode(), "璇锋眰鎴愬姛", new Page<>(param.getPageNo(), param.getPageSize()));
+ }
+ List<PledgeContractDepot> pledgeContractDepots = new ArrayList<>() ;
+ for (PledgeContract pledgeContract : dateByUser) {
+ String id = pledgeContract.getId();
+ IgdsBaseParam depotPParam = new IgdsBaseParam();
+ depotPParam.setParentId(id);
+ List<PledgeContractDepot> pledgeContractDepots1 = pledgeContractDepotService.listAll(depotPParam);
+ pledgeContractDepots.addAll(pledgeContractDepots1);
+ }
+ if(pledgeContractDepots.isEmpty()){
+ //杩斿洖绌烘暟鎹�
+ return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_0000.getCode(), "璇锋眰鎴愬姛", new Page<>(param.getPageNo(), param.getPageSize()));
+ }
+
+ // 鑾峰彇pledgeContractDepots涓幓閲嶅悗鐨勫簱鍖篒DList
+ List<String> deptIdList = pledgeContractDepots.stream().map(PledgeContractDepot::getPledgeDept).distinct().collect(Collectors.toList());
+
+ //鍒嗛〉鎷兼帴
+ Page<SnapReply> page = new Page<>(param.getPageNo(), param.getPageSize());
+ //鏌ヨ鍙傛暟缁勮
+ IgdsBaseParam queryParam = new IgdsBaseParam();
+ queryParam.setCompanyId(user.getCompanyId());
+ queryParam.setKey(Constant.YN_N);
+ snapReplyService.listPageByListDept(page, queryParam,deptIdList);
+ return new PageResponse<Page<SnapReply>>(RespCodeEnum.CODE_0000.getCode(), "璇锋眰鎴愬姛", page);
+ }
+
+ public PageResponse<SnapReply> getSnapReplyInfoById(WeChatBaseParam param) {
+
+ //鍒ゆ柇鍙傛暟
+ if (null == param || StringUtils.isEmpty(param.getId())) {
+ return new PageResponse<SnapReply>(RespCodeEnum.CODE_1007.getCode(), "鍙傛暟涓嶅畬鏁达紝璇锋牳鏌�");
+
+ }
+
+ SnapReply warn = snapReplyService.getById(param.getId());
+ if (warn == null) {
+ return new PageResponse<SnapReply>(RespCodeEnum.CODE_1007.getCode(), "鏈幏鍙栧埌璇ヨ鍛婁俊鎭紒");
+
+ }
+
+ return new PageResponse<SnapReply>(RespCodeEnum.CODE_0000.getCode(), "璇锋眰鎴愬姛", warn);
+
+ }
+
+ public PageResponse<String> handleSnapReply(WeChatBaseParam param) {
+
+ //鍒ゆ柇鍙傛暟
+ if (null == param || StringUtils.isEmpty(param.getId())) {
+ return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "鍙傛暟涓嶅畬鏁达紝璇锋牳鏌�");
+
+ }
+
+ //澶勭悊鏃堕棿
+ Date date = new Date();
+
+// if(StringUtils.isEmpty(companyId)){
+// companyId = ShiroUtils.getLoginUserCompanyId();
+// }
+ String info = (String) param.getRemark();
+ String id = param.getId();
+ String userName = param.getUserName();
+
+ //鍛婅澶勭悊
+ SnapReply warn = snapReplyService.getById(id);
+ if(Constant.YN_N.equals(warn.getIsHandle())){
+ return new PageResponse<String>(RespCodeEnum.CODE_1008.getCode(), "鏀瑰憡璀﹀凡澶勭悊锛屾棤闇�閲嶅鎵瑰锛�");
+ }
+ warn.setId(id);
+ warn.setUpdateBy(userName);
+ warn.setUpdateTime(date);
+ warn.setIsHandle(Constant.YN_Y);
+ warn.setReplyText(info);
+ warn.setDays(param.getDays());
+ snapReplyService.updateData(warn);
return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "璇锋眰鎴愬姛");
--
Gitblit v1.9.3