diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java
index 0c4b24555..65faf4608 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java
@@ -44,4 +44,13 @@ public enum JoinModeEnum {
public static boolean isFranchise(Integer code) {
return code == FRANCHISE_DEPARTMENT.code || code == AFFILIATES.code;
}
+
+ public static JoinModeEnum getModelByCode(Integer code) {
+ for (JoinModeEnum e : JoinModeEnum.values()) {
+ if (e.getCode() == code) {
+ return e;
+ }
+ }
+ return null;
+ }
}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/wallet/YztStoreModel.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/wallet/YztStoreModel.java
new file mode 100644
index 000000000..b31c55d26
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/wallet/YztStoreModel.java
@@ -0,0 +1,47 @@
+package com.cool.store.enums.wallet;
+
+import com.cool.store.enums.JoinModeEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ *
+ * 营帐通门店模式
+ *
+ *
+ * @author wangff
+ * @since 2025/11/19
+ */
+@Getter
+@AllArgsConstructor
+public enum YztStoreModel {
+ // 1.社会加盟 2.强管 3.强加盟 (门店模式)
+
+ SOCIAL_JOIN(1, "社会加盟", Arrays.asList(JoinModeEnum.FRANCHISE_DEPARTMENT, JoinModeEnum.FRANCHISE_COMPANIES)),
+ STRONG_MANAGEMENT(2, "强管", Collections.singletonList(JoinModeEnum.FLAGSHIP_STORE)),
+ STRONG_JOIN(3, "强加盟", Collections.singletonList(JoinModeEnum.AFFILIATES)),
+ ;
+
+ private final Integer model;
+
+ private final String desc;
+
+ /**
+ * 对应crm加盟模式枚举类
+ */
+ private final List joinModelList;
+
+ public static Integer getYztStoreModel(Integer joinModel) {
+ JoinModeEnum joinModelEnum = JoinModeEnum.getModelByCode(joinModel);
+ for (YztStoreModel e : YztStoreModel.values()) {
+ if (e.joinModelList.contains(joinModelEnum)) {
+ return e.model;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/BillPageDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/BillPageDTO.java
index 162fd905d..999cf8cc6 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/BillPageDTO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/BillPageDTO.java
@@ -20,4 +20,14 @@ public class BillPageDTO {
private List pageData;
private WalletBasicPageInfo page;
+
+ /**
+ * 收入
+ */
+ private Long getAmount;
+
+ /**
+ * 支出
+ */
+ private Long useAmount;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountBatchQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountBatchQueryRequest.java
index 2018730dc..5337a09c6 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountBatchQueryRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountBatchQueryRequest.java
@@ -23,8 +23,6 @@ public class AccountBatchQueryRequest {
@ApiModelProperty(value = "门店id")
private String outStoreId;
- private Integer walletType;
-
@ApiModelProperty(value = "分页信息",required = true)
private WalletBasicPageInfo page;
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountQueryRequest.java
new file mode 100644
index 000000000..e98f65417
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/AccountQueryRequest.java
@@ -0,0 +1,21 @@
+package com.cool.store.request.wallet;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * 账户查询Request
+ *
+ *
+ * @author wangff
+ * @since 2025/11/19
+ */
+@Data
+public class AccountQueryRequest extends StoreShopRequest {
+ @ApiModelProperty("钱包类型 1平安 2网商")
+ private Integer walletType;
+
+ @ApiModelProperty("账户编号")
+ private String accountNo;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/StoreShopRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/StoreShopRequest.java
index c33527642..ef7450aa2 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/StoreShopRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/StoreShopRequest.java
@@ -18,7 +18,4 @@ public class StoreShopRequest {
@ApiModelProperty("门店id,两者取一")
private String storeId;
-
- @ApiModelProperty("钱包类型 1平安 2网商")
- private Integer walletType;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/AccountBillPageVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/AccountBillPageVO.java
new file mode 100644
index 000000000..da99bd058
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/wallet/AccountBillPageVO.java
@@ -0,0 +1,40 @@
+package com.cool.store.vo.wallet;
+
+import com.github.pagehelper.PageInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Objects;
+
+/**
+ *
+ * 账户交易列表分页VO
+ *
+ *
+ * @author wangff
+ * @since 2025/11/19
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AccountBillPageVO {
+ @ApiModelProperty("分页数据")
+ PageInfo data;
+
+ @ApiModelProperty("收入")
+ private BigDecimal getAmount;
+
+ @ApiModelProperty("支出")
+ private BigDecimal useAmount;
+
+ public AccountBillPageVO(PageInfo data, Long getAmount, Long useAmount) {
+ this.data = data;
+ BigDecimal denominator = new BigDecimal(100);
+ this.getAmount = new BigDecimal(Objects.nonNull(getAmount) ? getAmount : 0).divide(denominator, 2, RoundingMode.HALF_UP);
+ this.useAmount = new BigDecimal(Objects.nonNull(useAmount) ? useAmount : 0).divide(denominator, 2, RoundingMode.HALF_UP);
+ }
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java
index e2a14ef65..89da73c43 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java
@@ -1,20 +1,16 @@
package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONObject;
-import com.cool.store.context.CurrentUserHolder;
import com.cool.store.dao.*;
import com.cool.store.entity.*;
import com.cool.store.enums.*;
import com.cool.store.enums.point.PaymentMethodEnum;
-import com.cool.store.exception.ServiceException;
-import com.cool.store.mapper.FranchiseFeeMapper;
-import com.cool.store.mapper.SignFranchiseMapper;
+import com.cool.store.enums.wallet.YztStoreModel;
import com.cool.store.mq.producer.SimpleMessageService;
import com.cool.store.request.StoreMasterDTO;
-import com.cool.store.request.StoreRequestBody;
-import com.cool.store.service.OperationLogService;
+import com.cool.store.request.wallet.CreateStoreRequest;
import com.cool.store.service.SyncMainSysServer;
-import com.cool.store.service.UserAuthMappingService;
+import com.cool.store.service.wallet.WalletApiService;
import com.cool.store.utils.poi.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
@@ -25,12 +21,6 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-import static com.cool.store.enums.AuditExecuteEnum.FRANCHISEES;
-import static com.cool.store.enums.ExtendFieldTypeEnum.*;
/**
* @Author: WangShuo
@@ -48,39 +38,27 @@ public class SyncMainSysServerImpl implements SyncMainSysServer {
@Resource
private SimpleMessageService simpleMessageService;
@Resource
- private SignFranchiseMapper signFranchiseMapper;
- @Resource
private BuildInformationDAO buildInformationDAO;
@Resource
private PointInfoDAO pointInfoDAO;
@Resource
- FranchiseFeeMapper franchiseFeeMapper;
- @Resource
- private OperationLogDAO operationLogDAO;
- @Resource
private OrderSysInfoDAO orderSysInfoDAO;
@Resource
- private ShopStageInfoDAO shopStageInfoDAO;
- @Resource
- private PreparationServiceImpl preparationService;
- @Resource
- private UserAuthMappingService userAuthMappingService;
- @Resource
- private CommonService commonService;
- @Resource
private ShopInfoDAO shopInfoDAO;
@Resource
private LineInfoDAO lineInfoDAO;
@Value("${mybatis.configuration.variables.enterpriseId}")
private String eid;
@Resource
- private StoreDao storeDao;
+ private SignFranchiseDAO signFranchiseDAO;
@Resource
- SignFranchiseDAO signFranchiseDAO;
+ private PointDetailInfoDAO pointDetailDAO;
@Resource
- PointDetailInfoDAO pointDetailDAO;
+ private QualificationsInfoDAO qualificationsInfoDAO;
@Resource
- QualificationsInfoDAO qualificationsInfoDAO;
+ private RegionDao regionDao;
+ @Resource
+ private WalletApiService walletApiService;
@Override
@Async
@@ -207,10 +185,35 @@ public class SyncMainSysServerImpl implements SyncMainSysServer {
}
storeMasterDTO.setSignerInfo(signerInfo);
simpleMessageService.send(JSONObject.toJSONString(storeMasterDTO), RocketMqTagEnum.ZXJP_CREATE_STORE);
+ // 推送营帐通
+ pushStoreToYzt(shopInfo, lineInfoDO);
} catch (Exception e) {
log.info("asdStore_error:{},shopId:{}", e.getMessage(), shopId.toString());
}
}
-
+ /**
+ * 钱包推送营帐通创建门店
+ */
+ public void pushStoreToYzt(ShopInfoDO shopInfoDO, LineInfoDO lineInfoDO) {
+ try {
+ RegionDO regionDO = regionDao.getRegionById(shopInfoDO.getRegionId());
+ CreateStoreRequest createStoreRequest = CreateStoreRequest.builder()
+ .outStoreId(shopInfoDO.getStoreId())
+ .storeSn(shopInfoDO.getShopCode())
+ .storeName(shopInfoDO.getShopName())
+ .orgCode(String.valueOf(regionDO.getId()))
+ .orgName(regionDO.getName())
+ .phoneNumber(lineInfoDO.getMobile())
+ .storeMode(YztStoreModel.getYztStoreModel(Integer.valueOf(shopInfoDO.getFranchiseBrand())))
+ .province(shopInfoDO.getProvinceCode())
+ .city(shopInfoDO.getCityCode())
+ .district(shopInfoDO.getDistrictCode())
+ .address(shopInfoDO.getDetailAddress())
+ .build();
+ walletApiService.createStore(createStoreRequest);
+ } catch (Exception e) {
+ log.error("推送营帐通钱包创建门店失败", e);
+ }
+ }
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java
index 897321f95..39b1070a4 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/WalletService.java
@@ -83,17 +83,31 @@ public interface WalletService {
/**
* 查询账户列表
- * @param request 门店idRequest
+ * @param request 账户查询Request
* @return 账户信息VO列表
*/
- List getAccountList(StoreShopRequest request);
+ List getAccountList(AccountQueryRequest request);
+
+ /**
+ * 根据账户编号查询账户信息
+ * @param request 账户查询Request
+ * @return 账户信息VO
+ */
+ AccountInfoVO getAccountInfo(AccountQueryRequest request);
/**
* 交易流水
* @param request 交易流水查询Request
* @return 账户交易列表VO列表
*/
- PageInfo getBillPage(AccountBillQueryRequest request);
+ AccountBillPageVO getBillPage(AccountBillQueryRequest request);
+
+ /**
+ * 账户交易详情
+ * @param request 交易详情查询Request
+ * @return 交易详情VO
+ */
+ BillDetailDTO getBillDetail(BillDetailRequest request);
/**
* 密码维护
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java
index 816cbb818..06df62dfd 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java
@@ -59,7 +59,6 @@ public class WalletServiceImpl implements WalletService {
private final ShopStageInfoDAO shopStageInfoDAO;
private final ApplyLicenseMapper applyLicenseMapper;
private final WalletApiService walletApiService;
- private final RegionDao regionDao;
private final WalletPaymentOrderDAO walletPaymentOrderDAO;
private final LineInfoDAO lineInfoDAO;
private final RedisUtilPool redisUtilPool;
@@ -250,7 +249,7 @@ public class WalletServiceImpl implements WalletService {
}
@Override
- public List getAccountList(StoreShopRequest request) {
+ public List getAccountList(AccountQueryRequest request) {
String storeId = getStoreId(request);
List accountInfo = walletApiService.getAccountInfo(new OutStoreIdRequest(storeId));
return accountInfo.stream()
@@ -264,7 +263,15 @@ public class WalletServiceImpl implements WalletService {
}
@Override
- public PageInfo getBillPage(AccountBillQueryRequest request) {
+ public AccountInfoVO getAccountInfo(AccountQueryRequest request) {
+ String storeId = getStoreId(request);
+ List accountInfo = walletApiService.getAccountInfo(new OutStoreIdRequest(storeId));
+ AccountInfoDTO accountInfoDTO = accountInfo.stream().filter(v -> v.getAccountNo().equals(request.getAccountNo())).findFirst().get();
+ return BeanUtil.toBean(accountInfoDTO, AccountInfoVO.class);
+ }
+
+ @Override
+ public AccountBillPageVO getBillPage(AccountBillQueryRequest request) {
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId());
if (Objects.isNull(shopInfo)) {
throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST);
@@ -286,7 +293,13 @@ public class WalletServiceImpl implements WalletService {
.pageSize(request.getPageSize())
.build();
BillPageDTO billPage = walletApiService.getBillPage(billPageRequest);
- return toPageInfo(billPage.getPageData(), AccountBillListVO.class, billPage.getPage());
+ PageInfo data = toPageInfo(billPage.getPageData(), AccountBillListVO.class, billPage.getPage());
+ return new AccountBillPageVO(data, billPage.getGetAmount(), billPage.getUseAmount());
+ }
+
+ @Override
+ public BillDetailDTO getBillDetail(BillDetailRequest request) {
+ return walletApiService.getBillDetail(request);
}
@Override
diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/WalletController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/WalletController.java
index db5cbdafe..dba73b2c9 100644
--- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/WalletController.java
+++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/WalletController.java
@@ -2,9 +2,9 @@ package com.cool.store.controller.webb;
import com.cool.store.dto.wallet.AccountInfoDTO;
import com.cool.store.dto.wallet.TradeRecordDTO;
+import com.cool.store.request.wallet.AccountQueryRequest;
import com.cool.store.request.wallet.CoolAccountBatchQueryRequest;
import com.cool.store.request.wallet.CoolTradeRecodePageRequest;
-import com.cool.store.request.wallet.StoreShopRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.wallet.WalletService;
import com.cool.store.vo.wallet.AccountInfoVO;
@@ -14,7 +14,6 @@ import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
-import javax.annotation.Resource;
import java.util.List;
/**
@@ -34,7 +33,7 @@ public class WalletController {
@ApiOperation("账户列表")
@GetMapping("/accountList")
- public ResponseResult> getAccountList(StoreShopRequest request) {
+ public ResponseResult> getAccountList(AccountQueryRequest request) {
return ResponseResult.success(walletService.getAccountList(request));
}
diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java
index 1bc90bad3..581e8c17d 100644
--- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java
+++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniWalletController.java
@@ -1,5 +1,6 @@
package com.cool.store.controller.webc;
+import com.cool.store.dto.wallet.BillDetailDTO;
import com.cool.store.request.wallet.*;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.wallet.WalletService;
@@ -56,16 +57,28 @@ public class MiniWalletController {
@ApiOperation("账户列表")
@GetMapping("/accountList")
- public ResponseResult> getAccountList(StoreShopRequest request) {
+ public ResponseResult> getAccountList(AccountQueryRequest request) {
return ResponseResult.success(walletService.getAccountList(request));
}
+ @ApiOperation("账户详情")
+ @GetMapping("/accountInfo")
+ public ResponseResult getAccountInfo(AccountQueryRequest request) {
+ return ResponseResult.success(walletService.getAccountInfo(request));
+ }
+
@ApiOperation("账户流水")
@PostMapping("/billPage")
- public ResponseResult> getBillPage(@RequestBody @Validated AccountBillQueryRequest request) {
+ public ResponseResult getBillPage(@RequestBody @Validated AccountBillQueryRequest request) {
return ResponseResult.success(walletService.getBillPage(request));
}
+ @ApiOperation("交易流水详情")
+ @GetMapping("/billDetail")
+ public ResponseResult getBillDetail(BillDetailRequest request) {
+ return ResponseResult.success(walletService.getBillDetail(request));
+ }
+
@ApiOperation("密码维护")
@PostMapping("/passwordUpdate")
public ResponseResult passwordUpdate(@RequestBody @Validated AccountPasswordRequest request) {