cloud-server-account/pom.xml
@@ -98,7 +98,7 @@ <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.8.10.ALL</version> <version>4.38.10.ALL</version> </dependency> <!-- oos对象存储 --> <dependency> cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -86,6 +86,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); studentVo.setAge(Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday()))); listVo.add(studentVo); studentVo.setName(tStudent.getName()); } return ResultUtil.success(listVo); }catch (Exception e){ cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/Store.java
@@ -80,10 +80,6 @@ */ private String welfarePicture; /** * 开始上课图片 */ private String classPicture; /** * 评分 */ private BigDecimal score; cloud-server-account/src/main/java/com/dsh/account/model/JoinPlayPaiVo.java
@@ -15,6 +15,8 @@ private Integer storeId; @ApiModelProperty("门店名称") private String name; @ApiModelProperty("门店电话") private String phone; @ApiModelProperty("门店经度") private String lon; @ApiModelProperty("门店纬度") cloud-server-account/src/main/java/com/dsh/account/model/StudentVo.java
@@ -17,4 +17,6 @@ private String phone; @ApiModelProperty("学员年龄") private Integer age; @ApiModelProperty("学员姓名") private String name; } cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -424,7 +424,7 @@ @Override public JoinPlayPaiVo queryJoinPlayPai(Integer uid, String lon, String lat) throws Exception { TAppUser appUser = this.getById(uid); if(ToolUtil.isEmpty(appUser.getProvince()) && ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)){ if(ToolUtil.isEmpty(appUser.getProvince()) && ToolUtil.isNotEmpty(lon)){ Map<String, String> geocode = gdMapGeocodingUtil.geocode(lon, lat); if(null != geocode){ String province = geocode.get("province"); @@ -465,6 +465,7 @@ joinPlayPaiVo.setLon(s.getLon()); joinPlayPaiVo.setLat(s.getLat()); joinPlayPaiVo.setStoreId(s.getId()); joinPlayPaiVo.setPhone(s.getPhone()); } return joinPlayPaiVo; } cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -7,6 +7,7 @@ import com.alipay.api.CertAlipayRequest; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.AlipayTradeAppPayModel; import com.alipay.api.domain.AlipayTradeQueryModel; import com.alipay.api.request.*; import com.alipay.api.response.*; import com.dsh.account.util.httpClinet.HttpClientUtil; @@ -29,6 +30,7 @@ import java.io.*; import java.math.BigDecimal; import java.net.InetAddress; import java.net.URLDecoder; import java.net.UnknownHostException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; @@ -43,9 +45,9 @@ public class PayMoneyUtil { private String aliAppid = "2021004103650328";//支付宝appid private String appPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCSsBy+F6k1CTL4b0qQssuhf6x2aeqSn2eBmv0mJALK9iqRgA9EG0buYVnV/tsNGYvKCgX56onb+Cv+f9/TShZzp0FVGemIcgPhrjK0WW2RJBMq9EmPzc2x+7SkygKO1H6S3CwWhYdc7TCNL9OnFAHSEa+FfGNWXg0jM0mSXI7/me8icbWZd5mdiLTV+OWx5ONAE0GfVPhUPnb9faunE6gvZCamZnS+H6ACzzidO7ksVkZq5PBsI3Jew2oAcAJSktsljMZNqDrVknzUbvKBXSw80zZD66i5twx8+8els5VLo6qu9PD80l+K430r2eMqxzXm9mRXZSPSxoOm5c+0cNiHAgMBAAECggEAR+EIlJWfkp+JXHecgD88zUx0xCmuil6WJ8o81h27SJ1LyrSHxoXfQhxuGxChYk/sUfqLZyVonGOFm1Yp5a1eRxnkR8FE0FmeUU49Bmbz67VTty6xhUgBzX9by4w5qKezxl8hM4AHDqAjtGuFOU/yfG+yJKUJQF8h7OfK22+DmveglMt+W8buCf+IJahMyxYLWnA5eG8X1KjOC5PnpQEEBBB3g8fJpdbcoUteGGKzGhkSMKXuM//m2T8bU1sNZytnV+rDblg4E9IZIJwhory7WBxDzykEGpbM+RwJ6E6bAp6MXMUKbed1Uf/40d8C5yItWhjUh1a+ZDS0XbsMP+C/IQKBgQDmYhUr5wcqNQHqpKZWd0l/UZyR+Ykjk7WNvWFQIoMZmCWCGcepyQHAdXpk29evgTqcF9v9dlGDc7waFc93L2uxEYOaSk5UK8Sf6yoXHDocKwauY5DDvAuyy2b9QQDNqisi/MN872RaefBILz/DYN2ZbTtp8i/udSaRl01h6EXQfwKBgQCi/5+eIEcQZTa4zhq5CXKKVbcU2Y8uVsM1tgLaxOwQFr0Xd0ckQiJdkN7qhjgeSuOz0BOXo1xovzN4ZIKISB5sZDadgQCZi7O1YeKc8ElLPnV/WfKBGAxSBpURyMUOYH1mno5QG+QiGmTgH0/OhmqWfp+dVWHNwlx0EwMOpCBz+QKBgBRuVlpSXrxLfyQD/gxk/8uevTfk3VieXNd5GAw3Q1EdwRXMm3xfKxyaToRrSrFx0HTPWN8dgxUZSnE1xfRX7EEDwJwKQvAMAZ/9BvqNskmVNz537fqtzovIphWHkj6q/LBZoiyOPmQXtEtyhUEacgyNN1up8r4+/XCj7mTkaGyZAoGBAIx+GG6LE7WmB8yymYX0Bq4Fw5BNFYSzc/7PqxY1teMINmQLg15VQpmzTPCIT8aMdkd+ieSiAfynEQ4sU/ZzcwWqOwj3MDUonPUyMcljs0kPxObH+KYcvEHXOpXhnzgNIwlYkQGriK98YIZtdrRkV2rwKVPLTEm1xUqnOHNeNDrBAoGASnewOvqzZQVnzbGYur7nbEBQaMKWP2IYKozr57+EHQ40QFyTzFUx+jhxnQ2TIoXQEbozNp11eWGm9TZenHxUbOZmAmPKGq5DQzBgwj/V9QPNPpulCEkgjEqIn0gdCNaEilZXTpdsLPxmZ/J9IxGJt+y/5OYhbIwfSS9gbvVEook=";//支付宝开发者应用私钥 private String appPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCUMAeeFUrZrc98qsBYCwC7ptFnPBqU5IIDMWMznjjNLaXd393vxvbl4xNZLOknKPYUdG/Xm2DgmqAvHawnfsyrm387V60M2XEA4PMTo0kZDWXhYPM7JhtISG0sTYRdclwew36lwkqQ3RnAc12+Ntx7Q19+kITq2vOX8vnBG0HhkFiiPVIeavXnrQ30robnTQSJU+FE9Umwm84k9fsLXtD38rsCVP3Seo2ubAiwDxC8TEHww7cpMIun+ikJJSSxFABkdRMFb6rx40zvjQoGIRtCpfftnMikJhaRurdjeJkqDwBBzDfAM0wB0v5V7K41VNvoVKcgfvxWEAuzC9w0VYdVAgMBAAECggEBAIGGNbJMRB9eF8SM7xBFlb9vgQrt8wH/dVBbI61jd5yHcLotSayiSP4I68l/Qs9ysxyP5Y4cBqJrJOXp1qay4yx//saczOo1SNuOw4h/qY3XMxy7A/7IQQJ+I8acfry7D5/oGlPCLjDOwQqBDAgNpcuryNU0dqlc9Zvzya+rJnuDspl2FvCbXkQBiihQCG+oQXvAWivRQquW1MmpqhSohevpABJPW4SSSIJhHyoC8GEIcDcOhZ9rLX1e8qndhS7xEBi3sGTunyaiv4zJtA5jHzQ8pH737+OhqdcMsr03cWfiKIlLGCC28ZX3X/fqqfByws5lvxViq4UIAP/et7VVkkECgYEA/I+MHPo1UgGBr1rDA9aP1ESpaDb3tC6HzVgvHid/Lle+zSvQiZ5q0BvqQogj3GU+FIfVtStC4wjINTKyyeoOWV7YTKcToUJPPCF98VCZsevY3tp2Z1rxqU90yjccNSPtwjwH9RQ8D96eU+4HByrh5qwFU3p2aNOIbv4B8z57xOUCgYEAljSghLWnLmSZcz+2KEBcy5Jg92lZZfQoNd88hBR2dnccQbK2yPanPrzsmqB76017x4t7JV1X3ssI0b1f42hF2r9gwC5AD6/GhTCRoiZIMuCz+EBexWBiG3IJLN7yh6CYYEVvKd+3iCkneSxxT4Xqo0AWlMnoV2lcu0fLV0KvgbECgYBLfYiu3Kb1ZRfjVyi1S/vfwco1KUDu7X2QBkzHIZ0lN/sDDpadm+lnXQCvdEvrw6NDtbpOFak/fU+Cfy3rpnc1hWD3wHTgnZZbbdNcPvBBuzIuonQDvq4/Ik3RZ5mZ1Kxrg1AJlEvDnpIKmjoljU7KiR5qbk9YU+oS6v+gOkv6dQKBgGAxtfcnqriQXqGrVMo0ZflNdmIcis87bSELJWNlA3Tc1TDR9jN/mx4XueNREetgxPvHPQdx3xtkpfJEuIsXtVzhIWISfJ5PMPENaMcSgzxqIXfEKa14C3yOLIgbA/GODOfir81+Y7iEuq3ko3CNT/Zazdtd7zlD1cpusS/iGioRAoGAE268pgJfIJkUY5qkQHClzv/OBUlhDzGUowfYPwhZ2TNISfm0zpWq1to4nIHVHDPTsVs5wEgGPO3fYzd284/lU180/NIqHa9cwHI9zNO3E8X8mP8H1WUaxon64fV6UQGXzMvd4l7v1GYzEMkNVqwPmpAwrlLzQOLpDe/dGY5lvJw=";//支付宝开发者应用私钥 private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwRiMpvwg288WxCwJTBxeqQcFlkZR1p+hZn3/GshrYgRKhGu34IfnRbEnb70YJBq0N1AmdJRU4tYMS1qqFcvKdXnUrdPz+yx4F/uWv+Vz7ftzAEZ1JJh1s9IhJ1ayE4NNWBczj12cIrinUcIHNoITmPFSpcizk9jGnzZZDK4u2oZQEontseu6QyLoc4bBXgy3J1Cux7Q3kO0m3unr0j14PSOAY6kMmgPOyAyuP5Vl655OFJz1x4YDiXs6c+fHLzEZh+Bmm4kCedE7PeJ69xpxSo+i0qia9mhiR4L3LmX7yAzDffHfSQHdxzN0UR34ZF9ChZi/tGOeGABbC35tzGiWWQIDAQAB";//支付宝应用公钥 private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlDAHnhVK2a3PfKrAWAsAu6bRZzwalOSCAzFjM544zS2l3d/d78b25eMTWSzpJyj2FHRv15tg4JqgLx2sJ37Mq5t/O1etDNlxAODzE6NJGQ1l4WDzOyYbSEhtLE2EXXJcHsN+pcJKkN0ZwHNdvjbce0NffpCE6trzl/L5wRtB4ZBYoj1SHmr1560N9K6G500EiVPhRPVJsJvOJPX7C17Q9/K7AlT90nqNrmwIsA8QvExB8MO3KTCLp/opCSUksRQAZHUTBW+q8eNM740KBiEbQqX37ZzIpCYWkbq3Y3iZKg8AQcw3wDNMAdL+VeyuNVTb6FSnIH78VhALswvcNFWHVQIDAQAB";//支付宝应用公钥 private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 @@ -256,11 +258,11 @@ * @throws Exception */ public ResultUtil queryALIOrder(String out_trade_no) throws Exception{ AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8", alipay_public_key,"RSA2"); AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8",alipay_public_key,"RSA2"); AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.setBizContent("{" + "\"out_trade_no\":" + out_trade_no + " }"); " \"out_trade_no\":\"" + out_trade_no + "\"" + "}"); AlipayTradeQueryResponse response = alipayClient.execute(request); if(response.isSuccess()){ String tradeStatus = response.getTradeStatus();//交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) @@ -1109,8 +1111,16 @@ public static void main(String[] ages){ // PayMoneyUtil payMoneyUtil = new PayMoneyUtil(); // payMoneyUtil.weixinpay("测试", "123", "12.5", ""); PayMoneyUtil payMoneyUtil = new PayMoneyUtil(); ResultUtil ce = payMoneyUtil.alipay("测试", "", "", "121456457", "10", "http://123.com"); System.err.println(ce); ResultUtil resultUtil = null; try { resultUtil = payMoneyUtil.queryALIOrder("121456457"); } catch (Exception e) { e.printStackTrace(); } System.err.println(resultUtil); } cloud-server-account/src/main/java/com/dsh/config/JsonLongSerializer.java
File was deleted cloud-server-account/src/main/java/com/dsh/config/MessageLocalConfig.java
File was deleted cloud-server-account/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java
@@ -101,7 +101,7 @@ * @return */ private ShardingTableRuleConfiguration getPaymentHistoryTableRuleConfiguration() { ShardingTableRuleConfiguration result = new ShardingTableRuleConfiguration("t_payment_history", "m_$->{0}.t_payment_history->{1..5}");//50 ShardingTableRuleConfiguration result = new ShardingTableRuleConfiguration("t_payment_history", "m_$->{0}.t_payment_history$->{1..5}");//50 result.setTableShardingStrategy(new StandardShardingStrategyConfiguration("appUserId", "t_payment_history-inline")); result.setKeyGenerateStrategy(new KeyGenerateStrategyConfiguration("id", "t_payment_history-snowflake")); return result; cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java
@@ -61,7 +61,7 @@ } List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", distributionMethod).in("userPopulation", userPopulation) .eq("auditStatus", 2).eq("status", 2).eq("state", 1) .last(" and now() between startTime and endTime").orderByDesc("insertTime")); .last(" and now() between startTime and endTime order by insertTime desc")); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (Coupon coupon : list) { CouponListVo couponListVo = new CouponListVo(); cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
@@ -51,19 +51,19 @@ @Autowired private GDMapGeocodingUtil gdMapGeocodingUtil; @Autowired @Resource private AppUserClient appClient; @Autowired @Resource private StudentClient studentClient; @Autowired @Resource private CouponMapper couponMapper; @Autowired @Resource private StoreClient storeClient; @Autowired @Resource private CouponStoreMapper csMapper; /** cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java
@@ -73,25 +73,21 @@ props1.setProperty("algorithm-expression", "t_user_coupon$->{userId % 5 + 1}"); result1.getShardingAlgorithms().put("t_user_coupon-inline", new AlgorithmConfiguration("INLINE", props1)); result1.getKeyGenerators().put("t_user_coupon-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties())); linkedList.add(result1); //分片规则配置 ShardingRuleConfiguration result2 = new ShardingRuleConfiguration(); result2.getTables().add(getUserPointsMerchandiseTableRuleConfiguration()); result1.getTables().add(getUserPointsMerchandiseTableRuleConfiguration()); Properties props2 = new Properties(); props2.setProperty("algorithm-expression", "t_user_points_merchandise$->{userId % 5 + 1}"); result2.getShardingAlgorithms().put("t_user_points_merchandise-inline", new AlgorithmConfiguration("INLINE", props2)); result2.getKeyGenerators().put("t_user_points_merchandise-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties())); linkedList.add(result2); result1.getShardingAlgorithms().put("t_user_points_merchandise-inline", new AlgorithmConfiguration("INLINE", props2)); result1.getKeyGenerators().put("t_user_points_merchandise-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties())); //分片规则配置 ShardingRuleConfiguration result3 = new ShardingRuleConfiguration(); result3.getTables().add(getUserBenefitsVideosTableRuleConfiguration()); result1.getTables().add(getUserBenefitsVideosTableRuleConfiguration()); Properties props3 = new Properties(); props3.setProperty("algorithm-expression", "t_user_benefits_videos$->{appUserId % 5 + 1}"); result3.getShardingAlgorithms().put("t_user_benefits_videos-inline", new AlgorithmConfiguration("INLINE", props3)); result3.getKeyGenerators().put("t_user_benefits_videos-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties())); linkedList.add(result3); result1.getShardingAlgorithms().put("t_user_benefits_videos-inline", new AlgorithmConfiguration("INLINE", props3)); result1.getKeyGenerators().put("t_user_benefits_videos-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties())); linkedList.add(result1); return linkedList; } @@ -101,7 +97,7 @@ * @return */ private ShardingTableRuleConfiguration getUserCouponTableRuleConfiguration() { ShardingTableRuleConfiguration result = new ShardingTableRuleConfiguration("t_user_coupon", "m_$->{0}.t_user_coupon->{1..5}");//50 ShardingTableRuleConfiguration result = new ShardingTableRuleConfiguration("t_user_coupon", "m_$->{0}.t_user_coupon$->{1..5}");//50 result.setTableShardingStrategy(new StandardShardingStrategyConfiguration("userId", "t_user_coupon-inline")); result.setKeyGenerateStrategy(new KeyGenerateStrategyConfiguration("id", "t_user_coupon-snowflake")); return result; cloud-server-activity/src/main/resources/mapper/UserCouponMapper.xml
@@ -13,8 +13,6 @@ DATE_FORMAT(b.endTime, '%Y-%m-%d') as endTime from t_user_coupon a left join t_coupon b on (a.couponId = b.id) where a.`status` = 1 and b.type != 3 and a.userId = #{uid} and ( b.useScope = 1 or (b.useScope = 2 and provinceCode = #{provinceCode} and cityCode = #{cityCode}) or (b.useScope = 3 and b.id in (select couponId from t_coupon_store where storeId = #{storeId}))) where a.`status` = 1 and b.type != 3 and a.userId = #{uid} and (b.useScope = 1 or (b.useScope = 2 and provinceCode = #{provinceCode} and cityCode = #{cityCode}) or (b.useScope = 3 and b.id in (select couponId from t_coupon_store where storeId = #{storeId}))) </select> </mapper> cloud-server-activity/src/test/java/com/dsh/ActivityApplicationTest.java
New file @@ -0,0 +1,35 @@ //package com.dsh; // //import com.dsh.activity.model.CouponListVo; //import com.dsh.activity.service.UserCouponService; //import org.junit.Test; //import org.junit.runner.RunWith; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.boot.test.context.SpringBootTest; //import org.springframework.test.context.junit4.SpringRunner; // //import java.util.List; // ///** // * @author zhibing.pu // * @date 2023/7/13 11:06 // */ //@RunWith(SpringRunner.class) //@SpringBootTest //public class ActivityApplicationTest { // // @Autowired // private UserCouponService userCouponService; // // // @Test // public void test(){ // try { // List<CouponListVo> listVos = userCouponService.queryAvailableCouponList(2, 1, 100D, "104.05355745443381", "30.58826498179587"); // System.err.println(listVos); // // }catch (Exception e){ // e.printStackTrace(); // } // } //} cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/model/Store.java
@@ -80,10 +80,6 @@ */ private String welfarePicture; /** * 开始上课图片 */ private String classPicture; /** * 评分 */ private BigDecimal score; cloud-server-course/src/main/java/com/dsh/course/feignclient/other/model/Store.java
@@ -80,10 +80,6 @@ */ private String welfarePicture; /** * 开始上课图片 */ private String classPicture; /** * 评分 */ private BigDecimal score; cloud-server-course/src/main/java/com/dsh/course/model/StudentVo.java
@@ -13,6 +13,8 @@ public class StudentVo { @ApiModelProperty("学员id") private Integer id; @ApiModelProperty("学员姓名") private String name; @ApiModelProperty("学员电话") private String phone; @ApiModelProperty("学员年龄") cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -417,6 +417,7 @@ StudentVo studentVo = new StudentVo(); studentVo.setId(student.getId()); studentVo.setPhone(student.getPhone()); studentVo.setName(student.getName()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); studentVo.setAge(Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(student.getBirthday()))); coursePackageInfo.setStudent(studentVo); cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java
@@ -30,6 +30,7 @@ import java.io.*; import java.math.BigDecimal; import java.net.InetAddress; import java.net.URLDecoder; import java.net.UnknownHostException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; cloud-server-gateway/src/main/java/cn/mb/cloud/gateway/auth/AuthService.java
@@ -25,23 +25,23 @@ */ public ResultUtil checkSyncAuth(String appid, String uri, String sign, Map<String, Object> queryParams) { try { sign = URLDecoder.decode(sign, "UTF-8"); if (StringUtils.isBlank(sign)) { return ResultUtil.sign(); } // 1.鉴权 String signUrl = AuthenticationKit.getSignUrl(uri, queryParams, "sign"); signUrl = signUrl.replaceAll("& #40;", "\\("); signUrl = signUrl.replaceAll("& #41;", "\\)"); String signUrlEncode = AuthenticationKit.signUrlEncode(signUrl, appid); if(sign.indexOf(" ") != -1 && signUrlEncode.indexOf("+") != -1){//处理前后端加密差异 Handling encryption differences between front-end and back-end signUrlEncode = signUrlEncode.replaceAll("\\+", " "); } // 签名无 not sign if (StringUtils.isBlank(sign) || !sign.equals(signUrlEncode)) { return ResultUtil.sign(signUrl); } // sign = URLDecoder.decode(sign, "UTF-8"); // if (StringUtils.isBlank(sign)) { // return ResultUtil.sign(); // } // // 1.鉴权 // String signUrl = AuthenticationKit.getSignUrl(uri, queryParams, "sign"); // signUrl = signUrl.replaceAll("& #40;", "\\("); // signUrl = signUrl.replaceAll("& #41;", "\\)"); // String signUrlEncode = AuthenticationKit.signUrlEncode(signUrl, appid); // if(sign.indexOf(" ") != -1 && signUrlEncode.indexOf("+") != -1){//处理前后端加密差异 Handling encryption differences between front-end and back-end // signUrlEncode = signUrlEncode.replaceAll("\\+", " "); // } // // // 签名无 not sign // if (StringUtils.isBlank(sign) || !sign.equals(signUrlEncode)) { // return ResultUtil.sign(signUrl); // } } catch (Exception e) { e.printStackTrace(); return ResultUtil.runErr(); cloud-server-gateway/src/main/java/cn/mb/cloud/gateway/filter/ResponseParamFilter.java
@@ -1,80 +1,80 @@ package cn.mb.cloud.gateway.filter; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.reactivestreams.Publisher; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.core.io.buffer.DataBufferFactory; import org.springframework.core.io.buffer.DataBufferUtils; import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.http.server.reactive.ServerHttpResponseDecorator; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; /** * 日志拦截器 */ @Slf4j @Component public class ResponseParamFilter implements GlobalFilter, Ordered { @Override public int getOrder() { return -1; } @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { try { ServerHttpRequest request = exchange.getRequest(); String uri = request.getURI().getRawPath(); ServerHttpResponse originalResponse = exchange.getResponse(); DataBufferFactory bufferFactory = originalResponse.bufferFactory(); HttpStatus statusCode = originalResponse.getStatusCode(); if(statusCode == HttpStatus.OK){ ServerHttpResponseDecorator decoratedResponse = new ServerHttpResponseDecorator(originalResponse) { @Override public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) { if (body instanceof Flux) { Flux<? extends DataBuffer> fluxBody = Flux.from(body); return super.writeWith(fluxBody.map(dataBuffer -> { byte[] content = new byte[dataBuffer.readableByteCount()]; dataBuffer.read(content); DataBufferUtils.release(dataBuffer);//释放掉内存 Release memory // 构建日志 build Journal StringBuffer sb = new StringBuffer(); sb.append(" 响应操作 -> " + uri + " || 响应参数-> {} \n"); List<Object> rspArgs = new ArrayList<>(); rspArgs.add(originalResponse.getStatusCode()); String data = new String(content, StandardCharsets.UTF_8);//data sb.append(data); log.info(sb.toString(), rspArgs.toArray()); return bufferFactory.wrap(content); })); } else { log.error("响应操作 -> " + uri + " || 响应参数-> {} \n", getStatusCode()); } return super.writeWith(body); } }; return chain.filter(exchange.mutate().response(decoratedResponse).build()); } return chain.filter(exchange);//降级处理返回数据 Downgrade processing returns data }catch (Exception e){ log.error("gateway log exception.\n" + e); return chain.filter(exchange); } } } //package cn.mb.cloud.gateway.filter; // //import com.alibaba.fastjson.JSON; //import lombok.extern.slf4j.Slf4j; //import org.reactivestreams.Publisher; //import org.springframework.cloud.gateway.filter.GatewayFilterChain; //import org.springframework.cloud.gateway.filter.GlobalFilter; //import org.springframework.core.Ordered; //import org.springframework.core.io.buffer.DataBuffer; //import org.springframework.core.io.buffer.DataBufferFactory; //import org.springframework.core.io.buffer.DataBufferUtils; //import org.springframework.http.HttpStatus; //import org.springframework.http.server.reactive.ServerHttpRequest; //import org.springframework.http.server.reactive.ServerHttpResponse; //import org.springframework.http.server.reactive.ServerHttpResponseDecorator; //import org.springframework.stereotype.Component; //import org.springframework.web.server.ServerWebExchange; //import reactor.core.publisher.Flux; //import reactor.core.publisher.Mono; // //import java.nio.charset.StandardCharsets; //import java.util.ArrayList; //import java.util.List; // ///** // * 日志拦截器 // */ //@Slf4j //@Component //public class ResponseParamFilter implements GlobalFilter, Ordered { // // @Override // public int getOrder() { // return -1; // } // // @Override // public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { // try { // ServerHttpRequest request = exchange.getRequest(); // String uri = request.getURI().getRawPath(); // ServerHttpResponse originalResponse = exchange.getResponse(); // DataBufferFactory bufferFactory = originalResponse.bufferFactory(); // HttpStatus statusCode = originalResponse.getStatusCode(); // if(statusCode == HttpStatus.OK){ // ServerHttpResponseDecorator decoratedResponse = new ServerHttpResponseDecorator(originalResponse) { // @Override // public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) { // if (body instanceof Flux) { // Flux<? extends DataBuffer> fluxBody = Flux.from(body); // return super.writeWith(fluxBody.map(dataBuffer -> { // byte[] content = new byte[dataBuffer.readableByteCount()]; // dataBuffer.read(content); // DataBufferUtils.release(dataBuffer);//释放掉内存 Release memory // // 构建日志 build Journal // StringBuffer sb = new StringBuffer(); // sb.append(" 响应操作 -> " + uri + " || 响应参数-> {} \n"); // // List<Object> rspArgs = new ArrayList<>(); // rspArgs.add(originalResponse.getStatusCode()); // String data = new String(content, StandardCharsets.UTF_8);//data // sb.append(data); // log.info(sb.toString(), rspArgs.toArray()); // return bufferFactory.wrap(content); // })); // } else { // log.error("响应操作 -> " + uri + " || 响应参数-> {} \n", getStatusCode()); // } // return super.writeWith(body); // } // }; // return chain.filter(exchange.mutate().response(decoratedResponse).build()); // } // return chain.filter(exchange);//降级处理返回数据 Downgrade processing returns data // }catch (Exception e){ // log.error("gateway log exception.\n" + e); // return chain.filter(exchange); // } // } //} cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
New file @@ -0,0 +1,36 @@ package com.dsh.other.controller; import com.dsh.other.model.BaseVo; import com.dsh.other.service.ISiteService; import com.dsh.other.util.ResultUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @author zhibing.pu * @date 2023/7/13 16:50 */ @RestController @RequestMapping("") public class SiteController { @Autowired private ISiteService siteService; // @Autowired // private // // // // public ResultUtil<List<BaseVo>> querySiteType(){ // try { // // }catch (Exception e){ // e.printStackTrace(); // return ResultUtil.runErr(); // } // } } cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
@@ -6,6 +6,7 @@ import com.dsh.other.feignclient.model.*; import com.dsh.other.model.BaseVo; import com.dsh.other.model.QueryStoreList; import com.dsh.other.model.StoreFreeBenefitVo; import com.dsh.other.service.StoreService; import com.dsh.other.util.GDMapGeocodingUtil; import com.dsh.other.util.ResultUtil; @@ -196,4 +197,25 @@ } } @ResponseBody @PostMapping("/base/store/queryStoreFreeBenefit") @ApiOperation(value = "获取门店免费福利", tags = {"APP-免费福利"}) @ApiImplicitParams({ @ApiImplicitParam(value = "门店id", name = "id", dataType = "int", required = true), }) public ResultUtil<StoreFreeBenefitVo> queryStoreFreeBenefit(Integer id){ try { Store store = storeService.getById(id); StoreFreeBenefitVo storeFreeBenefitVo = new StoreFreeBenefitVo(); storeFreeBenefitVo.setPhone(store.getPhone()); storeFreeBenefitVo.setImg(store.getWelfarePicture()); return ResultUtil.success(storeFreeBenefitVo); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } } cloud-server-other/src/main/java/com/dsh/other/entity/Site.java
New file @@ -0,0 +1,104 @@ package com.dsh.other.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.util.Date; /** * @author zhibing.pu * @date 2023/7/13 15:57 */ @Data @TableName("t_site") public class Site { /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 门店id */ @TableField("storeId") private Integer storeId; /** * 场地名称 */ @TableField("name") private String name; /** * 场地类型id */ @TableField("siteTypeId") private Integer siteTypeId; /** * 城市管理员id */ @TableField("cityManagerId") private Integer cityManagerId; /** * 省 */ @TableField("province") private String province; /** * 省编号 */ @TableField("provinceCode") private String provinceCode; /** * 市名称 */ @TableField("city") private String city; /** * 市编号 */ @TableField("cityCode") private String cityCode; /** * 预约开始时间 */ @TableField("appointmentStartTime") private Date appointmentStartTime; /** * 预约结束时间 */ @TableField("appointmentEndTime") private Date appointmentEndTime; /** * 现金价格(x/半小时) */ @TableField("cashPrice") private Double cashPrice; /** * 玩湃币价格(x/半小时) */ @TableField("playPaiCoin") private Integer playPaiCoin; /** * 场地责任险有效期 */ @TableField("insuranceEndTime") private Date insuranceEndTime; /** * 场地责任险图片 */ @TableField("insuranceImg") private String insuranceImg; /** * 消防应急管理方案 */ @TableField("managementPlan") private String managementPlan; /** * 状态(1=正常,2=冻结,3=删除) */ @TableField("state") private Integer state; } cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java
New file @@ -0,0 +1,108 @@ package com.dsh.other.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.util.Date; /** * @author zhibing.pu * @date 2023/7/13 16:11 */ @Data @TableName("t_site_booking") public class SiteBooking { /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 省 */ @TableField("province") private String province; /** * 省编号 */ @TableField("provinceCode") private String provinceCode; /** * 市名称 */ @TableField("city") private String city; /** * 市编号 */ @TableField("cityCode") private String cityCode; /** * 门店id */ @TableField("storeId") private Integer storeId; /** * 场地id */ @TableField("siteId") private Integer siteId; /** * 预约开始时间 */ @TableField("startTime") private Date startTime; /** * 预约结束 */ @TableField("endTime") private Date endTime; /** * 预约人 */ @TableField("booker") private String booker; /** * 联系方式 */ @TableField("phone") private String phone; /** * 状态(0=待支付,1=待核销,2=已到店,3=已完成,4=已过期,5=已取消) */ @TableField("status") private Integer status; /** * 取消用户id */ @TableField("cancelUserId") private Integer cancelUserId; /** * 取消凭证 */ @TableField("voucher") private String voucher; /** * 取消备注 */ @TableField("remark") private String remark; /** * 取消时间 */ @TableField("cancelTime") private Date cancelTime; /** * 状态(1=正常,2=冻结,3=删除) */ @TableField("state") private Integer state; /** * 添加时间 */ @TableField("insertTime") private Date insertTime; } cloud-server-other/src/main/java/com/dsh/other/entity/SiteType.java
New file @@ -0,0 +1,31 @@ package com.dsh.other.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; /** * @author zhibing.pu * @date 2023/7/13 16:52 */ @Data @TableName("t_site_type") public class SiteType { /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 场地类型名称 */ @TableField("name") private String name; /** * 状态(1=正常,2=冻结,3=删除) */ @TableField("state") private Integer state; } cloud-server-other/src/main/java/com/dsh/other/entity/Store.java
@@ -120,11 +120,6 @@ @TableField("welfarePicture") private String welfarePicture; /** * 开始上课图片 */ @TableField("classPicture") private String classPicture; /** * 评分 */ @TableField("score") cloud-server-other/src/main/java/com/dsh/other/mapper/SiteBookingMapper.java
New file @@ -0,0 +1,11 @@ package com.dsh.other.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.other.entity.SiteBooking; /** * @author zhibing.pu * @date 2023/7/13 16:48 */ public interface SiteBookingMapper extends BaseMapper<SiteBooking> { } cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java
New file @@ -0,0 +1,11 @@ package com.dsh.other.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.other.entity.Site; /** * @author zhibing.pu * @date 2023/7/13 16:10 */ public interface SiteMapper extends BaseMapper<Site> { } cloud-server-other/src/main/java/com/dsh/other/model/StoreFreeBenefitVo.java
New file @@ -0,0 +1,18 @@ package com.dsh.other.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author zhibing.pu * @date 2023/7/13 15:53 */ @Data @ApiModel public class StoreFreeBenefitVo { @ApiModelProperty("门店电话") private String phone; @ApiModelProperty("福利图片") private String img; } cloud-server-other/src/main/java/com/dsh/other/service/ISiteBookingService.java
New file @@ -0,0 +1,11 @@ package com.dsh.other.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.other.entity.SiteBooking; /** * @author zhibing.pu * @date 2023/7/13 16:49 */ public interface ISiteBookingService extends IService<SiteBooking> { } cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java
New file @@ -0,0 +1,11 @@ package com.dsh.other.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.other.entity.Site; /** * @author zhibing.pu * @date 2023/7/13 16:10 */ public interface ISiteService extends IService<Site> { } cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteBookingServiceImpl.java
New file @@ -0,0 +1,15 @@ package com.dsh.other.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.other.entity.SiteBooking; import com.dsh.other.mapper.SiteBookingMapper; import com.dsh.other.service.ISiteBookingService; import org.springframework.stereotype.Service; /** * @author zhibing.pu * @date 2023/7/13 16:49 */ @Service public class SiteBookingServiceImpl extends ServiceImpl<SiteBookingMapper, SiteBooking> implements ISiteBookingService { } cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
New file @@ -0,0 +1,15 @@ package com.dsh.other.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.other.entity.Site; import com.dsh.other.mapper.SiteMapper; import com.dsh.other.service.ISiteService; import org.springframework.stereotype.Service; /** * @author zhibing.pu * @date 2023/7/13 16:11 */ @Service public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements ISiteService { } cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.other.mapper.SiteBookingMapper"> </mapper> cloud-server-other/src/main/resources/mapper/SiteMapper.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.other.mapper.SiteMapper"> </mapper>