Merge #52 into master from cc_20260121_store_type

Merge branch 'cc_20260126_pingan_wallet' into cc_20260121_store_type

* cc_20260121_store_type: (100 commits squashed)

  - Merge branch 'master' into cc_20251208_visit

  - feat:订单列表

  - feat:订单列表

  - fix:拜访记录导出

  - feat:列表处理

  - Merge branch 'cc_20251208_visit' into cc_20260121_store_type
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java

  - feat:标准店接口处理

  - feat:标准店接口处理

  - feat:标准店接口处理

  - feat:标准店接口处理

  - feat:标准店接口处理

  - fix:加盟缴费调整

  - feat:标准店接口处理

  - fix:加盟缴费调整

  - Merge branch 'cc_20260126_pingan_wallet' into cc_20260121_store_type
    
    # Conflicts:
    #	coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/BatchTransferDTO.java
    #	coolstore-partner-model/src/main/java/com/cool/store/request/wallet/BatchTransferRequest.java

  - feat:冲突解决

  - feat:接口处理

  - feat:shopInfo

  - fix:PC缴费信息列表过滤已完成缴费信息

  - fix:测试接口修改

  - Merge branch 'refs/heads/cc_20260126_pingan_wallet' into cc_20260121_store_type

  - fix:测试接口修改

  - feat:接口

  - feat:接口调整

  - feat:注释调整

  - feat:key 调整

  - feat:订单ID

  - feat:日志打印

  - feat:选择标准店型

  - feat:useStandardStore

  - feat:标准店没有缴费阶段

  - feat:标准店没有缴费阶段

  - feat:标准店没有缴费阶段

  - feat:标准店没有缴费阶段

  - feat:阶段调整

  - fix:修复加盟缴费流程流转错误

  - feat:费用类型ID

  - feat:锁释放

  - feat:分账状态

  - fix:加盟签约合同数据补充

  - feat:排序

  - feat:选项单位

  - feat:选项单位

  - feat:选项单位

  - feat:选项单位

  - feat:option_unit

  - feat:option_unit

  - feat:更新调整

  - feat:视频非必填

  - feat:optionUnit

  - fix:转义

  - Merge branch 'master' into cc_20260126_pingan_wallet
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java

  - feat:同一配置项下只能设置一个默认选项

  - feat:数量支持小数,新增首次订货字段

  - fix:提交及修改校验合计缴费金额和分账总金额是否相同

  - feat:queryPage

  - feat:defaultQuantity 改为 BigDecimal

  - feat:defaultQuantity 改为 BigDecimal

  - feat:门店预约到店

  - feat:门店预约到店 取消预约

  - feat:门店预约到店 手机号

  - feat:添加原价

  - feat:添加原价

  - feat:添加原价

  - feat:字典表 remark

  - Merge branch 'master' into cc_20260121_store_type
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java
    #	coolstore-partner-model/src/main/java/com/cool/store/vo/dict/DictColumnSimpleVO.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java

  - feat:字典表 remark

  - feat:服务人员手机号

  - feat:价格计算调整店型优惠价*默认数量 + 原价 *(选择数量-默认数量)

  - fix:补充钱包账单推送新管家流程

  - fix:账单推送钱包支付类型payWay由1改为2

  - feat:同一配置项下只能设置一个默认选项 限制去掉

  - fix:平安钱包分账信息改为非必填

  - feat:同一配置项只能选择一个选项 限制去掉

  - feat:心愿单

  - feat:心愿单

  - feat:心愿单接口调整

  - feat:心愿单接口调整

  - feat:心愿单接口调整

  - feat:批量更新数据

  - feat:查询店型已配置的选项绑定 新增顶部预览图

  - feat:查询店型已配置的选项绑定 新增顶部预览图

  - feat:查询店型已配置的选项绑定 新增顶部预览图

  - feat:配置大类

  - feat:配置大类

  - feat:价格优化

  - feat:阶段审批处理

  - fix:删除设计费-立规

  - feat:配置大项 配置项接口改造

  - feat:配置大项 配置项接口改造

  - feat:handleAudit

  - feat:新增code

  - feat:categoryId

  - feat:心愿单接口更新

  - feat:心愿单接口更新

  - feat:心愿单接口更新

  - feat:心愿单接口更新

  - feat:心愿单接口更新

  - Merge branch 'cc_20260126_pingan_wallet' into cc_20260121_store_type
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java

  - Merge branch 'master' into cc_20260121_store_type
    
    # Conflicts:
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java

Signed-off-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/52
This commit is contained in:
正新
2026-03-10 14:13:03 +00:00
parent 5c49337e1f
commit 489d72f06f
264 changed files with 13194 additions and 99 deletions

View File

@@ -0,0 +1,51 @@
package com.cool.store.controller.webb;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.request.config.ConfigItemCategoryQueryRequest;
import com.cool.store.request.config.ConfigItemCategoryUpdateRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.config.ConfigItemCategoryService;
import com.cool.store.vo.config.ConfigItemCategoryVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "标准店-配置大类管理")
@RestController
@RequestMapping("/pc/configItemCategory")
@RequiredArgsConstructor
public class ConfigItemCategoryController {
private final ConfigItemCategoryService configItemCategoryService;
@ApiOperation("新增配置大类")
@PostMapping("/add")
public ResponseResult<Boolean> add(@RequestBody @Validated(InsertGroup.class) ConfigItemCategoryUpdateRequest request) {
return ResponseResult.success(configItemCategoryService.add(request, CurrentUserHolder.getUser()));
}
@ApiOperation("编辑配置大类")
@PostMapping("/update")
public ResponseResult<Boolean> update(@RequestBody @Validated(UpdateGroup.class) ConfigItemCategoryUpdateRequest request) {
return ResponseResult.success(configItemCategoryService.update(request, CurrentUserHolder.getUser()));
}
@ApiOperation("分页查询配置大类")
@PostMapping("/queryPage")
public ResponseResult<PageInfo<ConfigItemCategoryVO>> queryPage(@RequestBody ConfigItemCategoryQueryRequest request) {
return ResponseResult.success(configItemCategoryService.queryPage(request));
}
@ApiOperation("批量删除配置大类")
@PostMapping("/deleteByIds")
public ResponseResult<Boolean> deleteByIds(@RequestBody List<Long> ids) {
return ResponseResult.success(configItemCategoryService.deleteByIds(ids));
}
}

