Browse Source

2023年9月27日17:42:04

纪新园 2 years ago
parent
commit
00e3574995

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/wechat/feign/WechatClient.java

@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Map;
 
 @NonDS
-@ApiIgnore()
+@ApiIgnore
 @RestController
 @AllArgsConstructor
 @Slf4j

+ 3 - 0
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/corps/mapper/CorpsDescMapper.xml

@@ -53,6 +53,9 @@
         <if test="corpsDesc.corpType!=null and corpsDesc.corpType != ''">
             and corp_type like CONCAT(CONCAT('%', #{corpsDesc.corpType}), '%')
         </if>
+        <if test="corpsDesc.checkStatus != null and corpsDesc.checkStatus != ''">
+            and check_status = #{corpsDesc.checkStatus}
+        </if>
         <if test="corpsDesc.cname!=null and corpsDesc.cname != ''">
             and cname like CONCAT(CONCAT('%', #{corpsDesc.cname}), '%')
         </if>

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/goods/service/impl/GoodsDescServiceImpl.java

@@ -404,7 +404,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 	@Override
 	public void selectGoodsCode(PjGoodsDesc goodsDesc) {
 		Integer count = baseMapper.selectCount(Wrappers.<PjGoodsDesc>lambdaQuery()
-			.ne(Objects.nonNull(goodsDesc.getId()), PjGoodsDesc::getId, goodsDesc.getId())
+			.eq(PjGoodsDesc::getId, goodsDesc.getId())
 			.eq(PjGoodsDesc::getCode, goodsDesc.getCode())
 			.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjGoodsDesc::getIsDeleted, 0)
@@ -422,7 +422,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, PjGoodsDe
 	@Override
 	public void selectGoodsCname(PjGoodsDesc goodsDesc) {
 		Integer count = baseMapper.selectCount(Wrappers.<PjGoodsDesc>lambdaQuery()
-			.ne(Objects.nonNull(goodsDesc.getId()), PjGoodsDesc::getId, goodsDesc.getId())
+			.eq(PjGoodsDesc::getId, goodsDesc.getId())
 			.eq(PjGoodsDesc::getCname, goodsDesc.getCname())
 			.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
 			.eq(PjGoodsDesc::getIsDeleted, 0)

+ 19 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -45,6 +45,8 @@ import org.springblade.salesPart.check.service.IAuditPathsActsService;
 import org.springblade.salesPart.check.service.IAuditPathsLevelsService;
 import org.springblade.salesPart.check.service.IAuditProecessService;
 import org.springblade.salesPart.corps.mapper.CorpsDescMapper;
+import org.springblade.salesPart.corps.service.ICorpsAttnService;
+import org.springblade.salesPart.corps.service.ICorpsDescService;
 import org.springblade.salesPart.entity.*;
 import org.springblade.salesPart.enums.OrderTypeEnum;
 import org.springblade.salesPart.excel.PjOrderStatisticsExcel;
@@ -129,6 +131,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	private final IGoodsFilesService goodsFilesService;
 	private final IBrandFilesService brandFilesService;
 
+	private final ICorpsAttnService corpsAttnService;//客户联系人
+	private final ICorpsDescService corpsDescService;//客户
+
 	/**
 	 * 获取销售订单详情
 	 *
@@ -1259,6 +1264,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R getWeChatPayment(String srcOrderNo) {
+		PjCorpsDesc corpsDesc = null;
+		//根据当前登录人获得客户
+		PjCorpsAttn corpsAttn = corpsAttnService.getAttn(AuthUtil.getUserId());
+		if (ObjectUtil.isNotEmpty(corpsAttn)) {
+			corpsDesc = corpsDescService.getCorpsDesc(corpsAttn.getPid());
+			if (ObjectUtil.isEmpty(corpsDesc)) {
+				throw new RuntimeException("未查到用户信息");
+			}
+		} else {
+			throw new RuntimeException("未查到用户信息");
+		}
+
+		PjCorpsDesc finalCorpsDesc = corpsDesc;
 		List<PjOrder> orderList = baseMapper.selectList(new LambdaQueryWrapper<PjOrder>()
 			.eq(PjOrder::getSrcOrdNo, srcOrderNo)
 			.eq(PjOrder::getActualPaymentStatus, 1)
@@ -1271,7 +1289,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 		BigDecimal amount = orderList.stream().map(PjOrder::getTotalMoney).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 		List<PjOrderItems> pjOrderItems = orderItemsMapper.selectList(new LambdaQueryWrapper<PjOrderItems>().in(PjOrderItems::getPid, ids));
 		String goodsNames = pjOrderItems.stream().map(PjOrderItems::getGoodsName).collect(Collectors.joining());
-		return payService.payPrepay(orderId.substring(0, orderId.length() - 1), amount, srcOrderNo, 1, goodsNames);
+		return payService.payPrepay(finalCorpsDesc.getCname(),finalCorpsDesc.getTel(),orderId.substring(0, orderId.length() - 1), amount, srcOrderNo, 1, goodsNames);
 	}
 
 	/**

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/payMethod/PayService.java

@@ -21,7 +21,7 @@ public interface PayService {
 	 * @param goodsNames   商品名称(多个用逗号拼接)
 	 * @return 支付信息
 	 */
-	R<Map<Object, Object>> payPrepay(String id, BigDecimal amount, String serialNumber, int status, String goodsNames);
+	R<Map<Object, Object>> payPrepay(String corpName,String tel,String id, BigDecimal amount, String serialNumber, int status, String goodsNames);
 
 	/**
 	 * 退款

+ 28 - 10
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/payMethod/PayServiceImpl.java

@@ -16,10 +16,14 @@
  */
 package org.springblade.salesPart.payMethod;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.client.feign.IWechatClient;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.pay.tonglianPayment.dto.PaymentDTO;
 import org.springblade.pay.tonglianPayment.entity.Parameters;
@@ -33,6 +37,9 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -54,13 +61,15 @@ public class PayServiceImpl implements PayService {
 
 	private final ISysClient sysClient;
 
+	private final IWechatClient wechatClient;
+
 	/**
 	 * 获取用户信息
 	 */
 	private IUserClient userClient;
 
 	@Override
-	public R<Map<Object, Object>> payPrepay(String id, BigDecimal amount, String serialNumber, int status, String goodsNames) {
+	public R<Map<Object, Object>> payPrepay(String corpName,String tel,String id, BigDecimal amount, String serialNumber, int status, String goodsNames) {
 		if (ObjectUtils.isNull(id)) {
 			throw new RuntimeException("未找到订单信息,订单已取消");
 		}
@@ -130,18 +139,27 @@ public class PayServiceImpl implements PayService {
 			//通联平台sm2公钥
 			paymentDTO.setSybSmtlpubkey(parameters.getSybSmtlpubkey());
 			//支付
-			/*for (String orderId : id.split(",")) {
-				PjOrder order = new PjOrder();
-				// 付款
-				order.setId(Long.parseLong(orderId));
-				order.setActualPaymentStatus(1);
-				//更新订单表
-				orderMapper.updateById(order);
-			}
-			return R.success("");*/
 			R<Map<Object, Object>> res = paymentClient.payPrepay(paymentDTO);
 			if ("1".equals(count)) {
 				if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+					if ("504978".equals(AuthUtil.getTenantId())) {
+						SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+						String date1 = format.format(new Date());
+						R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "客服");
+						if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+							R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()), null, null);
+							if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+								StringBuilder openIds = new StringBuilder();
+								for (User datum : userList.getData()) {
+									if (ObjectUtils.isNotNull(datum.getOaOpenId())) {
+										openIds.append(datum.getOaOpenId()).append(",");
+									}
+								}
+								wechatClient.sendMessage(openIds.substring(0, openIds.length() - 1), "订单通知", "订单通知", date1, corpName, serialNumber,
+									tel, null, null, amount, "2");
+							}
+						}
+					}
 					return R.data(res.getData());
 				} else {
 					throw new RuntimeException("下单失败");

+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/shoppingCart/service/impl/ShoppingCartServiceImpl.java

@@ -300,7 +300,7 @@ public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, PjS
 				}
 				i++;
 			}
-			return payService.payPrepay(ids.substring(0, ids.length() - 1), amount, billNo.getData().toString(), 0, goodsName.substring(0, goodsName.length() - 1));
+			return payService.payPrepay(finalCorpsDesc.getCname(),finalCorpsDesc.getTel(),ids.substring(0, ids.length() - 1), amount, billNo.getData().toString(), 0, goodsName.substring(0, goodsName.length() - 1));
 		} else {
 			throw new RuntimeException("请选择需要结算的商品");
 		}

+ 36 - 1
blade-service/blade-school/src/main/java/org/springblade/school/controller/WxUnionIdOpenIdController.java

@@ -73,7 +73,7 @@ public class WxUnionIdOpenIdController {
 	}
 
 	@PostMapping(value = "/scanCodeCallbackQB")
-	public void checkWxToken(HttpServletRequest request, HttpServletResponse response) {
+	public void checkWxTokenQB(HttpServletRequest request, HttpServletResponse response) {
 		// 只处理订阅与取消订阅消息
 		log.info("======关注回调======");
 		Map<String, String> dataMap = WXPayXmlUtil.analysis(request);
@@ -106,4 +106,39 @@ public class WxUnionIdOpenIdController {
 			}
 		}
 	}
+
+	@PostMapping(value = "/scanCodeCallbackLT")
+	public void checkWxTokenLT(HttpServletRequest request, HttpServletResponse response) {
+		// 只处理订阅与取消订阅消息
+		log.info("======关注回调======");
+		Map<String, String> dataMap = WXPayXmlUtil.analysis(request);
+		log.info("返回数据======>>" + dataMap);
+		String openId = dataMap.get("FromUserName");//openId
+		String Event = dataMap.get("Event");//关注或取消关注
+
+		if ("subscribe".equals(Event)) {//关注
+			//获得公众号token
+			Map<String, String> tokenMap = WxUtil.getToken("wxd2b063ae955ea05f", "38d6e2dadc583c289b8eb81eb9281510");
+
+			log.info("获得公众号token======>>" + tokenMap);
+			//根据公众号openid获得unionId
+			Map<String, String> userMap = WxUtil.getUserInfo(tokenMap.get("accessToken"), openId);
+			log.info("根据公众号openid获得unionId======>>" + userMap);
+			String unionId = userMap.get("unionid");
+
+			if (ObjectUtil.isNotEmpty(unionId)) {
+				//根据unionId查询数据库是否存在
+				WxUnionIdOpenId wxUnionIdOpenId = wxUnionIdOpenIdClient.getWxUnionId(unionId);
+				if (ObjectUtil.isEmpty(wxUnionIdOpenId)) {//不存在 新增
+					WxUnionIdOpenId item = new WxUnionIdOpenId();
+					item.setOpenId(openId);
+					item.setUnionId(unionId);
+					wxUnionIdOpenIdClient.insertWxUO(item);
+				} else {//存在 则更新
+					wxUnionIdOpenId.setOpenId(openId);
+					wxUnionIdOpenIdClient.updateWxUO(wxUnionIdOpenId);
+				}
+			}
+		}
+	}
 }