Merge #111 into master from cc_20260417_bonus
fix:工资奖金 * cc_20260417_bonus: (28 commits squashed) - feat:工资奖金发放 - fix:工资奖金发放 - fix:工资奖金发放 - fix:工资奖金发放 - fix:工资奖金发放 - fix:门店实收相关接口 - fix:新品销售门店级接口 - fix:新品销售菜品列表接口;规则新增返回id - fix:新品销售菜品详情接口 - fix:新品销售菜品接口补充 - fix:小程序接口补充 - fix - fix:新增实收、新品销售测试接口 - fix:新增实收、新品销售测试接口 - fix - fix:新增门店菜品列表接口 - fix:同规则下无法新增相同菜品规则;新增小程序门店列表接口 - fix - fix:小程序用户获取来源修改 - fix:实收规则新增上月日均实收字段 - fix:规则限制 - fix:小程序上月日均实收 - fix:查询异常 - fix:查询异常 - fix:菜品员工明细字段赋值异常 - fix:排序 - fix:排序 - fix:员工实收列表新增门店筛选条件 Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com> Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com> CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/111
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
package com.cool.store.controller.webb;
|
||||
|
||||
import com.cool.store.context.CurrentUserHolder;
|
||||
import com.cool.store.request.bonus.*;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.response.storeopen.StoreRecipesResponse;
|
||||
import com.cool.store.service.bonus.BonusService;
|
||||
import com.cool.store.vo.bonus.*;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 工资奖金发放 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2026/4/21
|
||||
*/
|
||||
@Api(tags = "工资奖金发放")
|
||||
@RestController
|
||||
@RequestMapping("/pc/bonus")
|
||||
@RequiredArgsConstructor
|
||||
public class BonusController {
|
||||
private final BonusService bonusService;
|
||||
|
||||
@ApiOperation("新增规则")
|
||||
@PostMapping("/addRule")
|
||||
public ResponseResult<String> addRule(@RequestBody @Validated BonusRuleAddRequest request) {
|
||||
return ResponseResult.success(bonusService.addRule(request, CurrentUserHolder.getUserId()));
|
||||
}
|
||||
|
||||
@ApiOperation("编辑规则")
|
||||
@PostMapping("/updateRule")
|
||||
public ResponseResult<Boolean> updateRule(@RequestBody @Validated BonusRuleUpdateRequest request) {
|
||||
return ResponseResult.success(bonusService.updateRule(request, CurrentUserHolder.getUserId()));
|
||||
}
|
||||
|
||||
@ApiOperation("启用规则")
|
||||
@PostMapping("/enableRule")
|
||||
public ResponseResult<Boolean> enableRule(@RequestBody @Validated BonusRuleEnableRequest request) {
|
||||
return ResponseResult.success(bonusService.enableRule(request));
|
||||
}
|
||||
|
||||
@ApiOperation("规则详情")
|
||||
@GetMapping("/ruleDetail")
|
||||
@ApiImplicitParam(name = "ruleId", value = "规则id", required = true, dataType = "Long", paramType = "query")
|
||||
public ResponseResult<BonusRuleVO> getRuleDetail(@NotNull(message = "规则id不能为空") Long ruleId) {
|
||||
return ResponseResult.success(bonusService.getRuleDetail(ruleId));
|
||||
}
|
||||
|
||||
@ApiOperation("规则列表查询")
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<PageInfo<BonusRuleListVO>> getList(@RequestBody BonusRuleQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("实收实算")
|
||||
@PostMapping("/receivedCompute")
|
||||
public ResponseResult<BonusReceivedComputeVO> receivedCompute(@RequestBody @Validated BonusReceivedComputeRequest request) {
|
||||
return ResponseResult.success(bonusService.receivedCompute(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售实算")
|
||||
@PostMapping("/productCompute")
|
||||
public ResponseResult<BonusProductComputeVO> productCompute(@RequestBody @Validated BonusProductComputeRequest request) {
|
||||
return ResponseResult.success(bonusService.productCompute(request));
|
||||
}
|
||||
|
||||
@ApiOperation("门店实收奖金发放列表")
|
||||
@PostMapping("/receivedStoreList")
|
||||
public ResponseResult<PageInfo<BonusReceivedStoreListVO>> getReceivedStoreList(@RequestBody BonusReceivedStoreQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getReceivedStoreList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("门店实收奖金详情")
|
||||
@GetMapping("/receivedStoreDetail")
|
||||
@ApiImplicitParam(name = "id", value = "门店实收奖金id", required = true, dataType = "Long", paramType = "query")
|
||||
public ResponseResult<BonusReceivedStoreDetailVO> getReceivedStoreDetail(@NotNull(message = "id不能为空") Long id) {
|
||||
return ResponseResult.success(bonusService.getReceivedStoreDetail(id));
|
||||
}
|
||||
|
||||
@ApiOperation("员工实收奖金发放列表")
|
||||
@PostMapping("/receivedEmployeeList")
|
||||
public ResponseResult<PageInfo<BonusReceivedEmployeeListVO>> getReceivedEmployeeList(@RequestBody BonusReceivedEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getReceivedEmployeeList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("员工实收奖金详情")
|
||||
@GetMapping("/receivedEmployeeDetail")
|
||||
@ApiImplicitParam(name = "id", value = "员工实收奖金id", required = true, dataType = "Long", paramType = "query")
|
||||
public ResponseResult<BonusReceivedStoreDetailVO> getReceivedEmployeeDetail(@NotNull(message = "id不能为空") Long id) {
|
||||
return ResponseResult.success(bonusService.getReceivedEmployeeDetail(id));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金发放-门店列表")
|
||||
@PostMapping("/newProductStoreList")
|
||||
public ResponseResult<PageInfo<BonusProductStoreListVO>> getNewProductStoreList(@RequestBody BonusProductQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductStoreList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-门店详情")
|
||||
@PostMapping("/newProductStoreDetail")
|
||||
@ApiImplicitParam(name = "id", value = "门店新品销售奖金id", required = true, dataType = "Long", paramType = "query")
|
||||
public ResponseResult<BonusProductStoreDetailVO> getNewProductStoreDetail(@RequestBody @Validated BonusProductMonthlyQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductStoreDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-菜品列表")
|
||||
@PostMapping("/newProductRecipeList")
|
||||
public ResponseResult<PageInfo<BonusProductRecipeListVO>> getNewProductRecipeList(@RequestBody BonusProductQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductRecipeList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-菜品详情")
|
||||
@PostMapping("/newProductRecipeDetail")
|
||||
public ResponseResult<PageInfo<BonusProductRecipeDetailVO>> getNewProductRecipeDetail(@RequestBody @Validated BonusProductRecipeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductRecipeDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-员工列表")
|
||||
@PostMapping("/newProductEmployeeList")
|
||||
public ResponseResult<PageInfo<BonusProductEmployeeListVO>> getNewProductEmployeeList(@RequestBody BonusProductEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductEmployeeList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-员工详情")
|
||||
@PostMapping("/newProductEmployeeDetail")
|
||||
public ResponseResult<BonusProductStoreDetailVO> getNewProductEmployeeDetail(@RequestBody @Validated BonusProductMonthlyQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductEmployeeDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-菜品+员工列表")
|
||||
@PostMapping("/newProductRecipeEmployeeList")
|
||||
public ResponseResult<PageInfo<BonusProductRecipeEmployeeListVO>> getNewProductRecipeEmployeeList(@RequestBody BonusProductEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductRecipeEmployeeList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-菜品+员工详情")
|
||||
@PostMapping("/newProductRecipeEmployeeDetail")
|
||||
public ResponseResult<PageInfo<BonusProductRecipeEmployeeDetailVO>> getNewProductRecipeEmployeeDetail(@RequestBody @Validated BonusProductRecipeEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductRecipeEmployeeDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("员工奖金明细")
|
||||
@PostMapping("/employeeBonusDetail")
|
||||
public ResponseResult<PageInfo<BonusEmployeeDetailVO>> getEmployeeBonusDetail(@RequestBody BonusProductEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getEmployeeMonthlyDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("门店菜品列表")
|
||||
@GetMapping("/recipeList")
|
||||
public ResponseResult<List<StoreRecipesResponse>> getRecipeList(@RequestParam @NotNull(message = "门店id不能为空") String storeId) {
|
||||
return ResponseResult.success(bonusService.getRecipes(storeId));
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.cool.store.controller.webb;
|
||||
|
||||
import com.cool.store.common.PageBasicInfo;
|
||||
import com.cool.store.context.CurrentUserHolder;
|
||||
import com.cool.store.dto.store.StoreUserDTO;
|
||||
import com.cool.store.request.store.StoreListRequest;
|
||||
import com.cool.store.request.UserStoreRequest;
|
||||
import com.cool.store.response.MiniShopsResponse;
|
||||
@@ -15,6 +16,8 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* PC门店 前端控制器
|
||||
@@ -42,4 +45,9 @@ public class PCStoreController {
|
||||
return ResponseResult.success(storeService.getAuthStoreList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("门店人员列表")
|
||||
@GetMapping("/storeUserPositionList")
|
||||
public ResponseResult<List<StoreUserDTO>> getStoreUserPositionList(String storeId, String userName) {
|
||||
return ResponseResult.success(storeService.getStoreUserPositionList(storeId, userName));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.cool.store.controller.webb;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.annotation.Debounce;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dao.bonus.BonusDistributionRuleDAO;
|
||||
import com.cool.store.dao.fees.WalletPayInfoDAO;
|
||||
import com.cool.store.dto.*;
|
||||
import com.cool.store.dto.contract.ContractCallbackDTO;
|
||||
@@ -13,11 +15,9 @@ import com.cool.store.dto.xgj.XgjPartnerPageDTO;
|
||||
import com.cool.store.dto.wallet.*;
|
||||
import com.cool.store.dto.xgj.XgjPayResultDTO;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.entity.bonus.BonusDistributionRuleDO;
|
||||
import com.cool.store.entity.fees.WalletPayInfoDO;
|
||||
import com.cool.store.enums.DownSystemTypeEnum;
|
||||
import com.cool.store.enums.FranchiseBrandEnum;
|
||||
import com.cool.store.enums.MessageEnum;
|
||||
import com.cool.store.enums.SMSMsgEnum;
|
||||
import com.cool.store.enums.*;
|
||||
import com.cool.store.enums.point.ShopSubStageStatusEnum;
|
||||
import com.cool.store.enums.wechat.WechatTemplateEnum;
|
||||
import com.cool.store.handler.WeChatHandler;
|
||||
@@ -31,6 +31,9 @@ import com.cool.store.request.bigdata.ProfitDataRequest;
|
||||
import com.cool.store.request.close.store.CloseStoreApplyRequest;
|
||||
import com.cool.store.request.huoma.ShopBasicInfoRequest;
|
||||
import com.cool.store.request.oppty.*;
|
||||
import com.cool.store.request.storeopen.StoreMonthRevenueRequest;
|
||||
import com.cool.store.request.storeopen.StoreRecipeDailySalesRequest;
|
||||
import com.cool.store.request.storeopen.StoreRecipesRequest;
|
||||
import com.cool.store.request.wallet.*;
|
||||
import com.cool.store.request.xgj.PushFranchiseFeeRequest;
|
||||
import com.cool.store.request.xgj.*;
|
||||
@@ -43,7 +46,11 @@ import com.cool.store.response.huoma.ShopBaseInfoResponse;
|
||||
import com.cool.store.response.oppty.CityResponse;
|
||||
import com.cool.store.response.oppty.OpportunityDetailResponse;
|
||||
import com.cool.store.response.oppty.OpportunityInfoPageResponse;
|
||||
import com.cool.store.response.storeopen.StoreMonthRevenueResponse;
|
||||
import com.cool.store.response.storeopen.StoreRecipeDailySalesResponse;
|
||||
import com.cool.store.response.storeopen.StoreRecipesResponse;
|
||||
import com.cool.store.service.*;
|
||||
import com.cool.store.service.bonus.BonusService;
|
||||
import com.cool.store.service.close.CloseStoreService;
|
||||
import com.cool.store.service.fees.WalletPayInfoService;
|
||||
import com.cool.store.service.impl.CommonService;
|
||||
@@ -138,6 +145,65 @@ public class PCTestController {
|
||||
@Resource
|
||||
WalletPayInfoService walletPayInfoService;
|
||||
|
||||
@Resource
|
||||
ThirdStoreOpenDataService thirdStoreOpenDataService;
|
||||
@Resource
|
||||
BonusService bonusService;
|
||||
@Resource
|
||||
BonusDistributionRuleDAO bonusRuleDAO;
|
||||
|
||||
@PostMapping("/processReceivedRule")
|
||||
@Debounce(timeMs = 10000, diffUser = false)
|
||||
public ResponseResult<Boolean> processReceivedRule(Long ruleId, String payMonth) {
|
||||
BonusDistributionRuleDO ruleDO = bonusRuleDAO.getById(ruleId);
|
||||
if (Objects.isNull(ruleDO)) {
|
||||
return ResponseResult.fail(ErrorCodeEnum.BONUS_RULE_NOT_EXIST);
|
||||
}
|
||||
// 删除所有实收数据
|
||||
bonusService.deleteMonthlyReceived(ruleDO, payMonth);
|
||||
bonusService.processReceivedRule(ruleDO, payMonth);
|
||||
return ResponseResult.success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/processNewProductRule")
|
||||
@Debounce(timeMs = 10000, diffUser = false)
|
||||
public ResponseResult<Boolean> processNewProductRule(Long ruleId, String payDate) {
|
||||
BonusDistributionRuleDO ruleDO = bonusRuleDAO.getById(ruleId);
|
||||
if (Objects.isNull(ruleDO)) {
|
||||
return ResponseResult.fail(ErrorCodeEnum.BONUS_RULE_NOT_EXIST);
|
||||
}
|
||||
bonusService.deleteMonthlyNewProduct(ruleDO, payDate);
|
||||
bonusService.processNewProductRule(ruleDO, payDate);
|
||||
return ResponseResult.success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/dailyNewProductBonus")
|
||||
public ResponseResult<Boolean> dailyNewProductBonus() {
|
||||
xxlJobHandler.dailyNewProductBonus();
|
||||
return ResponseResult.success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/monthlyReceivedBonus")
|
||||
public ResponseResult<Boolean> monthlyReceivedBonus() {
|
||||
xxlJobHandler.monthlyReceivedBonus();
|
||||
return ResponseResult.success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/getMonthRevenue")
|
||||
public ResponseResult<List<StoreMonthRevenueResponse>> getMonthRevenue(@RequestBody StoreMonthRevenueRequest request) {
|
||||
return ResponseResult.success(thirdStoreOpenDataService.getMonthRevenue(request));
|
||||
}
|
||||
|
||||
@PostMapping("/getRecipeDailySales")
|
||||
public ResponseResult<List<StoreRecipeDailySalesResponse>> getRecipeDailySales(@RequestBody StoreRecipeDailySalesRequest request) {
|
||||
return ResponseResult.success(thirdStoreOpenDataService.getRecipeDailySales(request));
|
||||
}
|
||||
|
||||
@PostMapping("/getRecipes")
|
||||
public ResponseResult<List<StoreRecipesResponse>> getRecipes(@RequestBody StoreRecipesRequest request) {
|
||||
return ResponseResult.success(thirdStoreOpenDataService.getRecipes(request));
|
||||
}
|
||||
|
||||
@PostMapping("/walletReceiptRePush")
|
||||
public ResponseResult<Boolean> walletReceiptRePush(Long id) {
|
||||
walletPayInfoService.rePushReceipt(id);
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
package com.cool.store.controller.webc;
|
||||
|
||||
import com.cool.store.context.PartnerUserHolder;
|
||||
import com.cool.store.request.bonus.*;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.response.storeopen.StoreRecipesResponse;
|
||||
import com.cool.store.service.bonus.BonusService;
|
||||
import com.cool.store.vo.bonus.*;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
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.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mini工资奖金发放
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2026/4/23
|
||||
*/
|
||||
@Api(tags = "Mini工资奖金发放")
|
||||
@RestController
|
||||
@RequestMapping("/mini/bonus")
|
||||
@RequiredArgsConstructor
|
||||
@Valid
|
||||
public class MiniBonusController {
|
||||
private final BonusService bonusService;
|
||||
|
||||
@ApiOperation("新增规则")
|
||||
@PostMapping("/addRule")
|
||||
public ResponseResult<String> addRule(@RequestBody @Validated BonusRuleAddRequest request) {
|
||||
return ResponseResult.success(bonusService.addRule(request, PartnerUserHolder.getUser().getPartnerId()));
|
||||
}
|
||||
|
||||
@ApiOperation("编辑规则")
|
||||
@PostMapping("/updateRule")
|
||||
public ResponseResult<Boolean> updateRule(@RequestBody @Validated BonusRuleUpdateRequest request) {
|
||||
return ResponseResult.success(bonusService.updateRule(request, PartnerUserHolder.getUser().getPartnerId()));
|
||||
}
|
||||
|
||||
@ApiOperation("启用规则")
|
||||
@PostMapping("/enableRule")
|
||||
public ResponseResult<Boolean> enableRule(@RequestBody @Validated BonusRuleEnableRequest request) {
|
||||
return ResponseResult.success(bonusService.enableRule(request));
|
||||
}
|
||||
|
||||
@ApiOperation("规则详情")
|
||||
@GetMapping("/ruleDetail")
|
||||
@ApiImplicitParam(name = "ruleId", value = "规则id", required = true, dataType = "Long", paramType = "query")
|
||||
public ResponseResult<BonusRuleVO> getRuleDetail(@NotNull(message = "规则id不能为空") Long ruleId) {
|
||||
return ResponseResult.success(bonusService.getRuleDetail(ruleId));
|
||||
}
|
||||
|
||||
@ApiOperation("规则列表查询")
|
||||
@PostMapping("/list")
|
||||
public ResponseResult<PageInfo<BonusRuleListVO>> getList(@RequestBody BonusRuleQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("实收实算")
|
||||
@PostMapping("/receivedCompute")
|
||||
public ResponseResult<BonusReceivedComputeVO> receivedCompute(@RequestBody @Validated BonusReceivedComputeRequest request) {
|
||||
return ResponseResult.success(bonusService.receivedCompute(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售实算")
|
||||
@PostMapping("/productCompute")
|
||||
public ResponseResult<BonusProductComputeVO> productCompute(@RequestBody @Validated BonusProductComputeRequest request) {
|
||||
return ResponseResult.success(bonusService.productCompute(request));
|
||||
}
|
||||
|
||||
@ApiOperation("门店实收奖金发放列表")
|
||||
@PostMapping("/receivedStoreList")
|
||||
public ResponseResult<PageInfo<BonusReceivedStoreListVO>> getReceivedStoreList(@RequestBody BonusReceivedStoreQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getReceivedStoreList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("门店实收奖金详情")
|
||||
@GetMapping("/receivedStoreDetail")
|
||||
@ApiImplicitParam(name = "id", value = "门店实收奖金id", required = true, dataType = "Long", paramType = "query")
|
||||
public ResponseResult<BonusReceivedStoreDetailVO> getReceivedStoreDetail(@NotNull(message = "id不能为空") Long id) {
|
||||
return ResponseResult.success(bonusService.getReceivedStoreDetail(id));
|
||||
}
|
||||
|
||||
@ApiOperation("员工实收奖金发放列表")
|
||||
@PostMapping("/receivedEmployeeList")
|
||||
public ResponseResult<PageInfo<BonusReceivedEmployeeListVO>> getReceivedEmployeeList(@RequestBody BonusReceivedEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getReceivedEmployeeList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("员工实收奖金详情")
|
||||
@GetMapping("/receivedEmployeeDetail")
|
||||
@ApiImplicitParam(name = "id", value = "员工实收奖金id", required = true, dataType = "Long", paramType = "query")
|
||||
public ResponseResult<BonusReceivedStoreDetailVO> getReceivedEmployeeDetail(@NotNull(message = "id不能为空") Long id) {
|
||||
return ResponseResult.success(bonusService.getReceivedEmployeeDetail(id));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金发放-门店列表")
|
||||
@PostMapping("/newProductStoreList")
|
||||
public ResponseResult<PageInfo<BonusProductStoreListVO>> getNewProductStoreList(@RequestBody BonusProductQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductStoreList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-门店详情")
|
||||
@PostMapping("/newProductStoreDetail")
|
||||
@ApiImplicitParam(name = "id", value = "门店新品销售奖金id", required = true, dataType = "Long", paramType = "query")
|
||||
public ResponseResult<BonusProductStoreDetailVO> getNewProductStoreDetail(@RequestBody @Validated BonusProductMonthlyQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductStoreDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-菜品列表")
|
||||
@PostMapping("/newProductRecipeList")
|
||||
public ResponseResult<PageInfo<BonusProductRecipeListVO>> getNewProductRecipeList(@RequestBody BonusProductQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductRecipeList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-菜品详情")
|
||||
@PostMapping("/newProductRecipeDetail")
|
||||
public ResponseResult<PageInfo<BonusProductRecipeDetailVO>> getNewProductRecipeDetail(@RequestBody @Validated BonusProductRecipeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductRecipeDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-员工列表")
|
||||
@PostMapping("/newProductEmployeeList")
|
||||
public ResponseResult<PageInfo<BonusProductEmployeeListVO>> getNewProductEmployeeList(@RequestBody BonusProductEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductEmployeeList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-员工详情")
|
||||
@PostMapping("/newProductEmployeeDetail")
|
||||
public ResponseResult<BonusProductStoreDetailVO> getNewProductEmployeeDetail(@RequestBody @Validated BonusProductMonthlyQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductEmployeeDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-菜品+员工列表")
|
||||
@PostMapping("/newProductRecipeEmployeeList")
|
||||
public ResponseResult<PageInfo<BonusProductRecipeEmployeeListVO>> getNewProductRecipeEmployeeList(@RequestBody BonusProductEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductRecipeEmployeeList(request));
|
||||
}
|
||||
|
||||
@ApiOperation("新品销售奖金-菜品+员工详情")
|
||||
@PostMapping("/newProductRecipeEmployeeDetail")
|
||||
public ResponseResult<PageInfo<BonusProductRecipeEmployeeDetailVO>> getNewProductRecipeEmployeeDetail(@RequestBody @Validated BonusProductRecipeEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getNewProductRecipeEmployeeDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("员工奖金明细")
|
||||
@PostMapping("/employeeBonusDetail")
|
||||
public ResponseResult<PageInfo<BonusEmployeeDetailVO>> getEmployeeBonusDetail(@RequestBody BonusProductEmployeeQueryRequest request) {
|
||||
return ResponseResult.success(bonusService.getEmployeeMonthlyDetail(request));
|
||||
}
|
||||
|
||||
@ApiOperation("门店菜品列表")
|
||||
@GetMapping("/recipeList")
|
||||
public ResponseResult<List<StoreRecipesResponse>> getRecipeList(@RequestParam @NotNull(message = "门店id不能为空") String storeId) {
|
||||
return ResponseResult.success(bonusService.getRecipes(storeId));
|
||||
}
|
||||
|
||||
@ApiOperation("门店上月日均实收")
|
||||
@GetMapping("/receivedDailyLast")
|
||||
public ResponseResult<BigDecimal> getReceivedDailyLast(@RequestParam @NotBlank(message = "门店id不能为空") String storeId) {
|
||||
return ResponseResult.success(bonusService.receivedDailyLast(storeId));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.cool.store.controller.webc;
|
||||
|
||||
import com.cool.store.dto.store.StoreUserDTO;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.StoreService;
|
||||
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.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mini门店 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2026/4/24
|
||||
*/
|
||||
@Api(tags = "mini门店")
|
||||
@RestController
|
||||
@RequestMapping("/mini/stores")
|
||||
@RequiredArgsConstructor
|
||||
public class MiniStoreController {
|
||||
private final StoreService storeService;
|
||||
|
||||
@ApiOperation("门店人员列表")
|
||||
@GetMapping("/storeUserPositionList")
|
||||
public ResponseResult<List<StoreUserDTO>> getStoreUserPositionList(String storeId, String userName) {
|
||||
return ResponseResult.success(storeService.getStoreUserPositionList(storeId, userName));
|
||||
}
|
||||
}
|
||||
@@ -4,11 +4,13 @@ import cn.hutool.core.collection.CollStreamUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dao.bonus.BonusDistributionRuleDAO;
|
||||
import com.cool.store.dao.tp.TpApplyFormDAO;
|
||||
import com.cool.store.dao.wallet.WalletTradeDAO;
|
||||
import com.cool.store.dto.*;
|
||||
import com.cool.store.dto.store.StoreOrderTimeDTO;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.entity.bonus.BonusDistributionRuleDO;
|
||||
import com.cool.store.entity.tp.TpApplyFormDO;
|
||||
import com.cool.store.entity.wallet.WalletTradeDO;
|
||||
import com.cool.store.enums.*;
|
||||
@@ -27,6 +29,7 @@ import com.cool.store.request.tp.TpApplyQueryRequest;
|
||||
import com.cool.store.request.close.store.CloseStoreApplyRequest;
|
||||
import com.cool.store.response.bigdata.LatestOrderDateResponse;
|
||||
import com.cool.store.service.*;
|
||||
import com.cool.store.service.bonus.BonusService;
|
||||
import com.cool.store.service.close.CloseStoreRefundService;
|
||||
import com.cool.store.service.close.CloseStoreService;
|
||||
import com.cool.store.service.fees.WalletPayInfoService;
|
||||
@@ -50,6 +53,7 @@ import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -139,6 +143,14 @@ public class XxlJobHandler {
|
||||
SplitOrderService splitOrderService;
|
||||
@Resource
|
||||
WithdrawApplicationService withdrawApplicationService;
|
||||
@Resource
|
||||
BonusDistributionRuleDAO ruleDAO;
|
||||
@Resource
|
||||
BonusService bonusService;
|
||||
|
||||
private static final DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM");
|
||||
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -756,4 +768,90 @@ public class XxlJobHandler {
|
||||
}
|
||||
log.info("------end withdrawUpdate------");
|
||||
}
|
||||
|
||||
/**
|
||||
* 每月统计上一个月门店的实收数据并入库
|
||||
* 建议每月1日凌晨执行
|
||||
*/
|
||||
@XxlJob("monthlyReceivedBonus")
|
||||
public void monthlyReceivedBonus() {
|
||||
MDCUtils.put(CommonConstants.REQUEST_ID, UUID.randomUUID().toString());
|
||||
log.info("------start monthlyReceivedBonus------");
|
||||
|
||||
// 计算上一个月
|
||||
LocalDate lastMonth = LocalDate.now().minusMonths(1);
|
||||
String payMonth = lastMonth.format(MONTH_FORMATTER);
|
||||
log.info("统计月份: {}", payMonth);
|
||||
|
||||
try {
|
||||
// 获取类型为1(实收)的启用规则列表
|
||||
int pageNum = 1, pageSize = CommonConstants.BATCH_SIZE;
|
||||
boolean hasNext = true;
|
||||
while (hasNext) {
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
List<BonusDistributionRuleDO> rules = ruleDAO.getEnabledRulesByTypeAndMonth(1, payMonth);
|
||||
if (CollectionUtils.isEmpty(rules)) {
|
||||
break;
|
||||
}
|
||||
hasNext = rules.size() >= pageSize;
|
||||
// 按门店分组处理
|
||||
for (BonusDistributionRuleDO rule : rules) {
|
||||
try {
|
||||
log.info("处理门店:{}, ruleId;{}", rule.getStoreId(), rule.getId());
|
||||
bonusService.processReceivedRule(rule, payMonth);
|
||||
} catch (Exception e) {
|
||||
log.error("处理实收规则失败, ruleId: {}, storeId: {}", rule.getId(), rule.getStoreId(), e);
|
||||
}
|
||||
}
|
||||
pageNum++;
|
||||
}
|
||||
log.info("------end monthlyReceivedBonus------");
|
||||
} catch (Exception e) {
|
||||
log.error("monthlyReceivedBonus执行失败", e);
|
||||
XxlJobHelper.handleFail("执行失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 每天统计前一天的新品销售数据并入库
|
||||
* 建议每天凌晨执行
|
||||
*/
|
||||
@XxlJob("dailyNewProductBonusJob")
|
||||
public void dailyNewProductBonus() {
|
||||
MDCUtils.put(CommonConstants.REQUEST_ID, UUID.randomUUID().toString());
|
||||
log.info("------start dailyNewProductBonus------");
|
||||
|
||||
// 计算前一天
|
||||
LocalDate yesterday = LocalDate.now().minusDays(1);
|
||||
String payDate = yesterday.format(DATE_FORMATTER);
|
||||
String payMonth = yesterday.format(MONTH_FORMATTER);
|
||||
log.info("统计日期: {}", payDate);
|
||||
|
||||
try {
|
||||
// 获取类型为2(新品销售)的启用规则列表
|
||||
int pageNum = 1, pageSize = CommonConstants.BATCH_SIZE;
|
||||
boolean hasNext = true;
|
||||
while (hasNext) {
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
List<BonusDistributionRuleDO> rules = ruleDAO.getEnabledRulesByTypeAndMonth(2, payMonth);
|
||||
if (CollectionUtils.isEmpty(rules)) {
|
||||
break;
|
||||
}
|
||||
hasNext = rules.size() >= pageSize;
|
||||
// 按门店分组处理
|
||||
for (BonusDistributionRuleDO rule : rules) {
|
||||
try {
|
||||
log.info("处理门店:{}, ruleId;{}", rule.getStoreId(), rule.getId());
|
||||
bonusService.processNewProductRule(rule, payDate);
|
||||
} catch (Exception e) {
|
||||
log.error("处理新品销售规则失败, ruleId: {}, storeId: {}", rule.getId(), rule.getStoreId(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("------end dailyNewProductBonus------");
|
||||
} catch (Exception e) {
|
||||
log.error("dailyNewProductBonus执行失败", e);
|
||||
XxlJobHelper.handleFail("执行失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,4 +178,9 @@ wallet.api.yzt.key=360155690205317
|
||||
cool.api.rsa.private.key=MIIEpQIBAAKCAQEA0erPAWesjkp9J4htmfCyqKS9npmT9dW3KqWTfb4c7x/QBUtKuokWOO0XikHd4bGUa9kl+twSv/5A3kYz1B9eg6wRuDJoads+G5U7rVQjzdoUtLaf3lNXkuSehl4uHUPQfNa6vcmvzraXPxJjEpYzj9WZh7uJqq2oSgw42H1qdbFCXSaE5BwsOb+2vZXjzh4RO10Sy3Qb1UqGsoZoxVzrtDeEctCjrecFyQr96L2UtYa4NTxSTfu4rgObrwIOMvqqnLsXEzK/rd6kIHYjkZYQCOa48AedWp2YKQ7Ldclj+VMLnXvl42J9exVkbs++8k3P5sI9fdZX4Ey2RBjnSoAo/QIDAQABAoIBACbBGi8I+CE77M+13wAu4RkD8xL7CQc3ic2ojGqIRPi7r5CuphD6mpzvXqtyfhd7DKr9h8bAxwBlnQ28ObjVgsI96/aM7dxvMs/uVPpqwIJyWuTDG5A05EPVC9REQnC6Mp09mnPL7rZz3Mfy6dIGY2YQWfwmWiPl1B45k+wZ+WPZPI0JVnvRzM881kf4aAhEAt08i9VoihylwVAjWIPmLuhf6ZcqI5q8iUsjfO22wZJsudVTCA/dsJdNxv+1RDKeYnSLJL79cZQcodqEhFqTy6vnn2dMsaHH7dpphU27barxUjeL482SR7kFfMqEXn5sltRn/3ep+3sf4Ph2vMtoZeECgYEA6gXzEtT9ZOeAMp4BRGmfNZ0TQLprPPVSwudz/uUBE4j/vyhfXkh9p7hqwyoxN+Z8b65yINvx8yP6hge6ek/MyAwBCZyfIRxZAPZu1eEGoYKl391ubFt2EIVqrN2DtAvzHMr5B/E2VHBq6AJm/rERFX5oKsg6zHS9tPLhgGnWVd0CgYEA5aFWOrtiqZJlp1MHQ4OeWBJatBSynkORdxCW7ic0CKbkYus0NSz1SsvskpbnfEXNB53x98qJxRhSopg/DC4m7XqxjSf9lY3HH4Y/9907olj33yGAnLWC88GivVndt577u/XhYRCk33vOQ3GoibEdjnpMOkWmOfwYG/FsRWWQvaECgYEA1N2siEisZIgel+wZAv2AD+hchtgKi1wqd5bIb+Yl4HsRBfPXK4+MnG6mzfcm5c4FCiEHNtRZc+waCKgm+vJzNtOUbgXEyP1cCAAgOPOCcI7CCqsDshRPhB+XNL4Y+kCUVnBZrNu/q3bGB1uIC8tL2t0sKx4OPcNCe8EhVQjwKRECgYEA4uothdhKRPtwDIsVsHfN74Yjr7SMVay7gIcaPrjqyGnzYnS+oJWOx50AaFNK6Rko5JAF3jF9NxE0B4yfMPAic6Y88hpEkpcJ4HMPn2Y1WdbFCu/WYgVUJICCys6VNLCcXj85umtyIY38Y9VbEMW/SV49GZBeFQqy4FoP/fvBrkECgYEAnfjTDYwgdmJdsUqyNzAocwcJXG2rVtYc7Txrl0TltcwuJmgoSywdzyOP2R9+NZsfoxWDzG0/yr15ApMvUcnnTwHN/8bGQ9SLatFLKqS4EtdwDKKS1JvNbs7V1myQGpt7jbShZOI0e6Fs4xP8ujxsLeGgiq9mZrS9UdRj5XKDoVM=
|
||||
cool.api.rsa.public.key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0erPAWesjkp9J4htmfCyqKS9npmT9dW3KqWTfb4c7x/QBUtKuokWOO0XikHd4bGUa9kl+twSv/5A3kYz1B9eg6wRuDJoads+G5U7rVQjzdoUtLaf3lNXkuSehl4uHUPQfNa6vcmvzraXPxJjEpYzj9WZh7uJqq2oSgw42H1qdbFCXSaE5BwsOb+2vZXjzh4RO10Sy3Qb1UqGsoZoxVzrtDeEctCjrecFyQr96L2UtYa4NTxSTfu4rgObrwIOMvqqnLsXEzK/rd6kIHYjkZYQCOa48AedWp2YKQ7Ldclj+VMLnXvl42J9exVkbs++8k3P5sI9fdZX4Ey2RBjnSoAo/QIDAQAB
|
||||
wallet.api.rsa.public.key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvU5WUX5MaZhS4MRfZ5OeqmSxTgjNi64SEwTiDYS++DRHRFTEguk1g5AbiW3l9eEdATeVk0WX+T6ZIIa2do3bQOKhlMtRwWMWQIucjGa7ySOCuicvnCD2HAQ2EThfqQdSpAW5UpcyodrhcyUkuevBA4fQQ06k9lB4FjqWtao2+aYFIPFPu8Wu28KI/9QIMLI02Q1YY3duJ67QW4EM4I2oS0t3sWJeZtIJPRHFWW1EaLJz2FdbJJq+z6D2p++9pmkHsvdnktUUO+nPL3PCLtxGYxEwr/AqTYR/1yXfkVWe3nHXc+qvRt967X1hDHC+gEPJItr7kUk3pQTGBv9kNu75DwIDAQAB
|
||||
wallet.org.id=140732221567301
|
||||
wallet.org.id=140732221567301
|
||||
|
||||
store.open.url=https://zhengxin.zhidiansoft.com:5943
|
||||
store.open.appId=289704779317445
|
||||
store.open.appKey=IGSAEQoakR2HEaYx
|
||||
store.open.secret=aPsA99K1obFeFm3m
|
||||
@@ -176,4 +176,9 @@ liePin.secretKey=dns6x4f1p14a36u4t22xvteppmz07ir2
|
||||
liePin.aesSecretKey=_nkULTpkBHHZeWgQ
|
||||
liePin.baseUrl=https://open-xhopen-qa53.qa.xunhou.cn
|
||||
liePin.tenantId=12833
|
||||
liePin.mobile=13345565081
|
||||
liePin.mobile=13345565081
|
||||
|
||||
store.open.url=https://zhengxin.zhidiansoft.com:5943
|
||||
store.open.appId=289704779317445
|
||||
store.open.appKey=IGSAEQoakR2HEaYx
|
||||
store.open.secret=aPsA99K1obFeFm3m
|
||||
@@ -173,4 +173,9 @@ wallet.api.yzt.key=375393764171845
|
||||
cool.api.rsa.private.key=MIIEoQIBAAKCAQEAleyT39qxm9Vi4d3f/pF4yI3EATtLlP870dFfk5Rwj1MEM4OVTUeoBrld5GwTARQYzuyZETTZPh9taFCVtLFVsQv4waTqDf/7vnfBbvrTZ2mvZv6H/M6BTQnTx5UmOIP1RsA933ce7v/hmG/DlMaHU3JVC840Ae1q7uJZ2yA6+r6aAGdTGMSH4oQ+U9omJOJbgbuti9DsBuGDDKZ1uMhrWW/l4El5y2Qdu/71wIQuI08kPegmuGl4+FLRJ2OnoGsp+BRXKpFbN0fq0YwPQhjzSHsKg64qimmzRRr5Ewd+4w1/27dJ6mopQd4zvf7+VQ4wEZgATTe/hjBw1njOOBD/WQIDAQABAoIBACSFU0ZSEzbXRbWoo0JzdF1Cb28vXwuGGy/S1XnxTHQVcG4ODSYcoPk2WYFltEFsgFiTuPvAiHUCGdgx3S39jtbIiEm/nwZXB5+Ps46RykKkM4ae1UiHk2bNUIoLMprMxkh8VvYjIeVtbqp/+0A4FkoFDWOJURDxIT3c5K+ky8k9mKz59SiOkNoiayPQTEjzZPgKSsT64286PGmE9v4BlpyxQ1bLXeZaQGAkQ7YVtU5XJgbMM86hgmFlTcHVMGeMoQvJTfcsLlRg8ucX/zzBTHR7fZP6i5OJl5CYLbzHbTyHN9KRYDYv066SvbGLNa+4NO2cY+L6NehiwAkkFxSGKkMCgYEAoVgEjOqLyL1CpeaW7ckWQSbcae0a6J61b6meCkRaKrwcWi7ut9OfmvkCae2qsMsHQlitFM8blrnhtJxMt3EhWKYHI1seZto6YR0mzEEz5IVM3OStIZN7RY4Fg6AyB0C5Gure3GgGHaSs5J8AbCpJyLjTWuOdcnThgHHe4Mw2dGsCgYEA7eF0TpAbdYn8xjqNEgeRSSXYpwtRQ1zrpH0b1KQBxx/fvoZPzWG0SYIi6eYV5bxV5EDnCKlXXFD3ztMfThPFUGt8hHAG6CKpsiVNvYDVhAzXN18JQJtRQRO/4S0f42C8os87ToL1nlM83c8hegrsGO+JnoTzKf8KkpYqTNrvrEsCf1HuYGEuuc02TqHwdrRJaQOsuEESJpf6ACiz+Y09KIyK+drR+mdfD62ixZcFGaitcQJABaSLh3cC7ZrJxCtjR4u8w+MwYj/Ykcy/APS4J6HkDyQc+84RFog7lpFAyCbmtxj0LDfAm1pyRVnTZGOJFe7X7Hw7GbkFoX2YVZXSHdUCgYEA6rCuYPxIOxSicKg/mfQhYLuYHmZKDF3WlnhgRtBweJZ31q8IeKbWild8PqukGv5O910ZEzCPYiL3+fPNROi4mPkS5k7oYYohRgMLydUb0qYghx6aMEWMStpDStOMTHaaZT5zUqhdz5Br0qKScqfn+0oIyn58sYhQVAMXRLAUGjUCgYAYiuiTme9S9gSt1pZrDbPxXlbVm6PjlkP/OKrmBj5gq8iYeKzmYKp66UKFo6ZeeRcKiXLWdQS0i0rKBPux8kmfIwbrfbuYAVGE0GmUdEMNsBQvEjxpwo3afyB5F70tdnm4EBo0qeqJxuBK8DLpBFka2yfzEo/3Z6i0X/XqIwq/7A==
|
||||
cool.api.rsa.public.key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAleyT39qxm9Vi4d3f/pF4yI3EATtLlP870dFfk5Rwj1MEM4OVTUeoBrld5GwTARQYzuyZETTZPh9taFCVtLFVsQv4waTqDf/7vnfBbvrTZ2mvZv6H/M6BTQnTx5UmOIP1RsA933ce7v/hmG/DlMaHU3JVC840Ae1q7uJZ2yA6+r6aAGdTGMSH4oQ+U9omJOJbgbuti9DsBuGDDKZ1uMhrWW/l4El5y2Qdu/71wIQuI08kPegmuGl4+FLRJ2OnoGsp+BRXKpFbN0fq0YwPQhjzSHsKg64qimmzRRr5Ewd+4w1/27dJ6mopQd4zvf7+VQ4wEZgATTe/hjBw1njOOBD/WQIDAQAB
|
||||
wallet.api.rsa.public.key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvU5WUX5MaZhS4MRfZ5OeqmSxTgjNi64SEwTiDYS++DRHRFTEguk1g5AbiW3l9eEdATeVk0WX+T6ZIIa2do3bQOKhlMtRwWMWQIucjGa7ySOCuicvnCD2HAQ2EThfqQdSpAW5UpcyodrhcyUkuevBA4fQQ06k9lB4FjqWtao2+aYFIPFPu8Wu28KI/9QIMLI02Q1YY3duJ67QW4EM4I2oS0t3sWJeZtIJPRHFWW1EaLJz2FdbJJq+z6D2p++9pmkHsvdnktUUO+nPL3PCLtxGYxEwr/AqTYR/1yXfkVWe3nHXc+qvRt967X1hDHC+gEPJItr7kUk3pQTGBv9kNu75DwIDAQAB
|
||||
wallet.org.id=420289242456261
|
||||
wallet.org.id=420289242456261
|
||||
|
||||
store.open.url=https://zhengxin.zhidiansoft.com:5943
|
||||
store.open.appId=289704779317445
|
||||
store.open.appKey=IGSAEQoakR2HEaYx
|
||||
store.open.secret=aPsA99K1obFeFm3m
|
||||
@@ -178,4 +178,9 @@ wallet.url=https://api.dev.wenmatech.com:443
|
||||
wallet.api.yzt.key=360155690205317
|
||||
cool.api.rsa.private.key=MIIEpQIBAAKCAQEA0erPAWesjkp9J4htmfCyqKS9npmT9dW3KqWTfb4c7x/QBUtKuokWOO0XikHd4bGUa9kl+twSv/5A3kYz1B9eg6wRuDJoads+G5U7rVQjzdoUtLaf3lNXkuSehl4uHUPQfNa6vcmvzraXPxJjEpYzj9WZh7uJqq2oSgw42H1qdbFCXSaE5BwsOb+2vZXjzh4RO10Sy3Qb1UqGsoZoxVzrtDeEctCjrecFyQr96L2UtYa4NTxSTfu4rgObrwIOMvqqnLsXEzK/rd6kIHYjkZYQCOa48AedWp2YKQ7Ldclj+VMLnXvl42J9exVkbs++8k3P5sI9fdZX4Ey2RBjnSoAo/QIDAQABAoIBACbBGi8I+CE77M+13wAu4RkD8xL7CQc3ic2ojGqIRPi7r5CuphD6mpzvXqtyfhd7DKr9h8bAxwBlnQ28ObjVgsI96/aM7dxvMs/uVPpqwIJyWuTDG5A05EPVC9REQnC6Mp09mnPL7rZz3Mfy6dIGY2YQWfwmWiPl1B45k+wZ+WPZPI0JVnvRzM881kf4aAhEAt08i9VoihylwVAjWIPmLuhf6ZcqI5q8iUsjfO22wZJsudVTCA/dsJdNxv+1RDKeYnSLJL79cZQcodqEhFqTy6vnn2dMsaHH7dpphU27barxUjeL482SR7kFfMqEXn5sltRn/3ep+3sf4Ph2vMtoZeECgYEA6gXzEtT9ZOeAMp4BRGmfNZ0TQLprPPVSwudz/uUBE4j/vyhfXkh9p7hqwyoxN+Z8b65yINvx8yP6hge6ek/MyAwBCZyfIRxZAPZu1eEGoYKl391ubFt2EIVqrN2DtAvzHMr5B/E2VHBq6AJm/rERFX5oKsg6zHS9tPLhgGnWVd0CgYEA5aFWOrtiqZJlp1MHQ4OeWBJatBSynkORdxCW7ic0CKbkYus0NSz1SsvskpbnfEXNB53x98qJxRhSopg/DC4m7XqxjSf9lY3HH4Y/9907olj33yGAnLWC88GivVndt577u/XhYRCk33vOQ3GoibEdjnpMOkWmOfwYG/FsRWWQvaECgYEA1N2siEisZIgel+wZAv2AD+hchtgKi1wqd5bIb+Yl4HsRBfPXK4+MnG6mzfcm5c4FCiEHNtRZc+waCKgm+vJzNtOUbgXEyP1cCAAgOPOCcI7CCqsDshRPhB+XNL4Y+kCUVnBZrNu/q3bGB1uIC8tL2t0sKx4OPcNCe8EhVQjwKRECgYEA4uothdhKRPtwDIsVsHfN74Yjr7SMVay7gIcaPrjqyGnzYnS+oJWOx50AaFNK6Rko5JAF3jF9NxE0B4yfMPAic6Y88hpEkpcJ4HMPn2Y1WdbFCu/WYgVUJICCys6VNLCcXj85umtyIY38Y9VbEMW/SV49GZBeFQqy4FoP/fvBrkECgYEAnfjTDYwgdmJdsUqyNzAocwcJXG2rVtYc7Txrl0TltcwuJmgoSywdzyOP2R9+NZsfoxWDzG0/yr15ApMvUcnnTwHN/8bGQ9SLatFLKqS4EtdwDKKS1JvNbs7V1myQGpt7jbShZOI0e6Fs4xP8ujxsLeGgiq9mZrS9UdRj5XKDoVM=
|
||||
cool.api.rsa.public.key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0erPAWesjkp9J4htmfCyqKS9npmT9dW3KqWTfb4c7x/QBUtKuokWOO0XikHd4bGUa9kl+twSv/5A3kYz1B9eg6wRuDJoads+G5U7rVQjzdoUtLaf3lNXkuSehl4uHUPQfNa6vcmvzraXPxJjEpYzj9WZh7uJqq2oSgw42H1qdbFCXSaE5BwsOb+2vZXjzh4RO10Sy3Qb1UqGsoZoxVzrtDeEctCjrecFyQr96L2UtYa4NTxSTfu4rgObrwIOMvqqnLsXEzK/rd6kIHYjkZYQCOa48AedWp2YKQ7Ldclj+VMLnXvl42J9exVkbs++8k3P5sI9fdZX4Ey2RBjnSoAo/QIDAQAB
|
||||
wallet.api.rsa.public.key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvU5WUX5MaZhS4MRfZ5OeqmSxTgjNi64SEwTiDYS++DRHRFTEguk1g5AbiW3l9eEdATeVk0WX+T6ZIIa2do3bQOKhlMtRwWMWQIucjGa7ySOCuicvnCD2HAQ2EThfqQdSpAW5UpcyodrhcyUkuevBA4fQQ06k9lB4FjqWtao2+aYFIPFPu8Wu28KI/9QIMLI02Q1YY3duJ67QW4EM4I2oS0t3sWJeZtIJPRHFWW1EaLJz2FdbJJq+z6D2p++9pmkHsvdnktUUO+nPL3PCLtxGYxEwr/AqTYR/1yXfkVWe3nHXc+qvRt967X1hDHC+gEPJItr7kUk3pQTGBv9kNu75DwIDAQAB
|
||||
wallet.api.rsa.public.key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvU5WUX5MaZhS4MRfZ5OeqmSxTgjNi64SEwTiDYS++DRHRFTEguk1g5AbiW3l9eEdATeVk0WX+T6ZIIa2do3bQOKhlMtRwWMWQIucjGa7ySOCuicvnCD2HAQ2EThfqQdSpAW5UpcyodrhcyUkuevBA4fQQ06k9lB4FjqWtao2+aYFIPFPu8Wu28KI/9QIMLI02Q1YY3duJ67QW4EM4I2oS0t3sWJeZtIJPRHFWW1EaLJz2FdbJJq+z6D2p++9pmkHsvdnktUUO+nPL3PCLtxGYxEwr/AqTYR/1yXfkVWe3nHXc+qvRt967X1hDHC+gEPJItr7kUk3pQTGBv9kNu75DwIDAQAB
|
||||
|
||||
store.open.url=https://zhengxin.zhidiansoft.com:5943
|
||||
store.open.appId=289704779317445
|
||||
store.open.appKey=IGSAEQoakR2HEaYx
|
||||
store.open.secret=aPsA99K1obFeFm3m
|
||||
|
||||
Reference in New Issue
Block a user