puzhibing
2023-07-05 7a14e1592dd0c2cfd6cd4e8b11f95c9f46f2ffe7
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -102,6 +102,9 @@
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Autowired
    private IBankCardService bankCardService;
    @Value("${callbackPath}")
    private String callbackPath;
@@ -167,7 +170,7 @@
     * @return
     */
    @Override
    public ResultUtil<LoginWarpper> captchaLogin(String phone, String code, String registIp, Double lat, Double lng,Integer uid,Integer type,
    public ResultUtil<LoginWarpper> captchaLogin(String phoneOperator, String phone, String code, String registIp, Double lat, Double lng,Integer uid,Integer type,
                                                 Integer userType, Integer language) throws Exception {
        boolean b = this.checkCaptcha(phone, code);
        if(!b){
@@ -177,6 +180,7 @@
        UserInfo userInfo = userInfoMapper.queryByPhone(phone);
        if(null == userInfo){
            userInfo = new UserInfo();
            userInfo.setPhoneOperator(phoneOperator);
            userInfo.setPhone(phone);
            userInfo.setPassWord(ShiroKit.md5("", salt));
            userInfo.setNickName(this.getDefaultName());
@@ -405,9 +409,8 @@
    }
    @Override
    public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, Integer uid, Integer type, Integer userType, Integer language) throws Exception {
        ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phone, code, null, null, null,uid,type,userType,language);
    public synchronized ResultUtil<LoginWarpper> captchaLogin(String phoneOperator, String phone, String code, Integer uid, Integer type, Integer userType, Integer language) throws Exception {
        ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phoneOperator, phone, code, null, null, null,uid,type,userType,language);
        return resultUtil;
    }
@@ -902,7 +905,7 @@
     * @throws Exception
     */
    @Override
    public ResultUtil bindingPhone(Integer uid, String phone, String code, Integer language) throws Exception {
    public ResultUtil bindingPhone(Integer uid, String phoneOperator, String phone, String code, Integer language) throws Exception {
        boolean b = this.checkCaptcha(phone, code);
        if(!b){
            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
@@ -952,6 +955,7 @@
            return ResultUtil.success(loginWarpper);
        }
        userInfo.setPhoneOperator(phoneOperator);
        userInfo.setPhone(phone);
        userInfo.setUpdateTime(new Date());
        userInfo.setUpdateUser(userInfo.getId());
@@ -1099,28 +1103,20 @@
     * @throws Exception
     */
    @Override
    public ResultUtil depositBalance(Integer payType, String accountNumber, Double money, Integer uid, Integer type, Integer language) throws Exception {
    public ResultUtil depositBalance(Integer payType, String bankCardId, Double money, Integer uid, Integer type, Integer language) throws Exception {
        UserInfo userInfo = userInfoMapper.selectById(uid);
        if(money.compareTo(0D) <= 0){
            return ResultUtil.error("支付金额必须大于0元");
        }
        if(payType == 1){//微信支付
        if(payType == 1){//手机支付
            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1);//添加预支付数据
//            ResultUtil resultUtil = payMoneyUtil.weixinpay("余额充值",language.toString(),integer.toString(),money+"","/base/wxCancelUserBalance","JSAPI",userInfo.getAppletsOpenId());
//            if(resultUtil.getCode()==200){
//                PaymentRecord paymentRecord = paymentRecordService.selectById(integer);
//                paymentRecordService.updateById(paymentRecord);
//                return resultUtil;
//            }else{
//                return ResultUtil.error("获取支付信息失败", "");
//            }
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            String merchantTransactionId = sdf.format(new Date()) + language + integer;
            CheckoutRequest checkoutRequest = new CheckoutRequest();
            checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone()));
            checkoutRequest.setCustomerEmail(userInfo.getEmail());
            checkoutRequest.setAccountNumber(accountNumber);
            checkoutRequest.setAccountNumber(userInfo.getPhone());
            checkoutRequest.setCustomerFirstName(userInfo.getFirstName());
            checkoutRequest.setCustomerLastName(userInfo.getLastName());
            checkoutRequest.setRequestAmount(money);
@@ -1131,20 +1127,28 @@
            checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun");
            checkoutRequest.setFailRedirectUrl("https://www.baidu.com");
            return TinggPayUtil.checkoutRequest(checkoutRequest);
        }
//        if(payType == 2){//支付宝支付
//            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 2, money, "", 1);//添加预支付数据
//            ResultUtil resultUtil = payMoneyUtil.alipay("余额充值","余额充值",integer + "_" + language,money+"","/base/aliCancelUserBalance");
//            if(resultUtil.getCode()==200){
//                PaymentRecord paymentRecord = paymentRecordService.selectById(integer);
//                paymentRecordService.updateById(paymentRecord);
//                return resultUtil;
//            }else{
//                return ResultUtil.error("获取支付信息失败", "");
//            }
//        }
        if(payType == 2){//银行卡支付
            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1);//添加预支付数据
            BankCard bankCard = bankCardService.selectById(bankCardId);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            String merchantTransactionId = sdf.format(new Date()) + language + integer;
            CheckoutRequest checkoutRequest = new CheckoutRequest();
            checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode()));
            checkoutRequest.setCustomerEmail(userInfo.getEmail());
            checkoutRequest.setAccountNumber(bankCard.getCode());
            checkoutRequest.setCustomerFirstName(bankCard.getFirstName());
            checkoutRequest.setCustomerLastName(bankCard.getLastName());
            checkoutRequest.setRequestAmount(money);
            checkoutRequest.setMerchantTransactionId(merchantTransactionId);
            checkoutRequest.setRequestDescription("Account top-up");
            checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelUserBalance");
            checkoutRequest.setPendingRedirectUrl("");
            checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun");
            checkoutRequest.setFailRedirectUrl("https://www.baidu.com");
            return TinggPayUtil.checkoutRequest(checkoutRequest);
        }
        return ResultUtil.success();
    }
