xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/domain/AppUser.java
@@ -189,6 +189,10 @@ @ApiModelProperty(value = "当前剩余能量值") @TableField("energy_value") private Integer energyValue; @ApiModelProperty(value = "邀请码") @TableField("qrCode") private String qrCode; @ApiModelProperty(value = "帮助人数") @TableField(exist = false) xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java
@@ -33,6 +33,16 @@ public RemoteAppUserService create(Throwable cause) { return new RemoteAppUserService() { @Override public R<AppUser> getUserById(Long id) { return null; } @Override public R saveQrCode(AppUser appUser) { return null; } @Override public R getUserEnergy(Long id) { return null; } xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java
@@ -29,6 +29,11 @@ */ @FeignClient(contextId = "remoteAppUserService", value = ServiceNameConstants.APP_USER_SERVICE, fallbackFactory = RemoteAppUserFallbackFactory.class) public interface RemoteAppUserService { @GetMapping("/client/app-user/getUserById/{id}") public R<AppUser> getUserById(@PathVariable("id") Long id); @PostMapping("/client/app-user/saveQrCode") public R saveQrCode(@RequestBody AppUser appUser); @PostMapping("/client/app-user-tree/getUserEnergy/{id}") public R getUserEnergy(@PathVariable("id")Long id); @PostMapping("/client/app-user/getUserBlackList/{appUserId}") xinquan-common/xinquan-common-core/src/main/java/com/xinquan/common/core/utils/JuHeFuUtil.java
@@ -5,7 +5,9 @@ import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.obs.services.IFSClient; import com.xinquan.common.core.domain.R; import com.xinquan.common.core.exception.ServiceException; @@ -96,21 +98,21 @@ // String s = RandomUtil.randomNumbers(4); // String s1 = "FZ" + time + s; // System.err.println(s1); // createUser(s1,"周帅","00" // ,"130682198203061982" // ,"18132621790" // ,"6221801210000822611"); createUser("1","董国庆","00" ,"511602199910018718" ,"18224358736" ,"6230520460328218072"); // updateAccount("FZ17403857003793677","邱仕珍","13682696011" // ,"4367427200563236884"); // updateAccount("test945622121","周帅","19983174515" // ,"6228480469852935177"); // updateAccount("FZ17430446395934603","刘晓梅","18186305036" // ,"6215591804000544393"); // balancePay("CZ09809217341", "FZ17343419268427877","0.01", ""); // queryBalance("FZ17343419268427877"); // String decrypt = decrypt("z8Che/JwxrGj/oTOuAvU8HFN6vXL/OqeioV41ZuPV/xVQPt9vCHHc1R5LgAO51Hq5ilD9wqsminRvSiJj6Fs/Bfk8espZSOO2g1OE7FZyqcLB1w01MSWyxfQT8nc2GH/EfOKXCuaKBCeyW24OvW3ng=="); // System.err.println(decrypt); // balanceWithdraw("TX1000928371648172","0.01","FZ17343419268427877","https://xq.xqzhihui.com/api/user/client/app-user-withdraw/base/callbackA"); queryUserList("441424198104061249"); // queryBalanceList("FZ17427173417891435"); queryUserList("420881198207202109"); // queryBalanceList("FZ17430701653874185"); // queryPayment("002212025032410341110750073154527547392"); } public static String queryUserList(String identifier) @@ -145,7 +147,29 @@ JSONObject jsonObject = JSONObject.parseObject(decrypt); System.err.println(jsonObject); if (jsonObject!=null){ return jsonObject.getJSONObject("data").getString("member_id"); JSONArray data1 = jsonObject.getJSONArray("data"); if(data1==null){ return null; }else{ for (Object o : data1) { // 将Object转化为jsonObject JSONObject jsonObject1 = (JSONObject) o; if(jsonObject1!=null){ String fzId = jsonObject1.getString("member_id"); String sfz = jsonObject1.getString("identifier"); if (org.springframework.util.StringUtils.hasLength(fzId)&&org.springframework.util.StringUtils.hasLength(sfz)){ if (sfz.equals(identifier)){ return fzId; } }else{ return null; } }else{ return null; } } return null; } } return null; } @@ -196,12 +220,15 @@ // String result = sendPost(BASE_URL + CREATE_USER_INTERFACE, body); String result = sendPost("https://payapi.juhefu.com/" + CREATE_USER_INTERFACE, body); JSONObject resJsonObject = JSONObject.parseObject(result); if (org.springframework.util.StringUtils.hasLength(resJsonObject.getString("error_msg"))){ return resJsonObject.getString("error_msg"); } System.err.println(resJsonObject); String string = resJsonObject.getString("reqCipher"); String string = resJsonObject.getString("resCipher"); String decrypt = decrypt(string); System.err.println(decrypt); JSONObject jsonObject = JSONObject.parseObject(decrypt); if (resJsonObject.get("error_msg")!=null){ if (jsonObject.get("error_msg")!=null){ System.err.println("添加银行卡失败没有获取到分账id"+resJsonObject.get("error_msg")); return resJsonObject.getString("error_msg"); } @@ -240,9 +267,12 @@ JSONObject resJsonObject = JSONObject.parseObject(result); System.err.println(resJsonObject); if (resJsonObject.get("error_msg")!=null){ if (resJsonObject.getString("error_msg").contains("无需更新")){ return "success"; } return resJsonObject.getString("error_msg"); } String string = resJsonObject.getString("reqCipher"); String string = resJsonObject.getString("resCipher"); String decrypt = decrypt(string); if (decrypt==null){ return "false"+"发生未知异常(应该是银行卡信息和持卡人信息不一致 但是第三方没有返回准确的错误信息 这里统一返回为银行卡信息或持卡人信息有误)"; @@ -301,7 +331,7 @@ data.put("start_date", format1); data.put("end_date", format); data.put("page_index", "01"); data.put("page_size", "01"); data.put("page_size", "10"); data.put("member_id", member_id); JSONObject body = new JSONObject(); // body.put("merId", MER_ID); xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/controller/client/ClientHomeController.java
@@ -12,6 +12,7 @@ import com.xinquan.common.security.service.TokenService; import com.xinquan.meditation.domain.HomeBackgroundMusic; import com.xinquan.meditation.domain.HomeBackgroundMusicUser; import com.xinquan.meditation.domain.MeditationMusic; import com.xinquan.meditation.domain.vo.ClientHomeBackgroundMusicVO; import com.xinquan.meditation.domain.vo.ClientMeditationAndCateVO; import com.xinquan.meditation.domain.vo.ClientMeditationCategoryVO; @@ -57,6 +58,8 @@ private final MeditationService meditationService; private final MeditationCategoryService meditationCategoryService; private final MeditationEverydayService meditationEverydayService; @Resource private RemoteHotWordsService remoteHotWordsService; private final MeditationQuestionService meditationQuestionService; @@ -64,6 +67,19 @@ private HomeBackgroundMusicUserService homeBackgroundMusicUserService; @Autowired private TokenService tokenService; @Autowired private MeditationMusicService meditationMusicService; @PostMapping("/testObs") @ApiOperation(value = "OBS", tags = "OBS") public R testObs() { List<MeditationMusic> list = meditationMusicService.list(); for (MeditationMusic meditationMusic : list) { String replace = meditationMusic.getMusicUrl().replace("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com", "http://obs.xq.xqzhihui.com"); meditationMusic.setMusicUrl(replace); } meditationMusicService.updateBatchById(list); return R.ok(); } // 新增需求 用户注册默认给一个背景音频设置 @GetMapping("/addHomeBackgroundMusicDefault/{id}") public R addHomeBackgroundMusicDefault(@PathVariable("id") Long id) { xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/CommonQuestionController.java
@@ -10,6 +10,7 @@ import com.xinquan.common.security.service.TokenService; import com.xinquan.common.security.utils.SecurityUtils; import com.xinquan.system.api.RemoteUserService; import com.xinquan.system.api.domain.AppUser; import com.xinquan.system.api.domain.CommissionRule; import com.xinquan.system.api.model.LoginUser; import com.xinquan.system.domain.CommonQuestion; @@ -19,6 +20,7 @@ import com.xinquan.system.utils.ObsUploadUtil; import com.xinquan.system.utils.QRCodeUtil; import com.xinquan.system.utils.UUIDUtil; import com.xinquan.user.api.feign.RemoteAppUserService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -27,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ByteArrayResource; import org.springframework.mock.web.MockMultipartFile; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -60,6 +63,9 @@ private RemoteUserService remoteUserService; @Autowired private TokenService tokenService; @Autowired private RemoteAppUserService remoteAppUserService; @PostMapping("/getQrCode") @ApiOperation(value = "获取客服微信二维码",tags = "获取客服微信二维码") public R getQrCode() { @@ -201,17 +207,27 @@ Long userId = loginUser.getUserid(); String string = userId.toString(); CommissionRule one = commissionRuleService.lambdaQuery().one(); AppUser data = remoteAppUserService.getUserById(userId).getData(); if (data!=null){ if (StringUtils.hasLength(data.getQrCode())){ one.setQrCode(data.getQrCode()); remoteAppUserService.saveQrCode(data); return R.ok(one); } }else{ return R.tokenError("登录失效"); } HashMap<String, String> blueCode = new HashMap<>(); blueCode.put("user_id", string); System.err.println("APP推广活动页"+string); String blueS = "https://xq.xqzhihui.com/share/#/pages/register/register?userId="+string; MyQrCodeUtil.createCodeToFile(blueS); BufferedImage blueImage = QRCodeUtil.createImage(blueS); MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); String s = ObsUploadUtil.obsUpload(blueFile); one.setQrCode(s); data.setQrCode(s); remoteAppUserService.saveQrCode(data); return R.ok(one); } @@ -231,6 +247,15 @@ System.err.println("推广人id"+userId); CommissionRule one = commissionRuleService.lambdaQuery().one(); HashMap<String, String> blueCode = new HashMap<>(); AppUser data = remoteAppUserService.getUserById(Long.valueOf(userId)).getData(); if (data!=null){ if (StringUtils.hasLength(data.getQrCode())){ one.setQrCode(data.getQrCode()); return R.ok(one); } }else{ return R.tokenError("登录失效"); } blueCode.put("user_id", userId + ""); String blueS = "https://xq.xqzhihui.com/share/#/pages/register/register?userId="+userId; MyQrCodeUtil.createCodeToFile(blueS); xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java
@@ -129,7 +129,26 @@ private NoticeRecordService noticeRecordService; @Resource private AppUserBlackService appUserBlackService; /** * 远程调用 保存邀请码 */ @PostMapping("/saveQrCode") public R saveQrCode(@RequestBody AppUser appUser){ appUserService.updateById(appUser); return R.ok(); } /** * 远程调用 查询用户信息 */ @GetMapping("/getUserById/{id}") public R<AppUser> getUserById(@PathVariable("id") Long id){ AppUser byId = appUserService.getById(id); if (byId==null){ return R.fail(); }else{ return R.ok(byId); } } /** * 远程调用 查询当前登陆人拉黑列表 * @param appUserId xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserWithdrawController.java
@@ -326,11 +326,24 @@ String s2 = JuHeFuUtil.queryUserList(byId1.getIdentityCard()); if (StringUtils.hasLength(s2)){ byId.setFenzhangId(s2); }else{ // 没有开户 long time = new Date().getTime(); String s3 = RandomUtil.randomNumbers(4); String s1 = "FZ" + time + s3; String user = JuHeFuUtil.createUser(s1, byId1.getCardholder(), "00", byId1.getIdentityCard(), byId1.getCellPhone(), byId1.getCardNo()); if (StringUtils.hasLength(user)&&user.equals("success")){ byId.setFenzhangId(s1); appUserService.updateById(byId); }else{ return R.fail(user); } } String s1 = JuHeFuUtil.updateAccount(byId.getFenzhangId(), byId1.getCardholder(), byId1.getCellPhone(), byId1.getCardNo()); if (!s1.contains("success")){ // 修改报错 弹出提示 return R.fail("银行卡信息或持卡人信息有误,请核对后输入"); return R.fail(s1); } // 从商户余额分账到用户分账接收方 JSONObject jsonObject = JuHeFuUtil.balancePay("CZ"+replace, byId.getFenzhangId(), bigDecimal1 + ""