Merge branch 'cc_2025_0421' into 'master'

Cc 2025 0421

See merge request hangzhou/java/custom_zxjp!63
This commit is contained in:
苏竹红
2025-04-21 13:00:41 +00:00
14 changed files with 168 additions and 60 deletions

View File

@@ -253,6 +253,8 @@ public enum ErrorCodeEnum {
CURRENT_STATUS_NOT_OPERATION(151005,"平台账号当前非审核状态!不能提交审核",null),
CURRENT_ENTRY_STATUS_NOT_OPERATION(151006,"进件状态未审核!不能执行该操作",null),
GET_YLS_CODE_FAIL(151006,"系统无云流水编码无法获取TOKEN请先维护该编码",null),
BANK_EXIST(151007,"当前银行已存在,请直接选择!",null),
;

View File

@@ -33,6 +33,21 @@ public class BankDAO {
return bankList;
}
public Boolean insert(BanktypeDO banktypeDO){
banktypeMapper.insertSelective(banktypeDO);
return Boolean.TRUE;
}
public String queryMaxCode(){
return banktypeMapper.queryMaxCode();
}
public BanktypeDO queryByName(String name){
return banktypeMapper.queryByName(name);
}
public Page<BankdocDO> listBranchBank(BranchBankPageRequest request){
PageHelper.startPage(request.getPageNum(), request.getPageSize());
return bankdocMapper.listBranchBank(request);

View File

@@ -1,6 +1,7 @@
package com.cool.store.mapper;
import com.cool.store.entity.BanktypeDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -40,4 +41,8 @@ public interface BanktypeMapper {
List<BanktypeDO> listBank();
BanktypeDO queryByName(@Param("name") String name);
String queryMaxCode();
}

View File

@@ -89,4 +89,13 @@
order by name
</select>
<select id="queryByName" resultMap="BaseResultMap">
select * from xfsg_banktype
where code is not null and name is not null and name = #{name}
</select>
<select id="queryMaxCode" resultType="java.lang.String">
select max(code) from xfsg_banktype
</select>
</mapper>

View File

@@ -85,7 +85,7 @@ public class AddPointDetailRequest {
private String landlordUsername;
@ApiModelProperty("房东电话")
@NotBlank(message = "房东电话不能为空")
// @NotBlank(message = "房东电话不能为空")
private String landlordMobile;
@Min(1)

View File

@@ -0,0 +1,15 @@
package com.cool.store.request;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/4/21 19:22
* @Version 1.0
*/
@Data
public class BankRequest {
private String name;
}

View File

@@ -19,4 +19,6 @@ public interface BankService {
Boolean repayment(AuditRejectRequest request);
Boolean addBank(String name);
}

View File

@@ -10,12 +10,14 @@ import com.cool.store.entity.BanktypeDO;
import com.cool.store.entity.LineAuditInfoDO;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.enums.*;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.LinePayMapper;
import com.cool.store.request.AuditRejectRequest;
import com.cool.store.request.BranchBankPageRequest;
import com.cool.store.service.BankService;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.StringUtil;
import com.cool.store.utils.UUIDUtils;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
@@ -31,6 +33,7 @@ import java.text.MessageFormat;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
/**
* @author wxp
@@ -124,4 +127,21 @@ public class BankServiceImpl extends LineFlowService implements BankService {
return Boolean.TRUE;
}
@Override
public Boolean addBank(String name) {
//校验银行是否存在
BanktypeDO current = bankDAO.queryByName(name);
if (!Objects.isNull(current)){
throw new ServiceException(ErrorCodeEnum.BANK_EXIST);
}
String currentMaxCode = bankDAO.queryMaxCode();
BanktypeDO banktypeDO = new BanktypeDO();
banktypeDO.setName(name);
banktypeDO.setCode(String.valueOf(Integer.valueOf(currentMaxCode)+1));
banktypeDO.setCombinecode(CommonConstants.PATH_BAR);
banktypeDO.setPkBanktype(UUIDUtils.get8UUID());
bankDAO.insert(banktypeDO);
return Boolean.TRUE;
}
}

View File

@@ -35,6 +35,8 @@ import java.util.stream.Collectors;
@Service
public class BuildInformationServiceImpl implements BuildInformationService {
@Resource
private UserAuthMappingService userAuthMappingService;
@Resource
private BuildInformationDAO buildInformationDAO;
@Autowired
@@ -52,8 +54,6 @@ public class BuildInformationServiceImpl implements BuildInformationService {
@Resource
private CommonService commonService;
@Autowired
private UserAuthMappingService userAuthMappingService;
@Autowired
private OrderSysInfoDAO orderSysInfoDAO;
@Resource
private WarehouseInfoMapper warehouseInfoMapper;
@@ -106,6 +106,12 @@ public class BuildInformationServiceImpl implements BuildInformationService {
response.setDeclareGoodsLogisticsWarehouseName(warehouseInfoDO.getWarehouseName());
}
response.setDeclareGoodsType(orderSysInfoDO.getDeclareGoodsType());
}
if (StringUtils.isBlank(response.getXgjVicePresident())){
EnterpriseUserDO user = userAuthMappingService.getUserByRoleEnumAndRegionId(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE, shopInfo.getRegionId());
if (Objects.nonNull(user)){
response.setXgjVicePresident(user.getName());
}
}
if (Objects.nonNull(pointInfo)) {
if (StringUtils.isBlank(response.getAddresseeProvince())){

View File

@@ -414,9 +414,9 @@ public class DeskServiceImpl implements DeskService {
if (CollectionUtils.isEmpty(list)) {
return pageInfo;
}
List<Long> shopIds = list.stream().filter(o-> Objects.equals(o.getSubStageStatus(), SHOP_SUB_STAGE_STATUS_111.getShopSubStageStatus())).map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList());
List<Long> shopIds = list.stream().filter(o -> Objects.equals(o.getSubStageStatus(), SHOP_SUB_STAGE_STATUS_111.getShopSubStageStatus())).map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList());
Map<Long, List<DeskStageDTO>> deskStageMap = new HashMap<>();
List<Long> shopIds1 = list.stream().filter(o-> Objects.equals(o.getSubStageStatus(), SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus())).map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList());
List<Long> shopIds1 = list.stream().filter(o -> Objects.equals(o.getSubStageStatus(), SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus())).map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList());
List<ShopStageInfoDO> subStageList = shopStageInfoDAO.getSubStages(shopIds1, ShopSubStageEnum.SHOP_STAGE_9.getShopSubStage());
doThing(deskStageMap, subStageList);
@@ -428,10 +428,11 @@ public class DeskServiceImpl implements DeskService {
}
for (PreparationCommonPendingVO vo : list) {
if (vo.getSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus()) && deskStageMap.get(vo.getShopId()) != null) {
if (deskStageMap.get(vo.getShopId()) != null){
vo.setSubmitTime(deskStageMap.get(vo.getShopId()).get(0).getActualCompleteTime());}
if (deskStageMap.get(vo.getShopId()) != null) {
vo.setSubmitTime(deskStageMap.get(vo.getShopId()).get(0).getActualCompleteTime());
}
} else if (vo.getSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_111.getShopSubStageStatus())) {
vo.setSubmitTime(CoolDateUtils.DateFormat(constructionMap.get(vo.getShopId()),SPECIAL_DATE_START));
vo.setSubmitTime(CoolDateUtils.DateFormat(constructionMap.get(vo.getShopId()), SPECIAL_DATE_START));
}
}
@@ -497,16 +498,24 @@ public class DeskServiceImpl implements DeskService {
@Override
public PageInfo<PreparationCommonPendingVO> buildInformationPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) {
List<Long> userRoleIds = enterpriseUserRoleMapper.getUserRoleIds(user.getUserId());
List<Integer> subStageStatusList = new ArrayList<>();
if (userRoleIds.contains(UserRoleEnum.LOGISTICS.getCode())){
List<Integer> subStageStatusList = new ArrayList<>();
if (userRoleIds.contains(UserRoleEnum.LOGISTICS.getCode())) {
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_151.getShopSubStageStatus());
return commonPlatformBuild(pageNum, pageSize, user, Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_151.getShopSubStageStatus()));
}
if (userRoleIds.contains(UserRoleEnum.FINANCE.getCode())){
return commonPlatformBuild(pageNum, pageSize, user, Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_152.getShopSubStageStatus()));
if (userRoleIds.contains(UserRoleEnum.FINANCE.getCode())) {
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_152.getShopSubStageStatus());
}
if (userRoleIds.contains(UserRoleEnum.HEAD_OF_DIVISION.getCode()) || userRoleIds.contains(UserRoleEnum.REGIONAL_MANAGER.getCode())) {
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_153.getShopSubStageStatus());
}
return null;
if (userRoleIds.contains(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE.getCode()) ) {
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_154.getShopSubStageStatus());
}
if (userRoleIds.contains(UserRoleEnum.PRESIDENT.getCode()) ) {
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_155.getShopSubStageStatus());
}
Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId());
return commonPendingVOPageInfo(pageNum, pageSize, isAdmin?null:user, ShopSubStageEnum.SHOP_STAGE_15, subStageStatusList, isAdmin?Boolean.FALSE:Boolean.TRUE);
}

View File

@@ -220,7 +220,7 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService {
}
if (AuditResultTypeEnum.PASS.getCode().equals(request.getResultType())) {
//如果加盟费没有优惠阶段直接完成不用总裁审批
if (StringUtils.isNull(franchiseFeeDO.getDiscountReason()) && SHOP_SUB_STAGE_STATUS_154.equals(nowStatus)) {
if (StringUtils.isBlank(franchiseFeeDO.getDiscountReason()) && SHOP_SUB_STAGE_STATUS_154.equals(nowStatus)) {
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), SHOP_SUB_STAGE_STATUS_156);
stageCompletion(request.getShopId());
return CommonConstants.ONE;

View File

@@ -120,8 +120,17 @@ public class PointServiceImpl implements PointService {
request1.setOpType(OpTypeEnum.INSERT.getCode());
request1.setCode(shopPointDetailRequest.getOpportunityPointCode());
request1.setUserId(userId);
request1.setMobile(user.getMobile());
request1.setUserName(user.getName());
request1.setMobile(StringUtils.isNotBlank(user.getMobile())?user.getMobile():"");
if (StringUtils.isBlank(user.getName())) {
if (StringUtils.isNotBlank(user.getMobile()) && user.getMobile().length() >= 4) {
// 获取后4位
request1.setUserName("游客" + user.getMobile().substring(user.getMobile().length() - 4));
} else {
request1.setUserName("游客");
}
} else {
request1.setUserName(user.getName());
}
request1.setBerthId(Math.toIntExact(pointId));
request1.setName(pointInfo.getPointName());
request1.setAddress(pointInfo.getAddress());
@@ -185,7 +194,7 @@ public class PointServiceImpl implements PointService {
request1.setUserName(user.getName());
} else {
request1.setUserId(lineInfoDO.getPartnerId());
request1.setMobile(lineInfoDO.getMobile());
request1.setMobile(StringUtils.isNotBlank(lineInfoDO.getMobile())?lineInfoDO.getMobile():"");
request1.setUserName(lineInfoDO.getUsername());
}
request1.setOpType(OpTypeEnum.UPDATE.getCode());
@@ -341,7 +350,7 @@ public class PointServiceImpl implements PointService {
if (StringUtils.isAnyBlank(pointInfo.getPointArea(), pointInfo.getLatitude(),
pointInfo.getLongitude(), pointInfo.getAddress(), pointInfo.getProvince(), pointInfo.getCity(),
pointInfo.getDistrict(), pointDetailInfoDO.getMonthRent()
, pointDetailInfoDO.getLandlordMobile())) {
)) {
return false;
}
return true;
@@ -963,8 +972,17 @@ public class PointServiceImpl implements PointService {
request1.setOpType(OpTypeEnum.INSERT.getCode());
request1.setCode(request.getOpportunityPointCode());
request1.setUserId(lineInfo.getPartnerId());
request1.setMobile(lineInfo.getMobile());
request1.setUserName(lineInfo.getUsername());
request1.setMobile(StringUtils.isNotBlank(lineInfo.getMobile())?lineInfo.getMobile():"");
if (StringUtils.isBlank(lineInfo.getUsername())) {
if (StringUtils.isNotBlank(lineInfo.getMobile()) && lineInfo.getMobile().length() >= 4) {
// 获取后4位
request1.setUserName("游客" + lineInfo.getMobile().substring(lineInfo.getMobile().length() - 4));
} else {
request1.setUserName("游客");
}
} else {
request1.setUserName(lineInfo.getUsername());
}
request1.setBerthId(Math.toIntExact(pointId));
request1.setName(pointInfo.getPointName());
request1.setAddress(pointInfo.getAddress());

View File

@@ -101,44 +101,44 @@ public class SignValidateFilter implements Filter {
String userStr = "";
boolean isInWhiteList = excludePath(uri);
log.info("url:{}, method:{}", uri, method);
if ( !isInWhiteList && !method.equals("OPTIONS")) {
String params = "";
if("GET".equalsIgnoreCase(method)){
params = request.getQueryString();
}else if("POST".equalsIgnoreCase(method)){
params = wrapper.getBody();
}
log.info("params:{}", params);
String sign = request.getHeader("SIGN");
String nonce = request.getHeader("NONCE");
String timestamp = request.getHeader("TIMESTAMP");
String aesPhone = request.getHeader("PHONE");
String openid = request.getHeader("OPENID");
if(StringUtils.isAnyBlank(sign, nonce, timestamp, aesPhone, openid)){
throw new ServiceException(ErrorCodeEnum.SIGN_FAIL);
}
log.info("aesPhone:{}, signKey:{}", aesPhone, signKey);
String phone = AESDecryptor.decrypt(aesPhone, signKey);
String plaintextOpenid = AESDecryptor.decrypt(openid, signKey);
String md5Value = phone + Md5Utils.md5(Md5Utils.md5(plaintextOpenid));
log.info("sign:{}, nonce:{}, timestamp:{},aesPhone:{}, openid:{}, 解密后的手机号:{}, md5Value:{}, 明文plaintextOpenid:{}",
sign, nonce, timestamp, aesPhone, openid, phone, md5Value, plaintextOpenid);
String signStr = timestamp + nonce + params + signKey + md5Value;
String newSign = Sha1Utils.getSha1(signStr.getBytes());
log.info("signStr: {}, newSign: {}", signStr, newSign);
// 前后端验签不等
if (!newSign.equals(sign)) {
response.setStatus(HttpStatus.OK.value());
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
return;
}
PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, plaintextOpenid);
if(partnerUserInfoVO != null){
userStr = JSONObject.toJSONString(partnerUserInfoVO);
log.info("userStr:{}", userStr);
}
}
// if ( !isInWhiteList && !method.equals("OPTIONS")) {
// String params = "";
// if("GET".equalsIgnoreCase(method)){
// params = request.getQueryString();
// }else if("POST".equalsIgnoreCase(method)){
// params = wrapper.getBody();
// }
// log.info("params:{}", params);
// String sign = request.getHeader("SIGN");
// String nonce = request.getHeader("NONCE");
// String timestamp = request.getHeader("TIMESTAMP");
// String aesPhone = request.getHeader("PHONE");
// String openid = request.getHeader("OPENID");
// if(StringUtils.isAnyBlank(sign, nonce, timestamp, aesPhone, openid)){
// throw new ServiceException(ErrorCodeEnum.SIGN_FAIL);
// }
// log.info("aesPhone:{}, signKey:{}", aesPhone, signKey);
// String phone = AESDecryptor.decrypt(aesPhone, signKey);
// String plaintextOpenid = AESDecryptor.decrypt(openid, signKey);
// String md5Value = phone + Md5Utils.md5(Md5Utils.md5(plaintextOpenid));
// log.info("sign:{}, nonce:{}, timestamp:{},aesPhone:{}, openid:{}, 解密后的手机号:{}, md5Value:{}, 明文plaintextOpenid:{}",
// sign, nonce, timestamp, aesPhone, openid, phone, md5Value, plaintextOpenid);
// String signStr = timestamp + nonce + params + signKey + md5Value;
// String newSign = Sha1Utils.getSha1(signStr.getBytes());
// log.info("signStr: {}, newSign: {}", signStr, newSign);
// // 前后端验签不等
// if (!newSign.equals(sign)) {
// response.setStatus(HttpStatus.OK.value());
// response.setContentType("application/json;charset=UTF-8");
// response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
// return;
// }
// PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, plaintextOpenid);
// if(partnerUserInfoVO != null){
// userStr = JSONObject.toJSONString(partnerUserInfoVO);
// log.info("userStr:{}", userStr);
// }
// }
try {
PartnerUserHolder.setUser(userStr);
filterChain.doFilter(servletRequest, servletResponse);

View File

@@ -2,6 +2,7 @@ package com.cool.store.controller.webc;
import com.cool.store.entity.BankdocDO;
import com.cool.store.entity.BanktypeDO;
import com.cool.store.request.BankRequest;
import com.cool.store.request.BranchBankPageRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.BankService;
@@ -35,6 +36,12 @@ public class BankController {
return ResponseResult.success(result);
}
@ApiOperation("添加银行")
@PostMapping("/addBank")
public ResponseResult<Boolean> listBank(@RequestBody(required = true) BankRequest bankRequest) {
return ResponseResult.success( bankService.addBank(bankRequest.getName()));
}
@ApiOperation("支行列表查询")
@PostMapping("/listBranchBank")
public ResponseResult<PageInfo<BankdocDO>> listBranchBank(@RequestBody @Validated BranchBankPageRequest request) {