@@ -1158,7 +1162,7 @@
     * @throws Exception
     */
    @Override
    public ResultUtil updatePhone(String code, String phone, Integer uid, Integer language) throws Exception {
    public ResultUtil updatePhone(String code, String phoneOperator, String phone, Integer uid, Integer language) throws Exception {
        boolean b = this.checkCaptcha(phone, code);
        if(!b){
            return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
@@ -1168,10 +1172,9 @@
        if(null != userInfo1){
            return ResultUtil.error(language == 1 ? "手机号已被注册" : language == 2 ? "The phone number has been registered" : "Le numéro de téléphone a été enregistré");
        }
        userInfo.setPhoneOperator(phoneOperator);
        userInfo.setPhone(phone);
        this.updateById(userInfo);
//        smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
        return ResultUtil.success();
    }
@@ -1227,7 +1230,7 @@
     * @throws Exception
     */
    @Override
    public void updateInfo(String avatar, String nickname, Integer sex, Date birthday, String email, String lastName, String firstName, Integer uid) throws Exception {
    public ResultUtil updateInfo(String avatar, String nickname, Integer sex, Date birthday, String email, String code, String lastName, String firstName, Integer uid, Integer language) throws Exception {
        UserInfo userInfo = this.selectById(uid);
        if(ToolUtil.isNotEmpty(avatar)){
            userInfo.setAvatar(avatar);
@@ -1242,6 +1245,10 @@
            userInfo.setBirthday(birthday);
        }
        if(null != email){
            String value = redisUtil.getValue(email);
            if(ToolUtil.isEmpty(value) || code.equals(value)){
                return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide");
            }
            userInfo.setEmail(email);
        }
        if(null != lastName){
@@ -1251,6 +1258,7 @@
            userInfo.setFirstName(firstName);
        }
        this.updateById(userInfo);
        return ResultUtil.success();
    }
@@ -1270,11 +1278,10 @@
     * 完成余额充值后的处理
     * @param id            用户id
     * @param order_id      工行订单id
     * @param type          支付类型(1=微信,2=支付宝)
     * @throws Exception
     */
    @Override
    public void payCancelUserBalance(Integer id, String order_id, Integer paymentRecordId, Integer type, Integer language) throws Exception {
    public void payCancelUserBalance(Integer id, String order_id, Integer paymentRecordId, Integer language) throws Exception {
        PaymentRecord query = paymentRecordService.selectById(paymentRecordId);
        UserInfo userInfo = this.selectById(query.getUserId());
        if(null != query){
@@ -1291,7 +1298,7 @@
            this.addCoupon(userInfo.getId(), query.getAmount(), userInfo.getCompanyId(), query.getId(), language);//添加优惠券
        }else{
            System.err.println("预支付数据异常(userId = "  + id + ")");
            System.err.println("预支付数据异常(paymentRecordId = "  + paymentRecordId + ")");
        }
    }