101captain
2022-06-24 61fe9dde69655e9fe9490b79e364f7d1d3eb147f
Merge branch 'huacheng_uu' into huacheng
4个文件已添加
10个文件已修改
275 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jar 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/template/53461_.key.p8 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UuLoginVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
@@ -65,6 +65,13 @@
            <artifactId>minio</artifactId>
            <version>6.0.8</version>
        </dependency>
        <dependency>
            <groupId>com.panzhihua</groupId>
            <artifactId>UMF</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/UMF_SDK_V01.jar</systemPath>
        </dependency>
    </dependencies>
    <build>
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java
@@ -1,20 +1,21 @@
package com.panzhihua.applets.api;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Base64;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.jcraft.jsch.SftpException;
import com.panzhihua.applets.config.MinioUtil;
import com.panzhihua.applets.umf.UmfPayUtil;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.utlis.DateUtils;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.RandomUtils;
@@ -85,6 +86,8 @@
    private CommunityService communityService;
    @Resource
    private MinioUtil minioUtil;
    @Resource
    private UmfPayUtil umfPayUtil;
    public static void main(String[] args) {
        // int nextInt = RandomUtils.nextInt(99999, 1000000);
@@ -205,4 +208,10 @@
        String result = HttpUtils.sendGet(url, param);
        return R.ok(JSON.parseObject(result));
    }
    @ApiOperation("uu洗车下单接口")
    @GetMapping("/uuPay")
    public R uuPay(@RequestParam("orderid") String orderid,@RequestParam("openid")String openid,@RequestParam("amount")String amount){
        Map map=umfPayUtil.pay(orderid, DateUtils.getCurrentDateString(),openid,amount);
        return R.ok(map);
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
@@ -2,6 +2,7 @@
import javax.annotation.Resource;
import com.panzhihua.common.model.vos.user.UuLoginVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
@@ -299,4 +300,9 @@
        int type = 1;
        return userService.userAgreement(type);
    }
    @ApiOperation("uu洗车登录")
    @PostMapping("uuLogin")
    public R uuLogin(@RequestBody UuLoginVO uuLoginVO){
        return userService.uuLogin(uuLoginVO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
@@ -2,31 +2,22 @@
import static java.util.stream.Collectors.toList;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.panzhihua.applets.umf.UmfPayUtil;
import com.panzhihua.common.constants.HttpStatus;
import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
import com.panzhihua.common.utlis.DateUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
@@ -2,15 +2,24 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.panzhihua.applets.umf.UmfPayUtil;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.HttpClientUtil;
import com.umf.api.service.UmfService;
import com.umf.api.service.UmfServiceImpl;
import io.swagger.annotations.ApiOperation;
import org.json.XML;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@@ -19,6 +28,8 @@
import com.panzhihua.common.utlis.StringUtils;
import lombok.extern.slf4j.Slf4j;
import static com.umf.api.service.UmfServiceImpl.printResult;
/**
 * @auther lyq
@@ -32,6 +43,10 @@
    @Resource
    private CommunityService communityService;
    @Resource
    private UmfPayUtil umfPayUtil;
    @Value("${umf.file}")
    private String file;
    @PostMapping("wxNotify")
    public void payCallback(HttpServletRequest request, HttpServletResponse response) {
@@ -101,4 +116,47 @@
            e.printStackTrace();
        }
    }
    @GetMapping("wxNotifyAll")
    public void payCallbackAll(HttpServletRequest request, HttpServletResponse response) {
        //获取联动发送请求的参数
        String requestParam =  request.getQueryString();
        System.out.println("请求参数 :" + requestParam);
        //调用异步通知解析方法
        UmfService service = new UmfServiceImpl("53461",file);
        Map respMap = null;
        try {
            respMap = service.notifyDataParserMap(requestParam);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(respMap.get("error_code").equals("0000")){
            //调用uu洗车支付成功回调
            Map map=new HashMap();
            map.put("orderId",respMap.get("order_id"));
            HttpClientUtil.sendPostByJson("https://api.uucsh.cn/notify/wx/pzh-pay",JSONObject.toJSONString(map),1,"appid","10000");;
        }
        //调用SDK生成返回联动平台字符串,加到CONTENT中
        String resMetaData = service.responseUMFMap(respMap);
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = null;
        try {
            out = response.getWriter();
        } catch (IOException e) {
            e.printStackTrace();
        }
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("<HEAD><META NAME=\"MobilePayPlatform\" CONTENT=\"" + resMetaData + "\" /></HEAD>");
        out.println("<BODY>");
        out.println("</BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }
    @ApiOperation("uu洗车退款接口")
    @GetMapping("/uuRepay")
    public R uuRepay(@RequestParam("orderid") String orderid, @RequestParam("merdate") String merdate, @RequestParam("refundAmount")String refundAmount, @RequestParam("orgAmount")String orgAmount){
        Map map=umfPayUtil.repay(orderid,merdate, DateUtils.getDateFormatString(new Date(),"yyMMddHHmmss")+"0001",refundAmount,orgAmount);
        return R.ok(map);
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java
New file
@@ -0,0 +1,63 @@
package com.panzhihua.applets.umf;
import com.umf.api.service.UmfService;
import com.umf.api.service.UmfServiceImpl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
import static com.umf.api.service.UmfServiceImpl.printResult;
/**
 * @author zzj
 */
@Component
public class UmfPayUtil {
    @Value("${umf.file}")
    private String file;
    @Value("${umf.notify_url}")
    private String notifyUrl;
    public Map pay(String orderid,String merdate,String openid,String amount){
        Map reqMapPublic = preparePublic(orderid,merdate,openid,amount,notifyUrl);
        UmfService instance = new UmfServiceImpl("53461",file);
        Map respMap = instance.miniProgramPayMap(reqMapPublic);
        return respMap;
    }
    public Map repay(String orderid,String merdate,String refundNo,String refundAmount,String orgAmount){
        Map reqMapPublic=prepareRepay(orderid,merdate,refundNo,refundAmount,orgAmount);
        UmfService instance = new UmfServiceImpl("53461",file);
        Map respMap=instance.generalRefundMap(reqMapPublic);
        return respMap;
    }
    //小程序支付请求参数
    public static Map preparePublic(String orderid,String merdate,String openid,String amount,String notifyUrl) {
        Map reqMap = new HashMap();
        reqMap.put("mer_id","53461");
        reqMap.put("notify_url",notifyUrl);
        reqMap.put("goods_inf","商品描述");
        reqMap.put("order_id",orderid);
        reqMap.put("mer_date",merdate);
        reqMap.put("amount",amount);
        reqMap.put("app_id","wx118de8a734d269f0");
        reqMap.put("open_id",openid);
        reqMap.put("scancode_type","WECHAT");
        return reqMap;
    }
    //小程序支付请求参数
    public static Map prepareRepay(String orderid,String merdate,String refundNo,String refundAmount,String orgAmount) {
        Map reqMap = new HashMap();
        reqMap.put("mer_id","53461");
        reqMap.put("order_id",orderid);
        reqMap.put("mer_date",merdate);
        reqMap.put("refund_no",refundNo);
        reqMap.put("refund_amount",refundAmount);
        reqMap.put("org_amount",orgAmount);
        return reqMap;
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jar
Binary files differ
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/template/53461_.key.p8
Binary files differ
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UuLoginVO.java
New file
@@ -0,0 +1,23 @@
package com.panzhihua.common.model.vos.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author zzj
 */
@Data
@ApiModel
public class UuLoginVO {
    @ApiModelProperty("省")
    private String province;
    @ApiModelProperty("市")
    private String city;
    @ApiModelProperty("区")
    private String area;
    private String appid;
    private String timestamp;
    private String sign;
    private String mobile;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -539,6 +539,14 @@
    R userAgreement(@RequestParam("type") int type);
    /**
     * uu洗车登录
     * @param uuLoginVO
     * @return
     */
    @PostMapping("uuLogin")
    R uuLogin(@RequestBody UuLoginVO uuLoginVO);
    /**
     * 意见反馈
     *
     * @param sysUserFeedbackDTO
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
@@ -1351,4 +1351,8 @@
        return userService.updateUserPartyStatus(userId);
    }
    @PostMapping("/uuLogin")
    public R uuLogin(@RequestBody UuLoginVO uuLoginVO){
        return userService.uuLogin(uuLoginVO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
@@ -837,4 +837,11 @@
    R deleteUserCashByPhone(String phone);
    R updateUserPartyStatus(Long userId);
    /**
     * uu洗车登录
     * @param uuLoginVO
     * @return
     */
    R uuLogin(UuLoginVO uuLoginVO);
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -4,24 +4,20 @@
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
import com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
import com.panzhihua.common.model.vos.user.*;
import com.panzhihua.common.utlis.*;
import com.panzhihua.service_user.dao.*;
import com.panzhihua.service_user.entity.SysAppConfig;
import com.panzhihua.service_user.entity.SysTemplateConfig;
@@ -76,28 +72,6 @@
import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO;
import com.panzhihua.common.model.vos.shop.ShopStoreVO;
import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
import com.panzhihua.common.model.vos.user.ChangePasswordVO;
import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
import com.panzhihua.common.model.vos.user.ComMngUserTagVO;
import com.panzhihua.common.model.vos.user.CommunityUserInfoVO;
import com.panzhihua.common.model.vos.user.MenuRoleVO;
import com.panzhihua.common.model.vos.user.NoticeUnReadVO;
import com.panzhihua.common.model.vos.user.SysOperLogVO;
import com.panzhihua.common.model.vos.user.SysUserAgreementVO;
import com.panzhihua.common.model.vos.user.SysUserFeedbackVO;
import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
import com.panzhihua.common.model.vos.user.SysUserVO;
import com.panzhihua.common.model.vos.user.UpdateUserArchivesVO;
import com.panzhihua.common.model.vos.user.UserArchivesVO;
import com.panzhihua.common.model.vos.user.UserPhoneVO;
import com.panzhihua.common.utlis.IdCard;
import com.panzhihua.common.utlis.SensitiveUtil;
import com.panzhihua.common.utlis.SmsUtil;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.common.utlis.WxUtil;
import com.panzhihua.common.utlis.WxXCXTempSend;
import com.panzhihua.service_user.model.dos.ComActFourMember;
import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO;
import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
@@ -3286,4 +3260,24 @@
        }
        return R.ok();
    }
    @Override
    public R uuLogin(UuLoginVO uuLoginVO) {
        uuLoginVO.setAppid("10000");
        String timeStamp=PayUtil.create_timestamp();
        uuLoginVO.setTimestamp(timeStamp);
        try {
            uuLoginVO.setSign(PayUtil.MD5(uuLoginVO.getAppid()+"e10adc3949ba59abbe56e057f20f883e"+timeStamp).toLowerCase(Locale.ROOT));
        } catch (Exception e) {
            e.printStackTrace();
        }
        Map<String, String> headerMap=new HashMap<>();
        headerMap.put("appid","10000");
        String resultJson=HttpClientUtil.get("https://api.uucsh.cn/member/wx/get-access?province="+uuLoginVO.getProvince()+"&city="+uuLoginVO.getCity()+"&area="+uuLoginVO.getArea()+"&appid=10000&timestamp="+uuLoginVO.getTimestamp()+"&sign="+uuLoginVO.getSign()+"&mobile="+uuLoginVO.getMobile(),headerMap,null);
        JSONObject result = JSON.parseObject(resultJson);
        if(result.get("status").equals(1)){
            return R.ok(result.get("data"));
        }
        return R.fail("信息错误");
    }
}
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -87,6 +87,7 @@
        boolean refreshToken = requestURI.contains("refreshToken");
        boolean logout = requestURI.contains("logout");
        boolean wxPay = requestURI.contains("wxNotify");
        boolean uuRepay = requestURI.contains("uuRepay");
        boolean wxCgi = requestURI.contains("cgi");
        boolean isShop = requestURI.contains("isShop");
        boolean noToken = requestURI.contains("noToken");
@@ -100,7 +101,7 @@
        SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request);
        if (login || doc || css || js || ui || swagger || ico || docs || error || refreshToken || useragreement || wxPay
        // ||wxCgi||isShop||listadvertisement||noToken||bigscreen) {
            || wxCgi || isShop || listadvertisement || noToken) {
            || wxCgi || isShop || listadvertisement || noToken||uuRepay) {
            // 什么也不做
        } else {
            // 获取请求头中JWT的Token