View File

@@ -0,0 +1,58 @@
package com.cool.store.controller.webb;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.request.config.ConfigItemQueryRequest;
import com.cool.store.request.config.ConfigItemUpdateRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.config.ConfigItemService;
import com.cool.store.vo.config.ConfigItemVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "标准店-配置项管理")
@RestController
@RequestMapping("/pc/configItem")
@RequiredArgsConstructor
public class ConfigItemController {
private final ConfigItemService configItemService;
@ApiOperation("新增配置项")
@PostMapping("/add")
public ResponseResult<Boolean> add(@RequestBody @Validated(InsertGroup.class) ConfigItemUpdateRequest request) {
return ResponseResult.success(configItemService.add(request,CurrentUserHolder.getUser()));
}
@ApiOperation("编辑配置项")
@PostMapping("/update")
public ResponseResult<Boolean> update(@RequestBody @Validated(UpdateGroup.class) ConfigItemUpdateRequest request) {
return ResponseResult.success(configItemService.update(request , CurrentUserHolder.getUser()));
}
@ApiOperation("分页查询配置项")
@PostMapping("/queryPage")
public ResponseResult<PageInfo<ConfigItemVO>> queryPage(@RequestBody ConfigItemQueryRequest request) {
return ResponseResult.success(configItemService.queryPage(request));
}
@ApiOperation("查询大类下的配置项")
@GetMapping("/listByCategoryId")
public ResponseResult<List<ConfigItemVO>> listByCategoryId(@RequestParam("CategoryId") Long CategoryId) {
return ResponseResult.success(configItemService.listByCategoryId(CategoryId));
}
@ApiOperation("批量删除配置项")
@PostMapping("/deleteByIds")
public ResponseResult<Boolean> deleteByIds(@RequestBody List<Long> ids) {
return ResponseResult.success(configItemService.deleteByIds(ids));
}
}

View File

@@ -0,0 +1,58 @@
package com.cool.store.controller.webb;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.request.config.ConfigOptionQueryRequest;
import com.cool.store.request.config.ConfigOptionTreeQueryRequest;
import com.cool.store.request.config.ConfigOptionUpdateRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.config.ConfigOptionService;
import com.cool.store.vo.config.ConfigOptionTreeVO;
import com.cool.store.vo.config.ConfigOptionVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "标准店-配置选项管理")
@RestController
@RequestMapping("/pc/configOption")
@RequiredArgsConstructor
public class ConfigOptionController {
private final ConfigOptionService configOptionService;
@ApiOperation("新增配置选项")
@PostMapping("/add")
public ResponseResult<Boolean> add(@RequestBody @Validated(InsertGroup.class) ConfigOptionUpdateRequest request) {
return ResponseResult.success(configOptionService.add(request));
}
@ApiOperation("编辑配置选项")
@PostMapping("/update")
public ResponseResult<Boolean> update(@RequestBody @Validated(UpdateGroup.class) ConfigOptionUpdateRequest request) {
return ResponseResult.success(configOptionService.update(request));
}
@ApiOperation("分页查询配置选项")
@PostMapping("/queryPage")
public ResponseResult<PageInfo<ConfigOptionVO>> queryPage(@RequestBody ConfigOptionQueryRequest request) {
return ResponseResult.success(configOptionService.queryPage(request));
}
@ApiOperation("查询激活的配置选项三层结构")
@GetMapping("/listActiveTree")
public ResponseResult<List<ConfigOptionTreeVO>> listActiveTree() {
return ResponseResult.success(configOptionService.listActiveTree());
}
@ApiOperation("批量删除配置选项")
@PostMapping("/deleteByIds")
public ResponseResult<Boolean> deleteByIds(@RequestBody List<Long> ids) {
return ResponseResult.success(configOptionService.deleteByIds(ids));
}
}

View File

