| | |
| | | |
| | | <name>ruoyi</name> |
| | | <url>http://www.ruoyi.vip</url> |
| | | <description>益行通微服务系统</description> |
| | | <description>名酒拍卖微服务系统</description> |
| | | |
| | | <properties> |
| | | <ruoyi.version>3.6.2</ruoyi.version> |
| | |
| | | import com.ruoyi.article.service.ISensitiveWordsService; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.page.BeanUtils; |
| | | import com.ruoyi.common.core.utils.page.CollUtils; |
| | | import com.ruoyi.common.core.utils.page.PageDTO; |
| | | import com.ruoyi.system.api.domain.dto.judgeSensitiveWordsDTO; |
| | | import com.ruoyi.system.api.domain.vo.judgeSensitiveWordsVO; |
| | |
| | | |
| | | @Override |
| | | public judgeSensitiveWordsVO judgeSensitiveWordsList(judgeSensitiveWordsDTO SensitiveWordsDTO) { |
| | | judgeSensitiveWordsVO SensitiveWordsVO = new judgeSensitiveWordsVO(); |
| | | LambdaQueryWrapper<SensitiveWords> wrapper= Wrappers.lambdaQuery(); |
| | | wrapper.eq(SensitiveWords::getDelFlag,0); |
| | | List<SensitiveWords> list = this.list(wrapper); |
| | | List<String> sensitiveWords = new ArrayList<>(); |
| | | for (SensitiveWords l:list){ |
| | | sensitiveWords.add(l.getWord()); |
| | | } |
| | | Pattern pattern = Pattern.compile(String.join("|", sensitiveWords), Pattern.CASE_INSENSITIVE); |
| | | boolean b = pattern.matcher(SensitiveWordsDTO.getText()).find(); |
| | | judgeSensitiveWordsVO SensitiveWordsVO=new judgeSensitiveWordsVO(); |
| | | if (b){ |
| | | SensitiveWordsVO.setType(1); |
| | | }else{ |
| | | if (CollUtils.isNotEmpty(list)) { |
| | | List<String> sensitiveWords = new ArrayList<>(); |
| | | for (SensitiveWords l : list) { |
| | | sensitiveWords.add(l.getWord()); |
| | | } |
| | | Pattern pattern = Pattern.compile(String.join("|", sensitiveWords), |
| | | Pattern.CASE_INSENSITIVE); |
| | | boolean b = pattern.matcher(SensitiveWordsDTO.getText()).find(); |
| | | if (b) { |
| | | SensitiveWordsVO.setType(1); |
| | | } else { |
| | | SensitiveWordsVO.setType(2); |
| | | } |
| | | } else { |
| | | SensitiveWordsVO.setType(2); |
| | | } |
| | | return SensitiveWordsVO; |
| | | return SensitiveWordsVO; |
| | | } |
| | | |
| | | /** |
| | | * 获取敏感词列表的分页数据 |
| | | * |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | @GetMapping("/push2All/{msg}") |
| | | public R<?> push(@PathVariable("msg") String msg) { |
| | | sysUserClient.pushAll(msg, SecurityConstants.INNER); |
| | | return R.ok(); |
| | | } |
| | | } |
| | |
| | | </goals> |
| | | </execution> |
| | | </executions> |
| | | <configuration> |
| | | <includeSystemScope>true</includeSystemScope> |
| | | </configuration> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import javax.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.io.IOUtils; |
| | | import org.apache.http.HttpEntity; |
| | | import org.apache.http.HttpResponse; |
| | |
| | | * @author mitao |
| | | * @since 2024-05-16 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> implements IMemberService { |
| | | |
| | |
| | | String user1= response.getOpenId(); |
| | | |
| | | LambdaQueryWrapper<Member> wrapper= Wrappers.lambdaQuery(); |
| | | wrapper.eq(Member::getZfbOpenid,response.getOpenId()); |
| | | wrapper.eq(Member::getPhone, appMiniLoginDto.getPhone()); |
| | | Member member=this.getOne(wrapper); |
| | | SysUser sysUser = null; |
| | | if (member != null) { |
| | |
| | | appMiniLoginVo.setSysUser(sysUser); |
| | | appMiniLoginVo.setMemberid(member.getId()); |
| | | Member byId = this.getById(member.getId()); |
| | | byId.setZfbOpenid(response.getOpenId()); |
| | | if (appMiniLoginDto.getPhone()!=null){ |
| | | byId.setPhone(appMiniLoginDto.getPhone()); |
| | | this.updateById(byId); |
| | |
| | | sessionKey = session.getSessionKey(); |
| | | //获取用户 |
| | | LambdaQueryWrapper<Member> wrapper= Wrappers.lambdaQuery(); |
| | | wrapper.eq(Member::getMiniOpenid,session.getOpenid()); |
| | | wrapper.eq(Member::getPhone, appMiniLoginDto.getPhone()); |
| | | Member member=this.getOne(wrapper); |
| | | SysUser sysUser = null; |
| | | if (member != null) { |
| | | sysUser = sysUserService.getSysUser(member.getUserId()).getData(); |
| | | } |
| | | LambdaQueryWrapper<Member> wrapper1= Wrappers.lambdaQuery(); |
| | | wrapper1.eq(Member::getMiniOpenid,openid); |
| | | Member member1=this.getOne(wrapper1); |
| | | |
| | | if (member1==null){ |
| | | //创建新用户 |
| | | String memberId = IdUtils.simpleUUID(); |
| | | sysUser = new SysUser(); |
| | | sysUser.setUserName(memberId); |
| | | sysUser.setNickName("白金用户"); |
| | | sysUser.setUserType("03"); |
| | | sysUser.setAvatar("https://jyzx-obs.obs.cn-sccd1.ctyun.cn/d41508d822cb4b7896aaa1bb56e6167f.png"); |
| | | String password = "123456"; |
| | | sysUser.setPassword(SecurityUtils.encryptPassword(password)); |
| | | sysUser = sysUserService.registerUser(sysUser).getData(); |
| | | if (sysUser==null){ |
| | | sysUser = sysUserService.getSysUser(member.getUserId()).getData(); |
| | | } |
| | | member = new Member(); |
| | | member.setUserId(sysUser.getUserId()); |
| | | member.setDelFlag(0); |
| | | member.setNickname("白酒用户"); |
| | | member.setAvatar("https://jyzx-obs.obs.cn-sccd1.ctyun.cn/d41508d822cb4b7896aaa1bb56e6167f.png"); |
| | | member.setWxUnionid(unionid); |
| | | member.setPhone(appMiniLoginDto.getPhone()); |
| | | member.setMiniOpenid(openid); |
| | | this.save(member); |
| | | appMiniLoginVo.setMiniOpenid(member.getMiniOpenid()); |
| | | appMiniLoginVo.setWxUnionid(member.getWxUnionid()); |
| | | appMiniLoginVo.setSysUser(sysUser); |
| | | appMiniLoginVo.setMemberid(member.getId()); |
| | | } else { |
| | | sysUser = sysUserService.getSysUser(member.getUserId()).getData(); |
| | | appMiniLoginVo.setMiniOpenid(member.getMiniOpenid()); |
| | | appMiniLoginVo.setWxUnionid(member.getWxUnionid()); |
| | | appMiniLoginVo.setSysUser(sysUser); |
| | | appMiniLoginVo.setMemberid(member.getId()); |
| | | Member byId = this.getById(member.getId()); |
| | | if (appMiniLoginDto.getPhone()!=null){ |
| | | byId.setMiniOpenid(openid); |
| | | byId.setWxUnionid(unionid); |
| | | if (appMiniLoginDto.getPhone() != null) { |
| | | byId.setPhone(appMiniLoginDto.getPhone()); |
| | | this.updateById(byId); |
| | | } |
| | | |
| | | } else { |
| | | // 创建新用户 |
| | | String memberId = IdUtils.simpleUUID(); |
| | | sysUser = new SysUser(); |
| | | sysUser.setUserName(memberId); |
| | | sysUser.setNickName("白金用户"); |
| | | sysUser.setUserType("03"); |
| | | sysUser.setAvatar( |
| | | "https://jyzx-obs.obs.cn-sccd1.ctyun.cn/d41508d822cb4b7896aaa1bb56e6167f.png"); |
| | | String password = "123456"; |
| | | sysUser.setPassword(SecurityUtils.encryptPassword(password)); |
| | | sysUser = sysUserService.registerUser(sysUser).getData(); |
| | | if (sysUser == null) { |
| | | sysUser = sysUserService.getSysUser(member.getUserId()).getData(); |
| | | } |
| | | member = new Member(); |
| | | member.setUserId(sysUser.getUserId()); |
| | | member.setDelFlag(0); |
| | | member.setNickname("白酒用户"); |
| | | member.setAvatar( |
| | | "https://jyzx-obs.obs.cn-sccd1.ctyun.cn/d41508d822cb4b7896aaa1bb56e6167f.png"); |
| | | member.setWxUnionid(unionid); |
| | | member.setPhone(appMiniLoginDto.getPhone()); |
| | | member.setMiniOpenid(openid); |
| | | this.save(member); |
| | | appMiniLoginVo.setMiniOpenid(member.getMiniOpenid()); |
| | | appMiniLoginVo.setWxUnionid(member.getWxUnionid()); |
| | | appMiniLoginVo.setSysUser(sysUser); |
| | | appMiniLoginVo.setMemberid(member.getId()); |
| | | } |
| | | } |
| | | } |
| | |
| | | Map<String, String> openapiResult1 = JSON.parseObject(plainData, |
| | | new TypeReference<Map<String, String>>() { |
| | | }, Feature.OrderedField); |
| | | |
| | | log.info("支付宝获取手机号返回值:{}", JSON.toJSONString(openapiResult1)); |
| | | mobile=openapiResult1.get("mobile"); |
| | | } |
| | | }else{ |
| | |
| | | String responseUserPhoneNumber = null; |
| | | try { |
| | | responseUserPhoneNumber = getMobileByWX(accessToken, mobileDTO.getCode()); |
| | | log.info("微信获取手机号返回值:{}", JSON.toJSONString(responseUserPhoneNumber)); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | |
| | | <dependency> |
| | | <groupId>com.alipay.sdk</groupId> |
| | | <artifactId>alipay-sdk-java</artifactId> |
| | | <version>4.10.167.ALL</version> |
| | | <version>4.39.95.ALL</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.squareup.okhttp3</groupId> |
| | | <artifactId>okhttp</artifactId> |
| | |
| | | |
| | | if(order.getOrderNo().contains("SP")){ |
| | | GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); |
| | | GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); |
| | | goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); |
| | | goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity()); |
| | | if (goodsSku.getSoldQuantity()-order.getGoodsQuantity()<0){ |
| | | goodsStockUpdDTO1.setSoldQuantity(0); |
| | | }else { |
| | | goodsStockUpdDTO1.setSoldQuantity(goodsSku.getSoldQuantity()-order.getGoodsQuantity()); |
| | | } |
| | | if (Objects.nonNull(goodsSku)) { |
| | | GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); |
| | | goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); |
| | | goodsStockUpdDTO1.setAuctionStock( |
| | | goodsSku.getStock() + order.getGoodsQuantity()); |
| | | if (goodsSku.getSoldQuantity() - order.getGoodsQuantity() < 0) { |
| | | goodsStockUpdDTO1.setSoldQuantity(0); |
| | | } else { |
| | | goodsStockUpdDTO1.setSoldQuantity( |
| | | goodsSku.getSoldQuantity() - order.getGoodsQuantity()); |
| | | } |
| | | |
| | | goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER); |
| | | goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1, |
| | | SecurityConstants.INNER); |
| | | } |
| | | } |
| | | |
| | | if(order.getOrderNo().contains("MS")){ |
| | |
| | | package com.ruoyi.order.service.impl; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alipay.api.AlipayClient; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.request.AlipayTradeRefundRequest; |
| | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | |
| | | * @author mitao |
| | | * @since 2024-05-22 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class PaylogServiceImpl extends ServiceImpl<PaylogMapper, Paylog> implements IPaylogService { |
| | | |
| | |
| | | HttpServletRequest request) { |
| | | Member member = memberClient.getMembeOne(uid, SecurityConstants.INNER).getData(); |
| | | openId = member.getMiniOpenid(); |
| | | String zfbOpenid = member.getZfbOpenid(); |
| | | Double price = 0.0; |
| | | String subject; |
| | | String body; |
| | |
| | | subject = " 订单支付"; |
| | | if (type == 1) { |
| | | // 支付宝预下单 |
| | | return this.alipay(orderNO, subject, body, price, request); |
| | | return this.alipay(zfbOpenid, orderNO, subject, body, price, request); |
| | | } if (type == 2){ |
| | | // 微信预下单 |
| | | return this.wxpay(2 ,orderNO, body, openId, price, request); |
| | |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | if (type == 1) { |
| | | // 支付宝预下单 |
| | | return this.alipay(orderNO, subject, body, price, request); |
| | | return this.alipay(zfbOpenid, orderNO, subject, body, price, request); |
| | | } if (type == 2) { |
| | | // 微信预下单 |
| | | return this.wxpay(2, orderNO, body,openId, price, request); |
| | |
| | | * @param request |
| | | * @return |
| | | */ |
| | | public R<Map<String, Object>> alipay(String orderNo, String subject, String body, Double price, |
| | | public R<Map<String, Object>> alipay(String zfbOpenid, String orderNo, String subject, |
| | | String body, Double price, |
| | | HttpServletRequest request) { |
| | | try { |
| | | // 接口封装支付宝请求参数 |
| | | // Map<String, Object> mData = new HashMap<String, Object>(); |
| | | |
| | | // 构建请求支付签名参数 |
| | | Map<String, Object> pay = PayDemoActivity.appPay(subject, body, price, orderNo); |
| | | // Map<String, Object> pay = PayDemoActivity.appPay(subject, body, price, orderNo); |
| | | Map<String, Object> pay = PayDemoActivity.jsApiPay(subject, body, price, orderNo, |
| | | zfbOpenid); |
| | | /* |
| | | * Set<Entry<String, String>> entrySet = pay.entrySet(); |
| | | * Iterator<Entry<String, String>> iterator = entrySet.iterator(); |
| | | * while (iterator.hasNext()) { Entry<String, String> next = |
| | | * iterator.next(); mData.put(next.getKey(), next.getValue()); } |
| | | */ |
| | | log.info("支付宝预支付信息:{}", JSON.toJSONString(pay)); |
| | | return R.ok(pay); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | import com.alipay.api.AlipayClient; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.domain.AlipayTradeAppPayModel; |
| | | import com.alipay.api.domain.AlipayTradeCreateModel; |
| | | import com.alipay.api.request.AlipayTradeAppPayRequest; |
| | | import com.alipay.api.response.AlipayTradeAppPayResponse; |
| | | import com.alipay.api.request.AlipayTradeCreateRequest; |
| | | import com.alipay.api.response.AlipayTradeCreateResponse; |
| | | import com.jpay.alipay.AliPayApi; |
| | | import com.jpay.alipay.AliPayApiConfig; |
| | | import com.jpay.alipay.AliPayApiConfigKit; |
| | | import com.ruoyi.order.util.alipay.config.AlipayConfig; |
| | | |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | |
| | | String orderInfo = ""; |
| | | orderInfo = AliPayApi.startAppPay(model, NOTIFY_URL); |
| | | |
| | | |
| | | |
| | | map.put("orderInfo", orderInfo); |
| | | map.put("Type",2); |
| | | |
| | |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | |
| | | public static Map<String, Object> jsApiPay(String subject, String body, Double price, |
| | | String out_trade_no, String openId) throws AlipayApiException { |
| | | // 构造请求参数以调用接口 |
| | | AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); |
| | | AlipayTradeCreateModel model = new AlipayTradeCreateModel(); |
| | | |
| | | // 设置商户订单号 |
| | | model.setOutTradeNo(out_trade_no); |
| | | |
| | | // 设置产品码 |
| | | model.setProductCode("JSAPI_PAY"); |
| | | |
| | | // 设置小程序支付中 |
| | | model.setOpAppId(APP_ID); |
| | | |
| | | // 设置订单总金额 |
| | | model.setTotalAmount(price.toString()); |
| | | |
| | | // 设置业务扩展参数 |
| | | // ExtendParams extendParams = new ExtendParams(); |
| | | // extendParams.setTradeComponentOrderId("2023060801502300000008810000005657"); |
| | | // model.setExtendParams(extendParams); |
| | | |
| | | // 设置可打折金额 |
| | | // model.setDiscountableAmount("80.00"); |
| | | |
| | | // 设置订单标题 |
| | | model.setSubject(subject); |
| | | |
| | | // 设置订单附加信息 |
| | | model.setBody(body); |
| | | |
| | | // uid参数未来计划废弃,存量商户可继续使用,新商户请使用openid。请根据应用-开发配置-openid配置选择支持的字段。 |
| | | // model.setBuyerId("2088102146225135"); |
| | | |
| | | // 设置买家支付宝用户唯一标识 |
| | | model.setBuyerOpenId(openId); |
| | | |
| | | // 设置商户门店编号 |
| | | // model.setStoreId("NJ_001"); |
| | | |
| | | request.setBizModel(model); |
| | | request.setNotifyUrl(NOTIFY_URL); |
| | | // 第三方代调用模式下请设置app_auth_token |
| | | // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); |
| | | |
| | | AlipayTradeCreateResponse response = alipayClient.execute(request); |
| | | System.out.println(response.getBody()); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if (response.isSuccess()) { |
| | | System.out.println("调用成功"); |
| | | |
| | | map.put("outTradeNo", response.getOutTradeNo()); |
| | | map.put("tradeNo", response.getTradeNo()); |
| | | map.put("Type", 2); |
| | | } else { |
| | | System.out.println("调用失败"); |
| | | // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 |
| | | // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); |
| | | // System.out.println(diagnosisUrl); |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | # 支付宝回调地址 |
| | | #notify_url = http://10.136.177.152:9000/order/forepart/paylog/alipay/notify |
| | | notify_url=http://221.182.45.100:9000/order/forepart/paylog/wxpay/notify |
| | | #notify_url=http://221.182.45.100:9000/order/forepart/paylog/wxpay/notify |
| | | notify_url=https://www.jiudinglaojiu.com/order/forepart/paylog/wxpay/notify |
| | | # 签约的appid |
| | | app_id = 2021004150664294 |
| | | |
| | |
| | | |
| | | # 微信回调地址 |
| | | #wx_notify_url = http://10.136.177.152:9000/order/forepart/paylog/wxpay/notify |
| | | wx_notify_url=http://221.182.45.100:9000/order/forepart/paylog/wxpay/notify |
| | | #wx_notify_url=http://221.182.45.100:9000/order/forepart/paylog/wxpay/notify |
| | | wx_notify_url=https://www.jiudinglaojiu.com/order/forepart/paylog/wxpay/notify |
| | | |
| | | |
| | | # 小程序的APPID |
| | |
| | | |
| | | @OnMessage |
| | | public void onMessage(String message, Session session) { |
| | | // String msg = message.replace("你", "我").replace("吗", "").replace("PING", "PONG") |
| | | // .replace("ping", "pong"); |
| | | // WebSocketUsers.sendMessageToUserByText(session, msg); |
| | | String msg = message.replace("你", "我").replace("吗", "").replace("PING", "PONG") |
| | | .replace("ping", "pong"); |
| | | WebSocketUsers.sendMessageToUserByText(session, msg); |
| | | } |
| | | } |