Merge remote-tracking branch 'origin/master'
| | |
| | | private String couponIds; |
| | | @TableField(exist = false) |
| | | private String vipName; |
| | | @TableField(exist = false) |
| | | private Integer type; |
| | | |
| | | |
| | | |
| | |
| | | import com.ruoyi.common.core.dto.ExchangeDto; |
| | | import com.ruoyi.order.api.feignClient.OrderClient; |
| | | import com.ruoyi.order.api.model.ChargingListQuery; |
| | | import com.ruoyi.order.api.model.TGrantVip; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.model.TVipOrder; |
| | | import com.ruoyi.order.api.query.TActivityStatisticsQuery; |
| | |
| | | |
| | | |
| | | @Override |
| | | public R managementGiveVip(TGrantVip grantVip) { |
| | | return R.fail("管理后台赠送会员:" + cause.getMessage()); |
| | | } |
| | | |
| | | @Override |
| | | public R<List<Integer>> getSalesCountByGoodsId(String goodsIds) { |
| | | return R.fail("根据商品订单ids查询销量:" + cause.getMessage()); |
| | | } |
| | |
| | | import com.ruoyi.common.core.dto.ExchangeDto; |
| | | import com.ruoyi.order.api.factory.OrderFallbackFactory; |
| | | import com.ruoyi.order.api.model.ChargingListQuery; |
| | | import com.ruoyi.order.api.model.TGrantVip; |
| | | import com.ruoyi.order.api.model.TShoppingOrder; |
| | | import com.ruoyi.order.api.model.TVipOrder; |
| | | import com.ruoyi.order.api.query.TActivityStatisticsQuery; |
| | |
| | | */ |
| | | @FeignClient(contextId = "OrderClient", value = ServiceNameConstants.ORDER_SERVICE, fallbackFactory = OrderFallbackFactory.class) |
| | | public interface OrderClient { |
| | | |
| | | @PostMapping(value = "/t-charging-order/management/give/vip") |
| | | public R managementGiveVip(@RequestBody TGrantVip grantVip); |
| | | @GetMapping("/t-exchange-order/getSalesCountByGoodsIds/{goodsIds}") |
| | | R<List<Integer>> getSalesCountByGoodsId(@PathVariable("goodsIds") String goodsIds); |
| | | |
| | |
| | | public class ChargingOrderListVO { |
| | | @ApiModelProperty(value = "电站名称") |
| | | private String siteName; |
| | | |
| | | @ApiModelProperty(value = "订单状态") |
| | | private Integer status; |
| | | @ApiModelProperty(value = "充值支付状态(1=待支付,2=已支付)") |
| | | private Integer rechargePaymentStatus; |
| | | @ApiModelProperty(value = "电站id") |
| | | private Integer siteId; |
| | | @ApiModelProperty(value = "充电桩id") |
| | |
| | | private BigDecimal electricity; |
| | | @ApiModelProperty(value = "充电到账金额") |
| | | private BigDecimal orderAmount; |
| | | @ApiModelProperty(value = "会员抵扣金额") |
| | | private BigDecimal vipDiscountAmount; |
| | | @ApiModelProperty(value = "车牌号") |
| | | private String licensePlate; |
| | | @ApiModelProperty(value = "客户手机号") |
| | |
| | | @ApiModelProperty(value = "开始时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private LocalDateTime startTime; |
| | | @ApiModelProperty(value = "最后支付时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private LocalDateTime payTime; |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private LocalDateTime createTime; |
| | | @ApiModelProperty(value = "结束时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private LocalDateTime endTime; |
| | |
| | | |
| | | @ApiModelProperty(value = "用户手机号") |
| | | private String phone; |
| | | @ApiModelProperty(value = "用户id") |
| | | private Long appUserId; |
| | | |
| | | @ApiModelProperty(value = "参与类型 优惠券 会员抵扣 会员活动 赠送会员") |
| | | private String type; |
| | |
| | | |
| | | @ApiModelProperty(value = "会员名称") |
| | | private String name; |
| | | private Integer type; |
| | | } |
| | |
| | | */ |
| | | @PostMapping("/grantCoupon") |
| | | public R grantCoupon(@RequestBody GrantCouponDto dto){ |
| | | if (dto.getWaysToObtain()==null){ |
| | | dto.setWaysToObtain(3); |
| | | } |
| | | List<TAppCoupon> res = new ArrayList<>(); |
| | | TCoupon coupon = otherClient.getCouponById(dto.getCouponId()).getData(); |
| | | |
| | |
| | | import com.ruoyi.common.core.dto.PointChangeDto; |
| | | import com.ruoyi.common.core.enums.status.AppUserStatusEnum; |
| | | import com.ruoyi.common.core.utils.JwtUtils; |
| | | import com.ruoyi.common.core.utils.OrderCodeUtil; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.bean.BeanUtils; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.order.api.feignClient.ChargingOrderClient; |
| | | import com.ruoyi.order.api.feignClient.ExchangeOrderClient; |
| | | import com.ruoyi.order.api.feignClient.OrderClient; |
| | | import com.ruoyi.order.api.model.TChargingOrder; |
| | | import com.ruoyi.order.api.model.TExchangeOrder; |
| | | import com.ruoyi.order.api.model.TGrantVip; |
| | | import com.ruoyi.other.api.domain.*; |
| | | import com.ruoyi.other.api.domain.TCoupon; |
| | | import com.ruoyi.other.api.dto.UnitListQueryDto; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.math.BigDecimal; |
| | | import java.time.Duration; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | |
| | | private TAppUserService appUserService; |
| | | @Resource |
| | | private TAppUserTagService appUserTagService; |
| | | @Autowired |
| | | private OrderClient orderClient; |
| | | |
| | | @Resource |
| | | private TAppUserVipDetailService tAppUserVipDetailService; |
| | |
| | | appUser.setLastDays( Duration.between(LocalDateTime.now(), appUser.getVipEndTime()).toDays()); |
| | | appUser.setUid(appUser.getId().toString()); |
| | | |
| | | |
| | | TAppUserCar one1 = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, appUser.getId()).orderByDesc(BasePojo::getCreateTime).last("limit 1").one(); |
| | | if (one1!=null){ |
| | | CarNumDto carNumDto = CarUtil.carNum(one1.getLicensePlate()); |
| | | appUser.setPlace(carNumDto.getProvince()+carNumDto.getCity()); |
| | | |
| | | } |
| | | } |
| | | return R.ok(page); |
| | | } |
| | |
| | | } else if (giveVipDto.getType() == 3) { |
| | | plusDay = 12; |
| | | } |
| | | BigDecimal bigDecimal = new BigDecimal("0"); |
| | | TVip info = vipClient.getInfo1(giveVipDto.getVipId()).getData(); |
| | | switch (giveVipDto.getType()){ |
| | | case 1: |
| | | bigDecimal = bigDecimal.add(info.getMonthlyCard()); |
| | | break; |
| | | case 2: |
| | | bigDecimal = bigDecimal.add(info.getSeasonCard()); |
| | | break; |
| | | case 3: |
| | | bigDecimal = bigDecimal.add(info.getAnnualCard()); |
| | | break; |
| | | } |
| | | //增加vipDetail |
| | | giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay,giveVipDto.getType()); |
| | | appUserService.updateById(nowUser); |
| | | // 新增后台赠送记录 |
| | | TGrantVip tGrantVip = new TGrantVip(); |
| | | tGrantVip.setCode(OrderCodeUtil.getOrderCode("ZS")); |
| | | tGrantVip.setAppUserId(nowUser.getId()); |
| | | tGrantVip.setVipId(giveVipDto.getVipId()); |
| | | tGrantVip.setOrderAmount(bigDecimal); |
| | | tGrantVip.setCreateTime(LocalDateTime.now()); |
| | | tGrantVip.setAppUserId(nowUser.getId()); |
| | | orderClient.managementGiveVip(tGrantVip); |
| | | } |
| | | return R.ok(); |
| | | } |
| | |
| | | if(null != tAppUserVipDetail.getVipId()){ |
| | | TVip data = vipClient.getInfo1(tAppUserVipDetail.getVipId()).getData(); |
| | | tAppUserVipDetail.setVipName(data.getName()); |
| | | tAppUserVipDetail.setType(data.getType()); |
| | | } |
| | | } |
| | | |
| | |
| | | if(Objects.isNull(appUser)){ |
| | | appUser = new TAppUser(); |
| | | appUser.setPhone(appletUserDecodeData.getPhoneNumber()); |
| | | appUser.setInviteUserId(inviteUserId); |
| | | } |
| | | } |
| | | if(Objects.nonNull(appUser.getStatus())){ |
| | |
| | | break; |
| | | } |
| | | } |
| | | appUser.setInviteUserId(inviteUserId); |
| | | appUser.setAvatar(appletUserDecodeData.getAvatarUrl()); |
| | | appUser.setCity(appletUserDecodeData.getCity()); |
| | | appUser.setName(appletUserDecodeData.getNickName()); |
| | | appUser.setProvince(appletUserDecodeData.getProvince()); |
| | | appUser.setWxOpenid(appletUserDecodeData.getOpenId()); |
| | | this.saveOrUpdate(appUser); |
| | | if(Objects.nonNull(inviteUserId)){ |
| | | inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); |
| | | } |
| | | return this.getUserInfo(appUser); |
| | | } |
| | | |
| | |
| | | if(Objects.isNull(appUser)){ |
| | | appUser = new TAppUser(); |
| | | appUser.setPhone(phone); |
| | | appUser.setInviteUserId(inviteUserId); |
| | | } |
| | | } |
| | | if(Objects.nonNull(appUser.getStatus())){ |
| | |
| | | break; |
| | | } |
| | | } |
| | | appUser.setInviteUserId(inviteUserId); |
| | | appUser.setAliOpenid(response.getOpenId()); |
| | | this.saveOrUpdate(appUser); |
| | | if(Objects.nonNull(inviteUserId)){ |
| | | inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); |
| | | } |
| | | return this.getUserInfo(appUser); |
| | | } |
| | | // @Override |
| | |
| | | import cn.afterturn.easypoi.excel.entity.ExportParams; |
| | | import com.ruoyi.account.api.feignClient.AppUserCarClient; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.account.api.model.TAppUserCar; |
| | | import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; |
| | | import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; |
| | | import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient; |
| | | import com.ruoyi.chargingPile.api.feignClient.SiteClient; |
| | | import com.ruoyi.chargingPile.api.model.Partner; |
| | | import com.ruoyi.chargingPile.api.model.Site; |
| | | import com.ruoyi.chargingPile.api.model.TChargingGun; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | import com.ruoyi.common.core.utils.WebUtils; |
| | |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.net.URLEncoder; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | ChargingOrderListInfoVO res = chargingOrderService.chargingInfo(uid); |
| | | return AjaxResult.success(res); |
| | | } |
| | | @Autowired |
| | | private SiteClient siteClient; |
| | | @Autowired |
| | | private AppUserClient appUserClient; |
| | | @Autowired |
| | | private ChargingGunClient chargingGunClient; |
| | | @Autowired |
| | | private AppUserCarClient appUserCarClient; |
| | | @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"}) |
| | | @PutMapping("/export") |
| | | public void export(@RequestBody ChargingListQuery dto) { |
| | | ChargingOrderTimeVO res = chargingOrderService.chargingList(dto); |
| | | List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>(); |
| | | List<ChargingOrderListVO> exportList = res.getExportList(); |
| | | List<ChargingOrderListVO> exportList = res.getList().getRecords(); |
| | | int i = 0; |
| | | for (ChargingOrderListVO chargingOrderListVO : exportList) { |
| | | TChargingOrderExport tChargingOrderExport = new TChargingOrderExport(); |
| | | BeanUtils.copyProperties(chargingOrderListVO,tChargingOrderExport); |
| | | tChargingOrderExports.add(tChargingOrderExport); |
| | | |
| | | List<Site> data = siteClient.getSiteByIds(Arrays.asList(chargingOrderListVO.getSiteId())).getData(); |
| | | TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData(); |
| | | TChargingGun data4 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData(); |
| | | if (data!=null&&(!data.isEmpty())){ |
| | | tChargingOrderExport.setSiteCode(data.get(0).getCode()); |
| | | tChargingOrderExport.setSiteName(chargingOrderListVO.getSiteName()); |
| | | tChargingOrderExport.setCity(data.get(0).getCity()); |
| | | tChargingOrderExport.setCityName(data.get(0).getDistricts()); |
| | | tChargingOrderExport.setSiteType(data.get(0).getSiteType()); |
| | | tChargingOrderExport.setStatus(data.get(0).getStatus()+""); |
| | | Partner data2 = siteClient.getPartnerR(data.get(0).getPartnerId()).getData(); |
| | | if (data2!=null){ |
| | | tChargingOrderExport.setPartner(data2.getName()); |
| | | } |
| | | } |
| | | tChargingOrderExport.setSaleType("1"); |
| | | tChargingOrderExport.setBusinessCategory("1"); |
| | | tChargingOrderExport.setId(i); |
| | | tChargingOrderExport.setCode(chargingOrderListVO.getCode()); |
| | | tChargingOrderExport.setTerminalName(chargingOrderListVO.getTerminalName()); |
| | | // tChargingOrderExport.setName(); |
| | | tChargingOrderExport.setOrderClassification("1"); |
| | | tChargingOrderExport.setStartType("扫码"); |
| | | tChargingOrderExport.setOne("小程序"); |
| | | tChargingOrderExport.setTwo("小程序"); |
| | | tChargingOrderExport.setCreateTime(chargingOrderListVO.getCreateTime()+""); |
| | | tChargingOrderExport.setStartTime(chargingOrderListVO.getStartTime()+""); |
| | | tChargingOrderExport.setEndTime(chargingOrderListVO.getEndTime()+""); |
| | | tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+""); |
| | | tChargingOrderExport.setType("充电订单"); |
| | | tChargingOrderExport.setChargingType("单桩双充"); |
| | | tChargingOrderExport.setEndmode(chargingOrderListVO.getEndMode()+""); |
| | | tChargingOrderExport.setChargingEndAccount("平台"); |
| | | tChargingOrderExport.setIsFree("否"); |
| | | tChargingOrderExport.setElectrovalence(chargingOrderListVO.getElectrovalence()+""); |
| | | tChargingOrderExport.setServiceCharge(chargingOrderListVO.getServiceCharge()+""); |
| | | tChargingOrderExport.setTotal(chargingOrderListVO.getPaymentAmount()+""); |
| | | tChargingOrderExport.setChargingCapacity(chargingOrderListVO.getElectricity()+""); |
| | | // tChargingOrderExport.setElectrovalencePrice(); |
| | | // tChargingOrderExport.setServiceChargePrice(); |
| | | // tChargingOrderExport.setServiceChargePriceLook(); |
| | | // tChargingOrderExport.setCumulativeChargingTime(); |
| | | tChargingOrderExport.setStartSoc(chargingOrderListVO.getStartSoc()); |
| | | tChargingOrderExport.setEndtSoc(chargingOrderListVO.getEndSoc()); |
| | | tChargingOrderExport.setIsSoc("否"); |
| | | tChargingOrderExport.setIsSocType(""); |
| | | tChargingOrderExport.setIsSocNum("0"); |
| | | tChargingOrderExport.setUserType("普通个人用户"); |
| | | // tChargingOrderExport.setVipType(); |
| | | tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否"); |
| | | if (data3!=null){ |
| | | tChargingOrderExport.setRealName(data3.getName()); |
| | | tChargingOrderExport.setPhone(data3.getPhone()); |
| | | tChargingOrderExport.setNickName(data3.getName()); |
| | | } |
| | | if (data4!=null){ |
| | | tChargingOrderExport.setDeviceCode(data4.getCode()); |
| | | } |
| | | tChargingOrderExport.setAccountType("个人"); |
| | | List<TAppUserCar> data1 = appUserCarClient.getCarByIds(Arrays.asList(chargingOrderListVO.getAppUserCarId())).getData(); |
| | | if (data1!=null&&(!data1.isEmpty())){ |
| | | tChargingOrderExport.setCarNumber(data1.get(0).getLicensePlate()); |
| | | tChargingOrderExport.setCarType(data1.get(0).getVehicleModel()); |
| | | tChargingOrderExport.setCarBrand(data1.get(0).getVehicleBrand()); |
| | | |
| | | |
| | | } |
| | | tChargingOrderExport.setOrderCode(chargingOrderListVO.getCode()); |
| | | tChargingOrderExport.setIsSingle("是"); |
| | | tChargingOrderExport.setPayTime(chargingOrderListVO.getPayTime()+""); |
| | | tChargingOrderExport.setElectrovalenceSiteName("四川明星新能源科技有限公司"); |
| | | tChargingOrderExport.setCompanyNameAdmin("四川明星新能源科技有限公司"); |
| | | tChargingOrderExport.setMoneyType("线上计费"); |
| | | tChargingOrderExport.setDeviceType("设备直连(自由集控)"); |
| | | tChargingOrderExport.setSettlementCompanyName("四川明星新能源科技有限公司"); |
| | | tChargingOrderExport.setPrePaymentType("先付后退"); |
| | | tChargingOrderExport.setIsSecurity("是"); |
| | | tChargingOrderExports.add(tChargingOrderExport); |
| | | i++; |
| | | } |
| | | Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TChargingOrderExport.class, tChargingOrderExports); |
| | | HttpServletResponse response = WebUtils.response(); |
| | |
| | | private TokenService tokenService; |
| | | @Autowired |
| | | private TOrderEvaluateService orderEvaluateService; |
| | | |
| | | @Autowired |
| | | private TGrantVipService tGrantVipService; |
| | | @Resource |
| | | private WxPaymentClient wxPaymentClient; |
| | | |
| | |
| | | @Resource |
| | | private TOrderInvoiceService invoiceService; |
| | | |
| | | /** |
| | | * 远程调用 增加管理后台赠送会员记录 |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping(value = "/management/give/vip") |
| | | public R managementGiveVip(@RequestBody TGrantVip grantVip) { |
| | | return R.ok(tGrantVipService.save(grantVip)); |
| | | } |
| | | |
| | | /** |
| | | * 远程调用根据枪id 查询最新的订单id 用户后台结束充电 |
| | |
| | | chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":""); |
| | | chargingOrderInfoVO.setTotalPower(byId.getPower()!=null?byId.getPower().setScale(2, BigDecimal.ROUND_HALF_DOWN)+"":""); |
| | | if (byId.getAppUserCarId()!=null){ |
| | | List<TAppUserCar> data = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData(); |
| | | List<TAppUserCar> data = appUserCarClient.getCarByIds(Arrays.asList(byId.getAppUserCarId())).getData(); |
| | | if (!data.isEmpty()){ |
| | | chargingOrderInfoVO.setLicensePlate(data.get(0).getLicensePlate()); |
| | | chargingOrderInfoVO.setVehicleBrand(data.get(0).getVehicleBrand()); |
| | |
| | | } |
| | | LocalDate sixBefore = PreviousSixMonths.get(); |
| | | //通过siteIds进行sql查询统计 |
| | | List<SixChargingDto> sixChargingDtos = generateLastSixMonths(); |
| | | List<SixChargingDto> chargingDtos = chargingOrderService.charge(sixBefore, siteIds); |
| | | for (SixChargingDto sixChargingDto : sixChargingDtos) { |
| | | for (SixChargingDto chargingDto : chargingDtos) { |
| | | if (sixChargingDto.getMonth().equals(chargingDto.getMonth())){ |
| | | BeanUtils.copyProperties(chargingDto,sixChargingDto); |
| | | } |
| | | } |
| | | |
| | | return R.ok(chargingDtos); |
| | | } |
| | | |
| | | return R.ok(sixChargingDtos); |
| | | |
| | | } |
| | | |
| | | |
| | | public static List<SixChargingDto> generateLastSixMonths() { |
| | | LocalDate today = LocalDate.now(); |
| | | List<SixChargingDto> months = new ArrayList<>(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM"); |
| | | |
| | | for (int i = 5; i >= 0; i--) { |
| | | LocalDate date = today.minusMonths(i); |
| | | String month = date.format(formatter); |
| | | SixChargingDto sixChargingDto = new SixChargingDto(); |
| | | sixChargingDto.setMonth(month); |
| | | months.add(sixChargingDto); |
| | | } |
| | | |
| | | return months; |
| | | } |
| | | |
| | | @ResponseBody |
| | |
| | | //count近6个月的数据 |
| | | LocalDate sixBefore = PreviousSixMonths.get(); |
| | | List<SixShopDto> sixShopDtos = shoppingOrderService.sixBefore(sixBefore,status); |
| | | return R.ok(sixShopDtos); |
| | | List<SixShopDto> sixChargingDtos = generateLastSixMonths1(); |
| | | for (SixShopDto sixChargingDto : sixChargingDtos) { |
| | | for (SixShopDto chargingDto : sixShopDtos) { |
| | | if (sixChargingDto.getMonth().equals(chargingDto.getMonth())){ |
| | | BeanUtils.copyProperties(chargingDto,sixChargingDto); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | return R.ok(sixChargingDtos); |
| | | } |
| | | |
| | | public static List<SixShopDto> generateLastSixMonths1() { |
| | | LocalDate today = LocalDate.now(); |
| | | List<SixShopDto> months = new ArrayList<>(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM"); |
| | | |
| | | for (int i = 5; i >= 0; i--) { |
| | | LocalDate date = today.minusMonths(i); |
| | | String month = date.format(formatter); |
| | | SixShopDto sixChargingDto = new SixShopDto(); |
| | | sixChargingDto.setMonth(month); |
| | | months.add(sixChargingDto); |
| | | } |
| | | |
| | | return months; |
| | | } |
| | | |
| | | @ResponseBody |
| | |
| | | LocalDate mondayThisWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); |
| | | start = statisticsQueryDto.getStartTime(); |
| | | end = statisticsQueryDto.getEndTime(); |
| | | |
| | | System.out.println("本周一是: " + mondayThisWeek); |
| | | } |
| | | else if (statisticsQueryDto.getDayType()==3){ |
| | |
| | | private Integer status; |
| | | @ApiModelProperty("订单金额") |
| | | private Double orderAmount; |
| | | private Double rechargeAmount; |
| | | @ApiModelProperty("支付金额") |
| | | private Double paymentAmount; |
| | | @ApiModelProperty("下单时间") |
| | |
| | | private String siteCode; |
| | | @Excel(name = "电站名称",width = 30) |
| | | private String siteName; |
| | | |
| | | @Excel(name = "终端名称",width = 30) |
| | | private String terminalName; |
| | | @Excel(name = "所属城市",width = 30) |
| | |
| | | private Integer siteType; |
| | | @Excel(name = "售电模式",width = 30,replace = {"正常使用_1","维修中_2","关闭下线_3"}) |
| | | private String saleType; |
| | | @Excel(name = "站点状态",width = 30,replace = {"正常使用_1","维修中_2","关闭下线_3"}) |
| | | private String status; |
| | | @Excel(name = "运营类型",width = 30,replace = {"直营_1","非直营_2"}) |
| | | private String businessCategory; |
| | | @Excel(name = "计费模板",width = 30) |
| | |
| | | import com.ruoyi.order.mapper.TChargingBillMapper; |
| | | import com.ruoyi.order.mapper.TChargingOrderMapper; |
| | | import com.ruoyi.order.service.TChargingBillService; |
| | | import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; |
| | | import org.omg.CORBA.PRIVATE_MEMBER; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | |
| | | chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); |
| | | |
| | | chargingBillListVO.setUid(chargingBillListVO.getId().toString()); |
| | | // 根据账单的出账时间 查询上个月的充电订单 |
| | | LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); |
| | | // LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); |
| | | // todo 临时修改为查询昨天的充电订单 |
| | | LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1); |
| | | // 账单周期 |
| | | chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); |
| | | // 获取 LocalDate 对象 |
| | |
| | | if (tChargingOrder.getElectrovalence()!=null){ |
| | | electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); |
| | | } |
| | | if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() == 2){ |
| | | if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus()!=null&& tChargingOrder.getRefundStatus()==2){ |
| | | refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); |
| | | } |
| | | // 累加累计服务费 |
| | |
| | | chargingBillListVO.setChargingSecond(chargingSecond); |
| | | } |
| | | for (ChargingBillListVO chargingBillListVO : list1) { |
| | | if (chargingBillListVO.getType() ==1){ |
| | | continue; |
| | | } |
| | | LocalDateTime billTime = chargingBillListVO.getBillTime(); |
| | | // 将其转化为yyyy-MM格式字符串 |
| | | chargingBillVO.setCreateTime(billTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
| | |
| | | public R<PageInfo<PayOrderDto>> payOrderQuery(PayOrderQueryDto payOrderQueryDto) { |
| | | PageInfo<PayOrderDto> pageInfo = new PageInfo<>(payOrderQueryDto.getPageCurr(),payOrderQueryDto.getPageSize()); |
| | | List<PayOrderDto> list = this.baseMapper.payOrderQuery(pageInfo,payOrderQueryDto); |
| | | for (PayOrderDto payOrderDto : list) { |
| | | if (payOrderDto.getType()==2||payOrderDto.getType()==3){ |
| | | payOrderDto.setFinalAmount(payOrderDto.getOrderAmount()); |
| | | } |
| | | if (payOrderDto.getType()==1&&payOrderDto.getStatus()==3){ |
| | | payOrderDto.setFinalAmount(payOrderDto.getRechargeAmount()); |
| | | payOrderDto.setOrderAmount(payOrderDto.getRechargeAmount()); |
| | | payOrderDto.setPaymentAmount(payOrderDto.getRechargeAmount()); |
| | | } |
| | | } |
| | | pageInfo.setRecords(list); |
| | | return R.ok(pageInfo); |
| | | } |
| | |
| | | carId.add(chargingOrderListVO.getAppUserCarId()); |
| | | if (!carId.isEmpty()){ |
| | | List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData(); |
| | | if (data4!=null && !data4.isEmpty()) chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate()); |
| | | if (data4!=null && !data4.isEmpty()) { |
| | | chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate()); |
| | | } |
| | | } |
| | | } |
| | | chargingOrderListVO.setPhone(data3.getPhone()); |
| | |
| | | } |
| | | @Override |
| | | public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) { |
| | | return this.baseMapper.usersByQuery(statisticsQueryDto); |
| | | return this.baseMapper.usersByQuery1(statisticsQueryDto); |
| | | } |
| | | |
| | | @Override |
| | |
| | | chargingOrderRefund.setRefundTitle("后台退款"); |
| | | chargingOrderRefund.setRefundContent("后台退款"); |
| | | chargingOrderRefund.setRefundReason("后台退款"); |
| | | chargingOrderRefund.setRefundRemark("后台退款"); |
| | | chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark()); |
| | | chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount())); |
| | | chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount()); |
| | | |
| | |
| | | chargingOrderRefund.setRefundTitle("后台退款"); |
| | | chargingOrderRefund.setRefundContent("后台退款"); |
| | | chargingOrderRefund.setRefundReason("后台退款"); |
| | | chargingOrderRefund.setRefundRemark("后台退款"); |
| | | chargingOrderRefund.setRefundRemark(payOrderQueryDto.getRemark()); |
| | | chargingOrderRefund.setRefundTotalAmount(tChargingOrder.getRefundAmount().add(payOrderQueryDto.getRefundAmount())); |
| | | chargingOrderRefund.setPayAmount(tChargingOrder.getPaymentAmount()); |
| | | |
| | |
| | | BigDecimal grantVip = new BigDecimal("0"); |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | for (TActivityStatisticslVO tActivityStatisticslVO : list1) { |
| | | TAppUser data = appUserClient.getUserById(tActivityStatisticslVO.getAppUserId()).getData(); |
| | | if (data!=null){ |
| | | tActivityStatisticslVO.setPhone(data.getPhone()); |
| | | } |
| | | // 判断享有了哪些类型 |
| | | switch (tActivityStatisticslVO.getOrderType()){ |
| | | case 1: |
| | |
| | | } |
| | | } |
| | | for (TActivityStatisticslVO tActivityStatisticslVO : list) { |
| | | |
| | | // 判断享有了哪些类型 |
| | | switch (tActivityStatisticslVO.getOrderType()){ |
| | | case 1: |
| | |
| | | title, |
| | | `status`, |
| | | order_amount, |
| | | recharge_amount, |
| | | payment_amount , |
| | | create_time, |
| | | end_time, |
| | |
| | | type, |
| | | SUM( charging_capacity ) as charging_capacity , |
| | | SUM( period_service_price ) as period_electric_price, |
| | | SUM(period_electric_price+period_service_price) as total_amount |
| | | SUM(period_electric_price) as total_amount |
| | | FROM |
| | | t_charging_order_accounting_strategy |
| | | <where> |
| | |
| | | <select id="getDateData" resultType="java.util.Map"> |
| | | SELECT |
| | | DATE_FORMAT( create_time, '%Y-%m-%d %H' ) as time, |
| | | SUM(service_charge) as servicecharge, |
| | | SUM(electrovalence) as electrovalence, |
| | | SUM(payment_amount) AS paymentAmount, |
| | | CAST(SUM(service_charge-coupon_discount_amount) AS DECIMAL(20, 6)) as servicecharge, |
| | | CAST(SUM(charging_capacity) AS DECIMAL(20, 6)) as electrovalence, |
| | | CAST(SUM(electrovalence) AS DECIMAL(20, 4)) AS paymentAmount, |
| | | count(1) as orderCount |
| | | FROM |
| | | t_charging_order |
| | |
| | | <select id="getWeekData" resultType="java.util.Map"> |
| | | SELECT |
| | | DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, |
| | | SUM(service_charge) as servicecharge, |
| | | SUM(electrovalence) as electrovalence, |
| | | SUM(payment_amount) AS paymentAmount, |
| | | SUM(service_charge-coupon_discount_amount) as servicecharge, |
| | | SUM(charging_capacity) as electrovalence, |
| | | SUM(electrovalence) AS paymentAmount, |
| | | count(1) as orderCount |
| | | FROM |
| | | t_charging_order |
| | |
| | | <select id="getMonthData" resultType="java.util.Map"> |
| | | SELECT |
| | | DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, |
| | | SUM(service_charge) as servicecharge, |
| | | SUM(electrovalence) as electrovalence, |
| | | SUM(payment_amount) AS paymentAmount, |
| | | SUM(service_charge-coupon_discount_amount) as servicecharge, |
| | | SUM(charging_capacity) as electrovalence, |
| | | SUM(electrovalence) AS paymentAmount, |
| | | count(1) as orderCount |
| | | FROM |
| | | t_charging_order |
| | |
| | | <select id="getYearData" resultType="java.util.Map"> |
| | | SELECT |
| | | DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, |
| | | SUM(service_charge) as servicecharge, |
| | | SUM(electrovalence) as electrovalence, |
| | | SUM(payment_amount) AS paymentAmount, |
| | | SUM(service_charge-coupon_discount_amount) as servicecharge, |
| | | SUM(charging_capacity) as electrovalence, |
| | | SUM(electrovalence) AS paymentAmount, |
| | | |
| | | count(1) as orderCount |
| | | FROM |
| | |
| | | <select id="getByDate" resultType="java.util.Map"> |
| | | SELECT |
| | | DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, |
| | | SUM(service_charge) as servicecharge, |
| | | SUM(electrovalence) as electrovalence, |
| | | SUM(service_charge-coupon_discount_amount) as servicecharge, |
| | | SUM(charging_capacity) as electrovalence, |
| | | count(1) as orderCount |
| | | FROM |
| | | t_charging_order |
| | |
| | | </select> |
| | | <select id="queryPowerLevel" resultType="java.util.Map"> |
| | | SELECT |
| | | count(CASE WHEN power BETWEEN 0 AND 30 THEN 1 ELSE 0 END) AS count_0_30, |
| | | count(CASE WHEN power BETWEEN 31 AND 60 THEN 1 ELSE 0 END) AS count_31_60, |
| | | count(CASE WHEN power BETWEEN 61 AND 120 THEN 1 ELSE 0 END) AS count_61_120, |
| | | count(CASE WHEN power BETWEEN 121 AND 300 THEN 1 ELSE 0 END) AS count_121_300, |
| | | count(CASE WHEN power > 300 THEN 1 ELSE 0 END) AS count_above_300 |
| | | SUM(CASE WHEN power BETWEEN 0 AND 30 THEN 1 ELSE 0 END) AS count_0_30, |
| | | SUM(CASE WHEN power BETWEEN 31 AND 60 THEN 1 ELSE 0 END) AS count_31_60, |
| | | SUM(CASE WHEN power BETWEEN 61 AND 120 THEN 1 ELSE 0 END) AS count_61_120, |
| | | SUM(CASE WHEN power BETWEEN 121 AND 300 THEN 1 ELSE 0 END) AS count_121_300, |
| | | SUM(CASE WHEN power > 300 THEN 1 ELSE 0 END) AS count_above_300 |
| | | FROM |
| | | t_charging_order |
| | | WHERE |
| | |
| | | #{siteId} |
| | | </foreach> |
| | | </if> |
| | | <if test="statisticsQueryDto.dayType =1"> |
| | | <if test="statisticsQueryDto.dayType ==1"> |
| | | AND DATE(create_time) = CURDATE() |
| | | </if> |
| | | <if test="statisticsQueryDto.dayType =2"> |
| | | <if test="statisticsQueryDto.dayType ==2"> |
| | | AND WEEKOFYEAR(create_time) = WEEKOFYEAR(CURDATE()) |
| | | </if> |
| | | <if test="statisticsQueryDto.dayType =3"> |
| | | <if test="statisticsQueryDto.dayType ==3"> |
| | | AND MONTH(create_time) = MONTH(CURDATE()) |
| | | </if> |
| | | <if test="statisticsQueryDto.dayType =4"> |
| | | <if test="statisticsQueryDto.dayType ==4"> |
| | | AND YEAR(create_time) = YEAR(CURDATE()) |
| | | </if> |
| | | <if test="statisticsQueryDto.dayType =5"> |
| | | <if test="statisticsQueryDto.startTime != null"> |
| | | <if test="statisticsQueryDto.dayType ==5"> |
| | | |
| | | AND create_time >= #{statisticsQueryDto.startTime} |
| | | </if> |
| | | <if test="statisticsQueryDto.endTime != null"> |
| | | |
| | | |
| | | AND create_time <= #{statisticsQueryDto.endTime} |
| | | </if> |
| | | |
| | | </if> |
| | | |
| | | </select> |
| | |
| | | |
| | | SELECT |
| | | |
| | | DATE_FORMAT( create_time, '%Y-%m-%d %H' ) AS time, |
| | | DATE_FORMAT( create_time, '%H:00' ) AS time, |
| | | count(1) AS counts |
| | | FROM |
| | | charging_pile_account.t_app_user |
| | |
| | | t9.vip_discount_amount as vipDiscountAmount, |
| | | t9.payment_amount as paymentAmount, |
| | | t9.create_time as createTime, |
| | | t9.app_user_id as appUserId, |
| | | 1 as orderType |
| | | from t_charging_order t9 |
| | | where t9.id = 0 limit 1 |
| | |
| | | t1.vip_discount_amount as vipDiscountAmount, |
| | | t1.payment_amount as paymentAmount, |
| | | t1.create_time as createTime, |
| | | t1.app_user_id as appUserId, |
| | | 1 as orderType |
| | | from t_charging_order t1 |
| | | where 1 = 1 |
| | |
| | | and t1.code LIKE CONCAT('%',#{req.code},'%') |
| | | </if> |
| | | <if test="req.type != null and req.type != '' and req.type == 1"> |
| | | and t1.coupon_discount_amount IS NOT NULL and t1.coupon_discount_amount != 0 |
| | | and t1.coupon_discount_amount > 0 |
| | | </if> |
| | | <if test="req.type != null and req.type != '' and req.type == 2"> |
| | | and t1.vip_discount_amount IS NOT NULL and t1.vip_discount_amount != 0 |
| | | and t1.vip_discount_amount > 0 |
| | | </if> |
| | | <if test="req.type == null "> |
| | | and (t1.vip_discount_amount > 0 or t1.coupon_discount_amount > 0) |
| | | </if> |
| | | <if test="null != req.userIds and req.userIds.size()>0" > |
| | | and t1.app_user_id in |
| | |
| | | <if test="req.orderType == null or req.orderType == 2"> |
| | | <if test="req.type == null or req.type == 1 or req.type == 2"> |
| | | union all |
| | | select t2.code ,t2.order_amount as orderAmount, |
| | | select t2.code ,t2.order_amount as paymentAmount, |
| | | t2.coupon_discount_amount as couponDiscountAmount, |
| | | t2.vip_discount_amount as vipDiscountAmount, |
| | | t2.payment_amount as paymentAmount, |
| | | t2.payment_amount as orderAmount, |
| | | t2.create_time as createTime, |
| | | t2.app_user_id as appUserId, |
| | | 2 as orderType |
| | | from t_shopping_order t2 |
| | | where 1 = 1 |
| | |
| | | t3.discount_amount as vipDiscountAmount, |
| | | t3.payment_amount as paymentAmount, |
| | | t3.create_time as createTime, |
| | | t3.app_user_id as appUserId, |
| | | 3 as orderType |
| | | from t_vip_order t3 |
| | | where 1 = 1 |
| | |
| | | and t3.code LIKE CONCAT('%',#{req.code},'%') |
| | | </if> |
| | | <if test="req.type == null "> |
| | | and t3.discount_amount IS NOT NULL and t3.discount_amount != 0 |
| | | and t3.discount_amount > 0 |
| | | </if> |
| | | <if test="null != req.userIds and req.userIds.size()>0" > |
| | | and t3.app_user_id in |
| | |
| | | t4.discount_amount as vipDiscountAmount, |
| | | t4.payment_amount as paymentAmount, |
| | | t4.create_time as createTime, |
| | | t4.app_user_id as appUserId, |
| | | 4 as orderType |
| | | from t_vip_order t4 |
| | | where 1 = 1 |
| | |
| | | and t4.code LIKE CONCAT('%',#{req.code},'%') |
| | | </if> |
| | | <if test="req.type == null "> |
| | | and t4.discount_amount IS NOT NULL and t4.discount_amount != 0 |
| | | and t4.discount_amount > 0 |
| | | </if> |
| | | <if test="null != req.userIds and req.userIds.size()>0" > |
| | | and t4.app_user_id in |
| | |
| | | 0 as vipDiscountAmount, |
| | | 0 as paymentAmount, |
| | | t5.create_time as createTime, |
| | | t5.app_user_id as appUserId, |
| | | 4 as orderType |
| | | from t_grant_vip t5 |
| | | where 1 = 1 |
| | |
| | | |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.account.api.dto.SendCouponDto; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.feignClient.AppUserVipDetailClient; |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.account.api.model.TAppUserVipDetail; |
| | | import com.ruoyi.account.api.vo.GetAppUserVipDetail; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.common.core.web.page.BasePage; |
| | |
| | | @Resource |
| | | private AppUserClient appUserClient; |
| | | |
| | | @Resource |
| | | private AppUserVipDetailClient vipDetailClient; |
| | | |
| | | @ApiOperation(value = "当前生效会员信息", tags = {"小程序-个人中心"}) |
| | | @GetMapping("/recent/vipInfo") |
| | | public R<List<VipInfoDto>> recentVipInfo() { |
| | |
| | | if (data.getVipEndTime()!=null&&data.getVipEndTime().isAfter(LocalDateTime.now())) { |
| | | |
| | | List<VipInfoDto> vipInfoDtos = new ArrayList<>(); |
| | | List<TVip> vips = vipService.lambdaQuery().eq(TVip::getId, data.getVipId()).list(); |
| | | |
| | | // List<TVip> vips = vipService.lambdaQuery().eq(TVip::getId, data.getVipId()).list(); |
| | | List<TVip> vips = new ArrayList<>(); |
| | | GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail(); |
| | | getAppUserVipDetail.setAppUserId(userId); |
| | | getAppUserVipDetail.setVipId(data.getVipId()); |
| | | R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail); |
| | | TAppUserVipDetail data1 = appUserVipDetail.getData(); |
| | | String vipJson = data1.getVipJson(); |
| | | TVip tVip = JSON.parseObject(vipJson, TVip.class); |
| | | vips.add(tVip); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | for (TVip vip : vips) { |
| | | VipInfoDto vipInfoDto = new VipInfoDto(); |
| | |
| | | vipInfoDto.setMallExclusivePrice(vip.getMallExclusivePrice()); |
| | | vipInfoDto.setName(vip.getName()); |
| | | vipInfoDto.setId(vip.getId()); |
| | | if (vip.getCoupon()!=null) { |
| | | List<SendCouponDto> javaList = JSON.parseArray(vip.getCoupon()).toJavaList(SendCouponDto.class); |
| | | List<VipCouponDto> vipCouponDtos = new ArrayList<>(); |
| | | if (!javaList.isEmpty()) { |
| | |
| | | total.add(tCoupon.getDiscountAmount()); |
| | | } |
| | | } |
| | | |
| | | vipInfoDto.setTotalDiscount(total); |
| | | |
| | | vipInfoDto.setTimeAmount(vip.getMaximumDeduction().multiply(BigDecimal.valueOf(vip.getDiscountTimes()))); |
| | | } |
| | | vipInfoDto.setType(vip.getType()); |
| | | vipInfoDtos.add(vipInfoDto); |
| | | |
| | | } |
| | | return R.ok(vipInfoDtos); |
| | | |
| | |
| | | nacos: |
| | | discovery: |
| | | # 服务注册地址 |
| | | server-addr: 192.168.110.169:8848 |
| | | server-addr: 127.0.0.1:8848 |
| | | service: ${spring.application.name} |
| | | group: DEFAULT_GROUP |
| | | namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb |
| | |
| | | password: nacos |
| | | config: |
| | | # 配置中心地址 |
| | | server-addr: 192.168.110.169:8848 |
| | | server-addr: 127.0.0.1:8848 |
| | | namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb |
| | | group: DEFAULT_GROUP |
| | | name: ${spring.application.name} |
| | |
| | | type: nacos |
| | | nacos: |
| | | # 开发环境 |
| | | server-addr: 192.168.110.169:8848 |
| | | server-addr: 127.0.0.1:8848 |
| | | namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb |
| | | group: DEFAULT_GROUP |
| | | data-id: seata-server.properties |
| | |
| | | nacos: |
| | | application: seata-server |
| | | # 开发环境 |
| | | server-addr: 192.168.110.169:8848 |
| | | server-addr: 127.0.0.1:8848 |
| | | namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb |
| | | group: DEFAULT_GROUP |
| | | username: nacos |
| | |
| | | nacos: |
| | | discovery: |
| | | # 开发环境 |
| | | server-addr: 192.168.110.169:8848 # nacos注册中心地址 |
| | | server-addr: 127.0.0.1:8848 # nacos注册中心地址 |
| | | namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb # 命名空间 |
| | | group: DEFAULT_GROUP |
| | | application: seata-server #Nacos 中 Seata 名称 |