@@ -89,6 +89,13 @@ public class DeskController {
return ResponseResult.success(deskService.signingOfFranchiseContractPendingList( deskRequest, userInfo ));
}
@ApiOperation("待处理-店型选配")
@PostMapping("/standardStorePendingList")
public ResponseResult<PageInfo<PreparationCommonPendingVO>> standardStorePendingList(@RequestBody DeskRequest deskRequest) {
LoginUserInfo userInfo = CurrentUserHolder.getUser();
return ResponseResult.success(deskService.standardStorePendingList( deskRequest, userInfo ));
}
@ApiOperation("待处理-发票回传")
@PostMapping("/invoiceReturnPendingList")
public ResponseResult<PageInfo<PreparationCommonPendingVO>> invoiceReturnPendingList(@RequestBody DeskRequest deskRequest) {

View File

@@ -4,6 +4,7 @@ import com.cool.store.context.CurrentUserHolder;
import com.cool.store.dto.pre.fry.ApplyManagementQueryDTO;
import com.cool.store.enums.FileTypeEnum;
import com.cool.store.request.*;
import com.cool.store.request.order.PCStoreOrderQueryRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.ExportService;
@@ -83,6 +84,12 @@ public class ExportController {
return ResponseResult.success(exportService.exportVisitRecord(request, CurrentUserHolder.getUser()));
}
@ApiOperation("PC端 店型-订单列表导出")
@PostMapping("/exportStandardStoreOrder")
public ResponseResult<Long> exportStandardStoreOrder(@RequestBody PCStoreOrderQueryRequest request) {
return ResponseResult.success(exportService.exportStandardStoreOrderRecord(request, CurrentUserHolder.getUser()));
}
@PostMapping("/pointExport")
@ApiOperation("铺位导出")
public ResponseResult<Long> pointExport(@RequestBody AllPointPageRequest request) {

View File

@@ -0,0 +1,57 @@
package com.cool.store.controller.webb;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.request.fees.FeeStandardConfigAddRequest;
import com.cool.store.request.fees.FeeStandardConfigPageRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.fees.FeeStandardConfigService;
import com.cool.store.vo.fees.FeeStandardConfigVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 加盟费用标准收费额配置
*/
@Api(tags = "加盟费用标准收费额配置")
@RestController
@RequestMapping("/pc/fees/standardConfig")
@RequiredArgsConstructor
@Validated
public class FeeStandardConfigController {
private final FeeStandardConfigService feeStandardConfigService;
@ApiOperation("新增")
@PostMapping("/add")
public ResponseResult<Boolean> add(@RequestBody @Validated({InsertGroup.class}) FeeStandardConfigAddRequest request) {
return ResponseResult.success(feeStandardConfigService.add(request));
}
@ApiOperation("修改")
@PostMapping("/update")
public ResponseResult<Boolean> update(@RequestBody @Validated({UpdateGroup.class}) FeeStandardConfigAddRequest request) {
return ResponseResult.success(feeStandardConfigService.update(request));
}
@ApiOperation("分页查询")
@PostMapping("/page")
public ResponseResult<PageInfo<FeeStandardConfigVO>> page(@RequestBody FeeStandardConfigPageRequest request) {
return ResponseResult.success(feeStandardConfigService.page(request));
}
@ApiOperation("根据门店id查询配置")
@GetMapping("/getFeeConfig")
public ResponseResult<List<FeeStandardConfigVO>> getFeeConfig(@RequestParam @NotNull(message = "门店id不能为空") Long shopId) {
return ResponseResult.success(feeStandardConfigService.getByShopId(shopId));
}
}

View File

@@ -0,0 +1,46 @@
package com.cool.store.controller.webb;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.modify.ModifyRecordService;
import com.cool.store.vo.modify.ModifyRecordVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* <p>
* 修改记录 前端控制器
* </p>
*
* @author wangff
* @since 2026/1/27
*/
@Api(tags = "修改记录")
@RestController
@RequestMapping("/pc/modify/record")
@RequiredArgsConstructor
@Validated
public class ModifyRecordController {
private final ModifyRecordService modifyRecordService;
@ApiOperation("修改记录")
@ApiImplicitParams({
@ApiImplicitParam(name = "module", value = "模块WALLET_ALLOCATION_CONFIG分账配置 PAYEE_BANK_CONFIG收款银行配置 FEE_STANDARD_CONFIG加盟费用标准收费额配置", required = true),
@ApiImplicitParam(name = "businessId", value = "业务id", required = true)
})
@GetMapping("/list")
public ResponseResult<List<ModifyRecordVO>> list(@NotBlank(message = "模块不能为空") String module,
@NotNull(message = "业务id不能为空") Long businessId) {
return ResponseResult.success(modifyRecordService.getModifyRecorsList(module, businessId));
}
}

View File

@@ -4,12 +4,14 @@ import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.request.AuditFranchiseFeeRequest;
import com.cool.store.request.FranchiseFeeRequest;
import com.cool.store.request.FranchisePayTypeUpdateRequest;
import com.cool.store.response.FranchiseFeeResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.FranchiseFeeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -55,4 +57,9 @@ public class PCFranchiseFeeController {
return ResponseResult.success(franchiseFeeService.auditFranchiseFee(request,user));
}
@ApiOperation("修改账单支付方式")
@PostMapping("/updatePayType")
public ResponseResult<Boolean> updatePayType(@RequestBody @Validated FranchisePayTypeUpdateRequest request) {
return ResponseResult.success(franchiseFeeService.updatePayType(request));
}
}

View File

@@ -43,6 +43,7 @@ import com.cool.store.response.oppty.OpportunityDetailResponse;
import com.cool.store.response.oppty.OpportunityInfoPageResponse;
import com.cool.store.service.*;
import com.cool.store.service.close.CloseStoreService;
import com.cool.store.service.fees.WalletPayInfoService;
import com.cool.store.service.impl.CommonService;
import com.cool.store.service.impl.UserAuthMappingServiceImpl;
import com.cool.store.service.wallet.WalletApiService;
@@ -131,6 +132,14 @@ public class PCTestController {
@Resource
SignFranchiseService signFranchiseService;
@Resource
WalletPayInfoService walletPayInfoService;
@PostMapping("/walletReceiptRePush")
public ResponseResult<Boolean> walletReceiptRePush(Long id) {
walletPayInfoService.rePushReceipt(id);
return ResponseResult.success(true);
}
@PostMapping("/applyCloseStore")
public ResponseResult<Boolean> applyCloseStore(@RequestBody @Valid CloseStoreApplyRequest request) {

View File

@@ -0,0 +1,63 @@
package com.cool.store.controller.webb;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.request.fees.PayeeBankConfigAddRequest;
import com.cool.store.request.fees.PayeeBankConfigPageRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.fees.PayeeBankConfigService;
import com.cool.store.vo.fees.PayeeBankConfigVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 线下收款银行配置Controller
*/
@Api(tags = "线下收款银行配置")
@RestController
@RequestMapping("/pc/fees/bankConfig")
@RequiredArgsConstructor
@Validated
public class PayeeBankConfigController {
private final PayeeBankConfigService payeeBankConfigService;
@ApiOperation("新增")
@PostMapping("/add")
public ResponseResult<Boolean> add(@RequestBody @Validated({InsertGroup.class}) PayeeBankConfigAddRequest request) {
return ResponseResult.success(payeeBankConfigService.add(request));
}
@ApiOperation("编辑")
@PostMapping("/update")
public ResponseResult<Boolean> update(@RequestBody @Validated({UpdateGroup.class}) PayeeBankConfigAddRequest request) {
return ResponseResult.success(payeeBankConfigService.update(request));
}
@ApiOperation("分页查询")
@PostMapping("/page")
public ResponseResult<PageInfo<PayeeBankConfigVO>> page(@RequestBody PayeeBankConfigPageRequest request) {
return ResponseResult.success(payeeBankConfigService.page(request));
}
@ApiOperation("根据门店查询线下收款银行")
@ApiImplicitParams({
@ApiImplicitParam(name = "shopId", value = "门店id", required = true),
@ApiImplicitParam(name = "payType", value = "付款方式 1线下支付 2平安钱包支付", required = true),
})
@GetMapping("/getBankConfig")
public ResponseResult<PayeeBankConfigVO> getBankConfig(@NotNull(message = "门店id不能为空") Long shopId,
Integer payType) {
return ResponseResult.success(payeeBankConfigService.getByShopId(shopId, payType));
}
}

View File

@@ -0,0 +1,41 @@
package com.cool.store.controller.webb;
import com.cool.store.request.store.PreAllocationQueryShopRequest;
import com.cool.store.request.store.PreAllocationSaveRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.store.PreAllocationRecordService;
import com.cool.store.vo.order.PreAllocationRecordVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* @Auther zx_szh
* @Date 2026/2/4 16:37
* @Version 1.0
*/
@Api(tags="标准店-预分账明细管理")
@RestController
@RequestMapping("/pc/preAllocation")
@RequiredArgsConstructor
public class PreAllocationRecordController {
private final PreAllocationRecordService preAllocationRecordService;
@ApiOperation("批量保存预分账明细")
@PostMapping("/saveBatch")
public ResponseResult<Boolean> saveBatch(@RequestBody @Valid PreAllocationSaveRequest req){
return ResponseResult.success(preAllocationRecordService.saveBatch(req));
}
@ApiOperation("按门店查询预分账明细")
@GetMapping("/queryByShop")
public ResponseResult<List<PreAllocationRecordVO>> queryByShop(@RequestParam(value = "shopId" ,required = true) Long shopId){
return ResponseResult.success(preAllocationRecordService.queryByShop(shopId));
}
}

View File

@@ -0,0 +1,39 @@
package com.cool.store.controller.webb;
import com.cool.store.enums.fees.AllocationPayStatusEnum;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.fees.WalletPayInfoService;
import com.cool.store.vo.fees.WalletPayInfoVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* <p>
* 门店缴费信息
* </p>
*
* @author wangff
* @since 2026/2/3
*/
@RestController
@Api(tags ="门店缴费信息")
@RequestMapping({"/pc/fees/shopAllocation"})
@RequiredArgsConstructor
@Validated
public class ShopAllocationController {
private final WalletPayInfoService walletPayInfoService;
@ApiOperation("缴费信息列表")
@GetMapping("/payInfoList")
public ResponseResult<List<WalletPayInfoVO>> payInfoList(@NotNull(message = "门店id不能为空") Long shopId) {
return ResponseResult.success(walletPayInfoService.payInfoList(shopId, AllocationPayStatusEnum.PAID.getStatus()));
}
}

View File

@@ -0,0 +1,77 @@
package com.cool.store.controller.webb;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.request.order.OrderAuditRecordRequest;
import com.cool.store.request.order.PCStoreOrderOptionQuantityUpdateRequest;
import com.cool.store.request.order.PCStoreOrderQueryRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.order.MiniStoreOrderService;
import com.cool.store.vo.order.MiniStoreOrderDetailVO;
import com.cool.store.vo.order.PCStoreOrderListVO;
import javax.validation.Valid;
import com.cool.store.vo.order.WalletPayVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Auther zx_szh
* @Date 2026/2/6 14:34
* @Version 1.0
*/
@Api(tags = "PC标准店-店型")
@RestController
@RequestMapping("/pc/storeOrder")
@RequiredArgsConstructor
public class StoreOrderController {
private final MiniStoreOrderService miniStoreOrderService;
@ApiOperation("订单 审批拒绝")
@PostMapping("/passOrder")
public ResponseResult<Boolean> passOrder(@RequestBody OrderAuditRecordRequest request) {
return ResponseResult.success(miniStoreOrderService.passOrder(request, CurrentUserHolder.getUser()));
}
@ApiOperation("订单 审批通过")
@PostMapping("/rejectOrder")
public ResponseResult<Boolean> rejectOrder(@RequestBody OrderAuditRecordRequest request) {
return ResponseResult.success(miniStoreOrderService.rejectOrder(request,CurrentUserHolder.getUser()));
}
@ApiOperation("订单详情")
@GetMapping("/detail")
public ResponseResult<MiniStoreOrderDetailVO> detail(@RequestParam("orderId") Long orderId) {
return ResponseResult.success(miniStoreOrderService.getDetail(orderId));
}
@ApiOperation("获取当前门店最新的订单")
@GetMapping("/getLatestOrderByShopId")
public ResponseResult<MiniStoreOrderDetailVO> getLatestOrderByShopId(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(miniStoreOrderService.getLatestOrderByShopId(shopId));
}
@ApiOperation("订单列表")
@PostMapping("/list")
public ResponseResult<PageInfo<PCStoreOrderListVO>> list(@RequestBody PCStoreOrderQueryRequest request) {
return ResponseResult.success(miniStoreOrderService.list(request));
}
@ApiOperation("付款流水明细")
@GetMapping("/payList")
public ResponseResult<List<WalletPayVO>> payList(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(miniStoreOrderService.payList(shopId));
}
@ApiOperation("批量更新订单配置项数量")
@PostMapping("/batchUpdateOptionQuantity")
public ResponseResult<Boolean> batchUpdateOptionQuantity(@RequestBody @Valid PCStoreOrderOptionQuantityUpdateRequest request) {
return ResponseResult.success(miniStoreOrderService.batchUpdateOptionQuantity(request));
}
}

View File

@@ -0,0 +1,77 @@
package com.cool.store.controller.webb;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.request.store.StoreTypeOptionSaveRequest;
import com.cool.store.request.store.StoreTypeQueryRequest;
import com.cool.store.request.store.StoreTypeUpdateRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.store.StoreTypeService;
import com.cool.store.vo.store.StoreTypeOptionVO;
import com.cool.store.vo.store.StoreTypeVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@Api(tags = "店型管理")
@RestController
@RequestMapping("/pc/storeType")
@RequiredArgsConstructor
public class StoreTypeController {
private final StoreTypeService storeTypeService;
@ApiOperation("新增店型")
@PostMapping("/add")
public ResponseResult<Boolean> add(@RequestBody @Validated(InsertGroup.class) StoreTypeUpdateRequest request) {
return ResponseResult.success(storeTypeService.add(request));
}
@ApiOperation("编辑店型")
@PostMapping("/update")
public ResponseResult<Boolean> update(@RequestBody @Validated(UpdateGroup.class) StoreTypeUpdateRequest request) {
return ResponseResult.success(storeTypeService.update(request));
}
@ApiOperation("分页查询店型")
@PostMapping("/queryPage")
public ResponseResult<PageInfo<StoreTypeVO>> queryPage(@RequestBody StoreTypeQueryRequest request) {
return ResponseResult.success(storeTypeService.queryPage(request));
}
@ApiOperation("批量删除店型(仅停用状态可删除)")
@PostMapping("/deleteByIds")
public ResponseResult<Boolean> deleteByIds(@RequestBody List<Long> ids) {
return ResponseResult.success(storeTypeService.deleteByIds(ids));
}
@ApiOperation("启用店型")
@PostMapping("/enable/{id}")
public ResponseResult<Boolean> enable(@PathVariable Long id) {
return ResponseResult.success(storeTypeService.changeActive(id, true));
}
@ApiOperation("停用店型")
@PostMapping("/disable/{id}")
public ResponseResult<Boolean> disable(@PathVariable Long id) {
return ResponseResult.success(storeTypeService.changeActive(id, false));
}
@ApiOperation("保存店型可用配置选项")
@PostMapping("/config/save")
public ResponseResult<Boolean> saveStoreTypeOptions(@RequestBody @Valid StoreTypeOptionSaveRequest request) {
return ResponseResult.success(storeTypeService.saveStoreTypeOptions(request));
}
@ApiOperation("查询店型已配置的选项绑定")
@GetMapping("/config/detail")
public ResponseResult<List<StoreTypeOptionVO>> listStoreTypeOptions(@RequestParam("storeTypeId") Long storeTypeId) {
return ResponseResult.success(storeTypeService.listStoreTypeOptions(storeTypeId));
}
}

View File

@@ -0,0 +1,45 @@
package com.cool.store.controller.webb;
import com.cool.store.request.visit.*;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.visit.StoreVisitReservationService;
import com.cool.store.vo.visit.StoreVisitReservationVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Api(tags = "预约到店管理")
@RestController
@RequestMapping("/pc/storeVisitReservation")
@RequiredArgsConstructor
public class StoreVisitReservationController {
private final StoreVisitReservationService storeVisitReservationService;
@ApiOperation("列表查询")
@PostMapping("/page")
public ResponseResult<PageInfo<StoreVisitReservationVO>> page(@RequestBody StoreVisitReservationAdminQueryRequest request) {
return ResponseResult.success(storeVisitReservationService.adminPage(request));
}
@ApiOperation("标记已到店")
@PostMapping("/arrived")
public ResponseResult<Boolean> arrived(@RequestBody @Validated StoreVisitReservationIdRequest request) {
return ResponseResult.success(storeVisitReservationService.arrived(request));
}
@ApiOperation("分配服务人员")
@PostMapping("/assignServiceUser")
public ResponseResult<Boolean> assignServiceUser(@RequestBody @Validated StoreVisitReservationAssignServiceRequest request) {
return ResponseResult.success(storeVisitReservationService.assignServiceUser(request));
}
@ApiOperation("取消预约")
@PostMapping("/cancel")
public ResponseResult<Boolean> cancel(@RequestBody @Validated StoreVisitReservationCancelRequest request) {
return ResponseResult.success(storeVisitReservationService.cancel(request));
}
}

View File

@@ -0,0 +1,66 @@
package com.cool.store.controller.webb;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.request.fees.WalletCompanyQueryRequest;
import com.cool.store.request.fees.WalletAllocationConfigAddRequest;
import com.cool.store.request.fees.WalletAllocationConfigPageRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.fees.WalletAllocationConfigService;
import com.cool.store.vo.fees.InvestDivisionRegionVO;
import com.cool.store.vo.fees.WalletAllocationCompanyVO;
import com.cool.store.vo.fees.WalletAllocationConfigVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 分账配置Controller
*
* @author system
*/
@Api(tags = "分账配置")
@RestController
@RequestMapping("/pc/fees/allocationConfig")
@RequiredArgsConstructor
@Validated
public class WalletAllocationConfigController {
private final WalletAllocationConfigService walletAllocationConfigService;
@ApiOperation("新增分账配置")
@PostMapping("/add")
public ResponseResult<Boolean> add(@RequestBody @Validated({InsertGroup.class}) WalletAllocationConfigAddRequest request) {
return ResponseResult.success(walletAllocationConfigService.add(request));
}
@ApiOperation("编辑分账配置")
@PostMapping("/update")
public ResponseResult<Boolean> update(@RequestBody @Validated({UpdateGroup.class}) WalletAllocationConfigAddRequest request) {
return ResponseResult.success(walletAllocationConfigService.update(request));
}
@ApiOperation("分页查询分账配置")
@PostMapping("/page")
public ResponseResult<PageInfo<WalletAllocationConfigVO>> page(@RequestBody WalletAllocationConfigPageRequest request) {
return ResponseResult.success(walletAllocationConfigService.page(request));
}
@ApiOperation("招商分部列表")
@GetMapping("/getInvestDivisionRegion")
public ResponseResult<List<InvestDivisionRegionVO>> getInvestDivisionRegion() {
return ResponseResult.success(walletAllocationConfigService.getInvestDivisionRegionList());
}
@ApiOperation("收款公司列表")
@PostMapping("/companyPage")
public ResponseResult<PageInfo<WalletAllocationCompanyVO>> companyPage(@RequestBody WalletCompanyQueryRequest request) {
return ResponseResult.success(walletAllocationConfigService.companyPage(request));
}
}

View File

@@ -0,0 +1,42 @@
package com.cool.store.controller.webc;
import com.cool.store.common.InsertGroup;
import com.cool.store.common.UpdateGroup;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.request.config.ConfigItemCategoryQueryRequest;
import com.cool.store.request.config.ConfigItemCategoryUpdateRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.config.ConfigItemCategoryService;
import com.cool.store.vo.config.ConfigItemCategoryVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Auther zx_szh
* @Date 2026/3/10 09:46
* @Version 1.0
*/
@Api(tags = "标准店小程序-配置大类管理")
@RestController
@RequestMapping("/mini/configItemCategory")
@RequiredArgsConstructor
public class MiniConfigItemCategoryController {
private final ConfigItemCategoryService configItemCategoryService;
@ApiOperation("分页查询配置大类")
@PostMapping("/queryPage")
public ResponseResult<PageInfo<ConfigItemCategoryVO>> queryPage(@RequestBody ConfigItemCategoryQueryRequest request) {
return ResponseResult.success(configItemCategoryService.queryPage(request));
}
}

View File

@@ -0,0 +1,35 @@
package com.cool.store.controller.webc;
import com.cool.store.request.config.ConfigItemQueryRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.config.ConfigItemService;
import com.cool.store.vo.config.ConfigItemVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "标准店小程序-配置项管理")
@RestController
@RequestMapping("/mini/configItem")
@RequiredArgsConstructor
public class MiniConfigItemController {
private final ConfigItemService configItemService;
@ApiOperation("分页查询配置项")
@PostMapping("/queryPage")
public ResponseResult<PageInfo<ConfigItemVO>> queryPage(@RequestBody ConfigItemQueryRequest request) {
return ResponseResult.success(configItemService.queryPage(request));
}
@ApiOperation("查询大类下的配置项")
@GetMapping("/listByCategoryId")
public ResponseResult<List<ConfigItemVO>> listByCategoryId(@RequestParam("categoryId") Long categoryId) {
return ResponseResult.success(configItemService.listByCategoryId(categoryId));
}
}

View File

@@ -4,12 +4,14 @@ import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.request.AuditFranchiseFeeRequest;
import com.cool.store.request.FranchiseFeeRequest;
import com.cool.store.request.FranchisePayTypeUpdateRequest;
import com.cool.store.response.FranchiseFeeResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.FranchiseFeeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -44,4 +46,9 @@ public class MiniFranchiseFeeController {
return ResponseResult.success(franchiseFeeService.auditFranchiseFee(request,user));
}
@ApiOperation("修改账单支付方式")
@PostMapping("/updatePayType")
public ResponseResult<Boolean> updatePayType(@RequestBody @Validated FranchisePayTypeUpdateRequest request) {
return ResponseResult.success(franchiseFeeService.updatePayType(request));
}
}

View File

@@ -0,0 +1,40 @@
package com.cool.store.controller.webc;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.fees.PayeeBankConfigService;
import com.cool.store.vo.fees.PayeeBankConfigVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
/**
* 线下收款银行配置Controller
*/
@Api(tags = "mini线下收款银行配置")
@RestController
@RequestMapping("/mini/fees/bankConfig")
@RequiredArgsConstructor
@Validated
public class MiniPayeeBankConfigController {
private final PayeeBankConfigService payeeBankConfigService;
@ApiOperation("根据门店查询线下收款银行")
@ApiImplicitParams({
@ApiImplicitParam(name = "shopId", value = "门店id", required = true),
@ApiImplicitParam(name = "payType", value = "付款方式 1线下支付 2平安钱包支付", required = true),
})
@GetMapping("/getBankConfig")
public ResponseResult<PayeeBankConfigVO> getBankConfig(@NotNull(message = "门店id不能为空") Long shopId,
Integer payType) {
return ResponseResult.success(payeeBankConfigService.getByShopId(shopId, payType));
}
}

View File

@@ -0,0 +1,66 @@
package com.cool.store.controller.webc;
import com.cool.store.request.fees.WalletCancelPayRequest;
import com.cool.store.request.fees.WalletPayRequest;
import com.cool.store.request.fees.WalletRepayRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.fees.ShopAllocationInfoService;
import com.cool.store.service.fees.WalletPayInfoService;
import com.cool.store.vo.fees.ShopAllocationSimpleVO;
import com.cool.store.vo.fees.WalletPayInfoVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* <p>
* mini门店分账信息 前端控制器
* </p>
*
* @author wangff
* @since 2026/1/30
*/
@RestController
@Api(tags ="mini门店缴费信息")
@RequestMapping({"/mini/fees/shopAllocation"})
@RequiredArgsConstructor
@Validated
public class MiniShopAllocationController {
private final ShopAllocationInfoService shopAllocationInfoService;
private final WalletPayInfoService walletPayInfoService;
@ApiOperation("平安钱包缴纳加盟费明细")
@GetMapping("/walletPaymentDetail")
public ResponseResult<List<ShopAllocationSimpleVO>> walletPaymentDetail(@NotNull(message = "门店id不能为空") Long shopId) {
return ResponseResult.success(shopAllocationInfoService.getSimpleInfo(shopId));
}
@ApiOperation("缴费")
@PostMapping("/pay")
public ResponseResult<Boolean> pay(@RequestBody @Validated WalletPayRequest request) {
return ResponseResult.success(walletPayInfoService.pay(request, null));
}
@ApiOperation("重新缴费")
@PostMapping("/rePay")
public ResponseResult<Boolean> rePay(@RequestBody @Validated WalletRepayRequest request) {
return ResponseResult.success(walletPayInfoService.rePay(request));
}
@ApiOperation("取消支付")
@PostMapping("/cancel")
public ResponseResult<Boolean> cancel(@RequestBody @Validated WalletCancelPayRequest request) {
return ResponseResult.success(walletPayInfoService.cancelPay(request));
}
@ApiOperation("缴费信息列表")
@GetMapping("/payInfoList")
public ResponseResult<List<WalletPayInfoVO>> payInfoList(@NotNull(message = "门店id不能为空") Long shopId) {
return ResponseResult.success(walletPayInfoService.payInfoList(shopId, null));
}
}

View File

@@ -0,0 +1,116 @@
package com.cool.store.controller.webc;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.request.order.*;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.order.MiniStoreOrderService;
import com.cool.store.vo.PartnerUserInfoVO;
import com.cool.store.vo.order.MiniStoreOrderDetailVO;
import com.cool.store.vo.order.MiniStoreOrderListVO;
import com.cool.store.vo.order.MiniStoreWishlistDetailVO;
import com.cool.store.vo.order.MiniStoreWishlistListVO;
import com.github.pagehelper.PageInfo;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@Api(tags = "小程序-店型下单")
@RestController
@RequestMapping("/mini/storeOrder")
@RequiredArgsConstructor
public class MiniStoreOrderController {
private final MiniStoreOrderService miniStoreOrderService;
@ApiOperation("创建订单")
@PostMapping("/create")
public ResponseResult<Long> create(@RequestBody @Valid MiniStoreOrderCreateRequest request) {
return ResponseResult.success(miniStoreOrderService.createOrder(request,PartnerUserHolder.getUser()));
}
@ApiOperation("订单详情")
@GetMapping("/detail")
public ResponseResult<MiniStoreOrderDetailVO> detail(@RequestParam("orderId") Long orderId) {
return ResponseResult.success(miniStoreOrderService.getDetail(orderId));
}
@ApiOperation("获取当前门店草稿订单详情")
@GetMapping("/getCurrentShopDraft")
public ResponseResult<MiniStoreOrderDetailVO> getCurrentShopDraft(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(miniStoreOrderService.getCurrentShopDraft(shopId));
}
@ApiOperation("订单分页")
@PostMapping("/queryPage")
public ResponseResult<PageInfo<MiniStoreOrderListVO>> queryPage(@RequestBody MiniStoreOrderQueryRequest request) {
return ResponseResult.success(miniStoreOrderService.queryPage(request));
}
@ApiOperation("更新订单")
@PostMapping("/update")
public ResponseResult<Long> update(@RequestBody @Valid MiniStoreOrderUpdateRequest request) {
return ResponseResult.success(miniStoreOrderService.updateOrder(request,PartnerUserHolder.getUser()));
}
@ApiOperation("撤回订单到草稿")
@PostMapping("/withdraw")
public ResponseResult<Boolean> withdraw(@RequestBody MiniStoreOrderRequest request) {
return ResponseResult.success(miniStoreOrderService.withdraw(request.getOrderId()));
}
@ApiOperation("作废订单")
@PostMapping("/cancel")
public ResponseResult<Boolean> cancel(@RequestBody MiniStoreOrderRequest request) {
return ResponseResult.success(miniStoreOrderService.cancel(request.getOrderId()));
}
@ApiOperation("门店预定列表")
@PostMapping("/queryPageByLineId")
public ResponseResult<PageInfo<MiniStoreOrderListVO>> queryPageByLineId(@RequestBody @Valid MiniStoreOrderLineQueryRequest request) {
return ResponseResult.success(miniStoreOrderService.queryPageByLineId(request));
}
@ApiOperation("支付订单")
@PostMapping("/pay")
public ResponseResult<Boolean> pay(@RequestBody @Valid MiniStoreOrderPayRequest request) {
return ResponseResult.success(miniStoreOrderService.payOrder(request, PartnerUserHolder.getUser()));
}
@ApiOperation("获取当前门店最新的订单")
@GetMapping("/getLatestOrderByShopId")
public ResponseResult<MiniStoreOrderDetailVO> getLatestOrderByShopId(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(miniStoreOrderService.getLatestOrderByShopId(shopId));
}
@ApiOperation("新增/更新心愿单")
@PostMapping("/wishlist/saveOrUpdate")
public ResponseResult<Boolean> saveOrUpdateWishlist(@RequestBody @Valid MiniStoreWishlistSaveRequest request) {
return ResponseResult.success(miniStoreOrderService.saveOrUpdateWishlist(request, PartnerUserHolder.getUser()));
}
@ApiOperation("删除心愿单")
@PostMapping("/wishlist/deleted")
public ResponseResult<Boolean> deleted(@RequestBody @Valid MiniStoreWishlistDelRequest request) {
return ResponseResult.success(miniStoreOrderService.deleted(request, PartnerUserHolder.getUser()));
}
@ApiOperation("心愿单详情")
@GetMapping("/wishlist/detail")
public ResponseResult<MiniStoreWishlistDetailVO> wishlistDetail(@RequestParam("storeTypeId") Long storeTypeId,
@RequestParam("versionNo") String versionNo) {
return ResponseResult.success(miniStoreOrderService.wishlistDetail(storeTypeId,versionNo, PartnerUserHolder.getUser()));
}
@ApiOperation("心愿单列表")
@GetMapping("/wishlist/list")
public ResponseResult<List<MiniStoreWishlistListVO>> wishlistList() {
return ResponseResult.success(miniStoreOrderService.wishlistList( PartnerUserHolder.getUser()));
}
}

View File

@@ -0,0 +1,40 @@
package com.cool.store.controller.webc;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.store.StoreTypeService;
import com.cool.store.vo.store.StoreTypeOptionVO;
import com.cool.store.vo.store.StoreTypeVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Auther zx_szh
* @Date 2026/1/27 13:44
* @Version 1.0
*/
@Api(tags = "小程序-店型")
@RestController
@RequestMapping("/mini/storeType")
@RequiredArgsConstructor
public class MiniStoreTypeController {
private final StoreTypeService storeTypeService;
@ApiOperation("通过门店类型查询该类型下的店型")
@GetMapping("/listByStoreType")
public ResponseResult<List<StoreTypeVO>> listStoreTypesByStoreType(@RequestParam("storeType") Integer storeType) {
return ResponseResult.success(storeTypeService.listActiveByStoreType(storeType));
}
@ApiOperation("查询店型的详细配置选项")
@GetMapping("/config/detail")
public ResponseResult<List<StoreTypeOptionVO>> storeTypeConfigDetail(@RequestParam("storeTypeId") Long storeTypeId) {
return ResponseResult.success(storeTypeService.listStoreTypeOptions(storeTypeId));
}
}

View File

@@ -0,0 +1,55 @@
package com.cool.store.controller.webc;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.request.visit.StoreVisitReservationCancelRequest;
import com.cool.store.request.visit.StoreVisitReservationCreateRequest;
import com.cool.store.request.visit.StoreVisitReservationMyQueryRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.visit.StoreVisitReservationService;
import com.cool.store.vo.PartnerUserInfoVO;
import com.cool.store.vo.visit.StoreVisitReservationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
@Api(tags = "小程序-预约到店")
@RestController
@RequestMapping("/mini/storeVisitReservation")
@RequiredArgsConstructor
@Validated
public class MiniStoreVisitReservationController {
private final StoreVisitReservationService storeVisitReservationService;
@ApiOperation("新增预约")
@PostMapping("/create")
public ResponseResult<Long> create(@RequestBody @Validated StoreVisitReservationCreateRequest request) {
return ResponseResult.success(storeVisitReservationService.create(request));
}
@ApiOperation("预约详情")
@GetMapping("/detail")
@ApiImplicitParam(name = "id", value = "预约ID", required = true, dataType = "Long", paramType = "query")
public ResponseResult<StoreVisitReservationVO> detail(@NotNull(message = "预约ID不能为空") Long id) {
return ResponseResult.success(storeVisitReservationService.detail(id));
}
@ApiOperation("我的预约")
@PostMapping("/myList")
public ResponseResult<List<StoreVisitReservationVO>> myList(@RequestBody @Validated StoreVisitReservationMyQueryRequest request) {
PartnerUserInfoVO user = PartnerUserHolder.getUser();
return ResponseResult.success(storeVisitReservationService.myReservations(user.getMobile(),request.getStatus()));
}
@ApiOperation("取消预约")
@PostMapping("/cancel")
public ResponseResult<Boolean> cancel(@RequestBody @Validated StoreVisitReservationCancelRequest request) {
return ResponseResult.success(storeVisitReservationService.cancel(request));
}
}

View File

@@ -3,18 +3,24 @@ package com.cool.store.controller.webc;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.dao.fees.ShopAllocationInfoDAO;
import com.cool.store.dao.fees.WalletPayInfoDAO;
import com.cool.store.dto.OpenCityDTO;
import com.cool.store.dto.ocr.InvoiceDTO;
import com.cool.store.dto.store.StoreUserPositionDTO;
import com.cool.store.dto.store.StoreUserUpdateDTO;
import com.cool.store.dto.wallet.OpenBasicInfoDTO;
import com.cool.store.entity.*;
import com.cool.store.entity.fees.ShopAllocationInfoDO;
import com.cool.store.entity.fees.WalletPayInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.IDCardSideEnum;
import com.cool.store.enums.WorkflowSubStageEnum;
import com.cool.store.enums.XGJCollectionStatusEnum;
import com.cool.store.enums.point.ShopStageEnum;
import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.enums.wallet.WalletTradeModuleEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.job.XxlJobHandler;
@@ -99,6 +105,33 @@ public class TestController {
private CloseStoreAccountService closeStoreAccountService;
@Resource
private CloseStoreRefundService closeStoreRefundService;
@Resource
private WalletPayInfoDAO walletPayInfoDAO;
@Resource
private ShopAllocationInfoDAO shopAllocationInfoDAO;
@PostMapping("/walletXgjCallBack")
public ResponseResult<Boolean> walletXgjCallBack(Long payInfoId) {
WalletPayInfoDO payInfoDO = walletPayInfoDAO.getById(payInfoId);
ReceiptCallBackRequest receiptRequest = new ReceiptCallBackRequest();
receiptRequest.setReceiptId(payInfoDO.getPayNo());
receiptRequest.setClaimStatus(1);
openApiService.changeReceiptStatus(receiptRequest);
List<WalletPayInfoDO> list = walletPayInfoDAO.getByShopId(payInfoDO.getShopId(), WalletTradeModuleEnum.FRANCHISE_PAY.getModule(), null);
List<ShopAllocationInfoDO> allocationList = shopAllocationInfoDAO.getByShopId(payInfoDO.getShopId());
BigDecimal totalAmount = allocationList.stream().map(ShopAllocationInfoDO::getAmount).reduce(BigDecimal.valueOf(0), BigDecimal::add);
BigDecimal paidAmount = list.stream().filter(v -> CommonConstants.INDEX_ONE.equals(v.getClaimStatus())).map(WalletPayInfoDO::getPayAmount).reduce(BigDecimal.valueOf(0), BigDecimal::add);
FranchiseFeeCallBackRequest franchiseRequest = new FranchiseFeeCallBackRequest();
franchiseRequest.setShopId(payInfoDO.getShopId());
franchiseRequest.setPayableFee(totalAmount);
franchiseRequest.setPaidFees(paidAmount);
franchiseRequest.setRemainingFee(totalAmount.subtract(paidAmount));
franchiseRequest.setPaymentStatus(franchiseRequest.getRemainingFee().compareTo(BigDecimal.ZERO) == 0
? XGJCollectionStatusEnum.COMPLETED.getCode() : franchiseRequest.getPaidFees().compareTo(BigDecimal.ZERO) == 0
? XGJCollectionStatusEnum.WAIT_PAY.getCode() : XGJCollectionStatusEnum.PARTIAL_PAYMENT.getCode());
openApiService.changePaymentStatus(franchiseRequest);
return ResponseResult.success(true);
}
@PostMapping("/testXgjCallback")

View File

@@ -10,6 +10,7 @@ platform.datasource.password=CSCErYcXniNYm7bT
#redis
redis.host.uri=http://userInfo:Cx111111@tstore-coolcollege.redis.rds.aliyuncs.com:6379/0
spring.redis.url=${redis.host.uri}
#pagehelper
pagehelper.helper-dialect=mysql

View File

@@ -10,6 +10,7 @@ platform.datasource.password=CSCErYcXniNYm7bT
#redis
redis.host.uri=http://userInfo:Cx111111@tstore-coolcollege-open.redis.rds.aliyuncs.com:6379/0
spring.redis.url=${redis.host.uri}
#pagehelper
pagehelper.helper-dialect=mysql
@@ -164,4 +165,11 @@ huoMa.direct.stores.password = Huoma@123456.
huoMa.franchise.stores.account = 13345565081
huoMa.franchise.stores.password = Huoma@123456.
huoMa.restaurant.stores.account = 15167817007
huoMa.restaurant.stores.password = Huoma@123456.
huoMa.restaurant.stores.password = Huoma@123456.
liePin.appId=1921816018922205184
liePin.secretKey=dns6x4f1p14a36u4t22xvteppmz07ir2
liePin.aesSecretKey=_nkULTpkBHHZeWgQ
liePin.baseUrl=https://open-xhopen-qa53.qa.xunhou.cn
liePin.tenantId=12833
liePin.mobile=13345565081

View File

@@ -9,6 +9,7 @@ platform.datasource.password=CSCErYcXniNYm7bT
#redis
redis.host.uri=http://userInfo:Cx111111@store-coolcollege.redis.rds.aliyuncs.com:6379/0
spring.redis.url=${redis.host.uri}
#pagehelper
pagehelper.helper-dialect=mysql

View File

@@ -10,6 +10,7 @@ platform.datasource.password=CSCErYcXniNYm7bT
#redis
redis.host.uri=http://userInfo:Cx111111@tstore-coolcollege-open.redis.rds.aliyuncs.com:6379/0
spring.redis.url=${redis.host.uri}
#pagehelper
pagehelper.helper-dialect=mysql