diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java index acfc27e16..4337a6706 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java @@ -2,6 +2,7 @@ package com.iformall.controller.basic; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; import com.iformall.annotation.UserDataRuleAnnotation; import com.iformall.common.Result; import com.iformall.common.ResultData; @@ -291,6 +292,16 @@ public class WxMerchantController extends BaseController { return new ResultData(has); } + @ApiOperation("查看是否存在商户名称相同记录") + @GetMapping("/hasMerchantEncode") + @SystemControllerLog(description = "商户-查看是否存在商户编码相同记录") + @TenantIgnore + public ResultData hasMerchantEncode(@ModelAttribute WxMerchant wxMerchant) { + logger.debug("[" + getIpAddr() + "] WxMerchantController::hasMerchantEncode{}"+wxMerchant.toString()); + boolean has = wxMerchantService.hasMerchant(wxMerchant); + return new ResultData(has); + } + @ApiOperation("商户会员消费分页列表接口") @GetMapping("userTradeList") @ApiImplicitParams({ diff --git a/mallinkAdmin/src/main/resources/db/migration/V202104280003__merchant_code.sql b/mallinkAdmin/src/main/resources/db/migration/V202104280003__merchant_code.sql new file mode 100644 index 000000000..a00c0d125 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202104280003__merchant_code.sql @@ -0,0 +1,3 @@ +ALTER TABLE `wx_merchant` +ADD COLUMN `encode` varchar(50) COMMENT '唯一编码' AFTER `name`, +ADD UNIQUE INDEX `code_unique`(`encode`) USING BTREE; \ No newline at end of file diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java index 712776984..a4bf0112d 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java @@ -193,6 +193,9 @@ public class AliPayController extends BaseController { */ @RequestMapping(value = "/notify") public String __Notify(@RequestParam Map paramMap) throws Exception { + + logger.info("alipay notify ======{}:"+paramMap); + String msgMethod = (String) paramMap.get("msg_method"); if (StringUtils.isBlank(msgMethod)) { logger.error("alipay notify notify error. msg_method empity:"+paramMap); @@ -235,7 +238,8 @@ public class AliPayController extends BaseController { String mallId = jo.getString("mall_id"); String mallName = jo.getString("mall_name"); - WxMerchant merchant = wxMerchantService.getById(Long.parseLong(mallStoreId)); +// WxMerchant merchant = wxMerchantService.getById(Long.parseLong(mallStoreId)); + WxMerchant merchant = wxMerchantService.getMerchantByEncode(mallStoreId); if(merchant == null){ logger.error("alipay notify . 找不到门店:"+paramMap); return "fail"; @@ -273,7 +277,8 @@ public class AliPayController extends BaseController { String mallId = jo.getString("mall_id"); String mallName = jo.getString("mall_name"); - WxMerchant merchant = wxMerchantService.getById(Long.parseLong(mallStoreId)); +// WxMerchant merchant = wxMerchantService.getById(Long.parseLong(mallStoreId)); + WxMerchant merchant = wxMerchantService.getMerchantByEncode(mallStoreId); if(merchant == null){ logger.error("alipay notify . 找不到门店:"+paramMap); return "fail"; diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 89a348fb3..6547ba0c5 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -103,6 +103,7 @@ public enum ErrorCode{ MERCHANT_CAR_NOT_DEL(2015, "停车商户不能被删除"), MERCHANT_BUSER_NOT_VALID(2016, "商户用户不存在或已被禁用"), MERCHANT_HASRENTCONTRACT(2017,"该商户存在计租中合同"), + MERCHANT_CODE_IS_FOUND(2018, "商户编码已存在"), /** * 券 */ diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java index 4467451aa..e3b9094dc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java @@ -46,30 +46,33 @@ public class WxMerchant extends TenantEntity { @TableField(exist = false) private Long rentContractId; + @io.swagger.annotations.ApiModelProperty(value="商户编码",name="encode") + @Excel(name="商户编码",width = 20,orderNum = "1") + private String encode; @io.swagger.annotations.ApiModelProperty(value="商户名",name="name") - @Excel(name="商户名",width = 20,orderNum = "1") + @Excel(name="商户名",width = 20,orderNum = "2") private String name; @io.swagger.annotations.ApiModelProperty(value="联系人",name="linkPerson") - @Excel(name="联系人",width = 20,orderNum = "2") + @Excel(name="联系人",width = 20,orderNum = "3") private String linkPerson; @io.swagger.annotations.ApiModelProperty(value="联系方式",name="linkPhone") - @Excel(name="联系方式",width = 20,orderNum = "3") + @Excel(name="联系方式",width = 20,orderNum = "4") private String linkPhone; @TableField(exist = false) - @Excel(name="租期开始时间",width = 20,format="yyyy-MM-dd",orderNum = "4") + @Excel(name="租期开始时间",width = 20,format="yyyy-MM-dd",orderNum = "5") @io.swagger.annotations.ApiModelProperty(value="租期开始时间",name="rentalStartDate") private Date rentalStartDate; @TableField(exist = false) - @Excel(name="租期结束时间",width = 20,format="yyyy-MM-dd",orderNum = "5") + @Excel(name="租期结束时间",width = 20,format="yyyy-MM-dd",orderNum = "6") @io.swagger.annotations.ApiModelProperty(value="租期结束时间",name="rentalEndDate") private Date rentalEndDate; - @Excel(name="商户状态",width = 20,orderNum = "6",replace = {"停用_0","正常_1"}) + @Excel(name="商户状态",width = 20,orderNum = "7",replace = {"停用_0","正常_1"}) @io.swagger.annotations.ApiModelProperty(value="状态1可用0停用",name="status") private Integer status; @@ -81,55 +84,55 @@ public class WxMerchant extends TenantEntity { } @TableField(exist = false) - @Excel(name="账户类型",width = 20,orderNum = "7",replace = {"_null","商户号_0","微信号_1","OPENID_3"}) + @Excel(name="账户类型",width = 20,orderNum = "8",replace = {"_null","商户号_0","微信号_1","OPENID_3"}) @io.swagger.annotations.ApiModelProperty(value="账户类型",name="accountTypeValue") private Integer accountTypeValue; @TableField(exist = false) - @Excel(name="账户号",width = 20,orderNum = "8") + @Excel(name="账户号",width = 20,orderNum = "9") @io.swagger.annotations.ApiModelProperty(value="账户ID",name="accountId") private String accountId; @TableField(exist = false) - @Excel(name="账户名",width = 20,orderNum = "9") + @Excel(name="账户名",width = 20,orderNum = "10") @io.swagger.annotations.ApiModelProperty(value="账户名",name="accountName") private String accountName; - @Excel(name="创建时间",width = 20,format="yyyy-MM-dd",orderNum = "10") + @Excel(name="创建时间",width = 20,format="yyyy-MM-dd",orderNum = "11") @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") private Date createDate; - @Excel(name="是否展示",width = 20,orderNum = "11",replace = {"否_0","是_1"}) + @Excel(name="是否展示",width = 20,orderNum = "12",replace = {"否_0","是_1"}) @io.swagger.annotations.ApiModelProperty(value = "是否显示在C端", name = "isPublic") private Integer isPublic; - @Excel(name = "待缴提醒", width = 20, orderNum = "12") + @Excel(name = "待缴提醒", width = 20, orderNum = "13") @io.swagger.annotations.ApiModelProperty(value = "待缴提醒", name = "billSetting") private Integer billSetting; @TableField(exist = false) - @Excel(name = "业态", width = 20, orderNum = "13") + @Excel(name = "业态", width = 20, orderNum = "14") @io.swagger.annotations.ApiModelProperty(value="经营业态ID:参照wx_business表",name="businessId") private String businessName; @TableField(exist = false) - @Excel(name = "子业态", width = 20, orderNum = "14") + @Excel(name = "子业态", width = 20, orderNum = "15") @io.swagger.annotations.ApiModelProperty(value="子业态",name="subBusinessId") private String subBusinessName; @TableField(exist = false) - @Excel(name = "商铺", width = 20, orderNum = "15") + @Excel(name = "商铺", width = 20, orderNum = "16") private String shopsStr; @TableField(exist = false) - @Excel(name = "管理员", width = 20, orderNum = "16") + @Excel(name = "管理员", width = 20, orderNum = "17") private String usersStr; - @Excel(name = "主谈人", width = 20, orderNum = "17") + @Excel(name = "主谈人", width = 20, orderNum = "18") @io.swagger.annotations.ApiModelProperty(value = "主谈人", name = "talkUserMain") private String talkUserMain; - @Excel(name = "辅谈人", width = 20, orderNum = "18") + @Excel(name = "辅谈人", width = 20, orderNum = "19") @io.swagger.annotations.ApiModelProperty(value = "辅谈人", name = "talkUserAux") private String talkUserAux; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantVo.java index fc96c819b..4967d2d20 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantVo.java @@ -20,6 +20,8 @@ public class WxMerchantVo extends TenantEntity { private String merchantImgUrl; @io.swagger.annotations.ApiModelProperty(value="商户名",name="name") private String merchantName; + @io.swagger.annotations.ApiModelProperty(value="商户名",name="merchantEncode") + private String merchantEncode; @io.swagger.annotations.ApiModelProperty(value="商户联系方式",name="linkPhone") private String merchantLinkPhone; @io.swagger.annotations.ApiModelProperty(value="商户状态1可用0停用",name="status") diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java index a3290dae8..9d740002f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -6,6 +6,7 @@ import com.iformall.domain.dto.WxMerchantDto; import com.iformall.domain.vo.WxMerchantTradeDetailVo; import com.iformall.domain.vo.WxMerchantTradeVo; import com.iformall.domain.vo.WxMerchantVo; +import org.apache.ibatis.annotations.Param; import java.util.HashMap; import java.util.List; @@ -27,6 +28,7 @@ public interface WxMerchantMapper extends CommonMapper { List> findBusByFloorId(Map params); int hasMerchant(WxMerchant wxMerchant); + int hasMerchantEncode(WxMerchant wxMerchant); List findListVo(WxMerchant record); @@ -49,4 +51,6 @@ public interface WxMerchantMapper extends CommonMapper { void increaseCashCount(WxMerchant record); void reSetCashCount(WxMerchant record); + + WxMerchant getMerchantByEncode(@Param("encode")String encode); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 40015b1f7..9d31c435b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -142,6 +142,9 @@ public interface WxMerchantService { ResultData useAccount(WxProfitSharingReceiver wxProfitSharingReceiver); boolean hasMerchant(WxMerchant wxMerchant); + boolean hasMerchantEncode(WxMerchant wxMerchant); + + WxMerchant getMerchantByEncode(String encode); Optional findByName(String name); @@ -156,4 +159,5 @@ public interface WxMerchantService { void disableMerchat(Long id); List getMerchantShopIds(Long merchantId); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/AliBusinessCircleOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/AliBusinessCircleOrderServiceImpl.java index 7ed4114d9..fed9b5393 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/AliBusinessCircleOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/AliBusinessCircleOrderServiceImpl.java @@ -82,7 +82,8 @@ public class AliBusinessCircleOrderServiceImpl implements AliBusinessCircleOrder record.setUpdateTime(now); //TODO 第三方获取门店(标识可能发生变化) - WxMerchant wxMerchant = wxMerchantService.getById(Long.parseLong(record.getMallStoreId())); +// WxMerchant wxMerchant = wxMerchantService.getById(Long.parseLong(record.getMallStoreId())); + WxMerchant wxMerchant = wxMerchantService.getMerchantByEncode(record.getMallStoreId()); if(wxMerchant != null){ record.setMerchantId(wxMerchant.getId()); }else{ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java index f16e7a7a4..72579535b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessCircleOrderServiceImpl.java @@ -82,7 +82,8 @@ public class WxBusinessCircleOrderServiceImpl implements WxBusinessCircleOrderSe record.setUpdateTime(now); //TODO 第三方获取门店(标识可能发生变化) - WxMerchant wxMerchant = wxMerchantService.getById(Long.parseLong(record.getWxShopNumber())); +// WxMerchant wxMerchant = wxMerchantService.getById(Long.parseLong(record.getWxShopNumber())); + WxMerchant wxMerchant = wxMerchantService.getMerchantByEncode(record.getWxShopNumber()); if(wxMerchant != null){ record.setMerchantId(wxMerchant.getId()); }else{ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 5b5467668..e1bc15371 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -332,6 +332,9 @@ public class WxMerchantServiceImpl implements WxMerchantService { if (hasMerchant(wxMerchant)) { return new ResultData(ErrorCode.MERCHANT_NAME_IS_FOUND); } + if (hasMerchantEncode(wxMerchant)) { + return new ResultData(ErrorCode.MERCHANT_CODE_IS_FOUND); + } //保存商户商铺的关联 List shopidlist = wxMerchant.getShopids(); if (shopidlist.isEmpty()) { @@ -453,6 +456,9 @@ public class WxMerchantServiceImpl implements WxMerchantService { if (hasMerchant(wxMerchant)) { return new ResultData(ErrorCode.MERCHANT_NAME_IS_FOUND); } + if (hasMerchantEncode(wxMerchant)) { + return new ResultData(ErrorCode.MERCHANT_CODE_IS_FOUND); + } } final IdWorker idWorker = IdWorker.get(); Date date = new Date(); @@ -775,6 +781,20 @@ public class WxMerchantServiceImpl implements WxMerchantService { return wxMerchantMapper.hasMerchant(wxMerchant) > 0 ? true : false; } + @Override + public boolean hasMerchantEncode(WxMerchant wxMerchant) { + if(StringUtils.isBlank(wxMerchant.getEncode())){ + return true; + }else{ + return wxMerchantMapper.hasMerchant(wxMerchant) > 0 ? true : false; + } + } + + @Override + public WxMerchant getMerchantByEncode(String encode){ + return wxMerchantMapper.getMerchantByEncode(encode); + } + @Override public Optional findByName(String name) { WxMerchant wxMerchant = new WxMerchant(); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java index dd156f330..aca4a08b7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxThirdPartyOrdersServiceImpl.java @@ -90,7 +90,8 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService record.setSourceType(EnumThirdOrderType.RMB_PAY.getCode()); //TODO 第三方获取门店(标识可能发生变化) - WxMerchant wxMerchant = wxMerchantService.getById(Long.parseLong(record.getShopNumber())); +// WxMerchant wxMerchant = wxMerchantService.getById(Long.parseLong(record.getShopNumber())); + WxMerchant wxMerchant = wxMerchantService.getMerchantByEncode(record.getShopNumber()); if(wxMerchant != null){ record.setMerchantId(wxMerchant.getId()); }else{ @@ -262,7 +263,8 @@ public class WxThirdPartyOrdersServiceImpl implements WxThirdPartyOrdersService record.setSourceType(EnumThirdOrderType.CREDIT_PAY.getCode()); //TODO 第三方获取门店(标识可能发生变化) - WxMerchant wxMerchant = wxMerchantService.getById(Long.parseLong(record.getShopNumber())); +// WxMerchant wxMerchant = wxMerchantService.getById(Long.parseLong(record.getShopNumber())); + WxMerchant wxMerchant = wxMerchantService.getMerchantByEncode(record.getShopNumber()); if(wxMerchant != null){ record.setMerchantId(wxMerchant.getId()); }else{ diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index 034c93c22..fe2ad70c3 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -7,6 +7,7 @@ + @@ -41,13 +42,13 @@ - `id`,`tenant_id`,`parent_tenant_id`,`img_url`,`name`,`link_phone`,`create_date`,`update_date`,`car_vendor_type`,`car_params`,`status`,`link_person`, + `id`,`tenant_id`,`parent_tenant_id`,`img_url`,`name`,`encode`,`link_phone`,`create_date`,`update_date`,`car_vendor_type`,`car_params`,`status`,`link_person`, `business_id`,`sub_business_id`,`shop_type`,`brand`,`type`,`is_public`,email,`title`,`cover_picture`,`is_admin`,`bill_setting`,`qr_code`, `introduction`,`action_desc`,`is_del`,`talk_user_main`,`talk_user_aux`,link_line_phone,credit_locked,cash_out_number,cash_out_count,cash_out_last_time - m.`id`,m.`tenant_id`,m.`parent_tenant_id`,m.`img_url`,m.`name`,m.`link_phone`,m.`create_date`,m.`update_date`,m.`car_vendor_type`,m.`car_params`,m.`status`,m.`link_person`, + m.`id`,m.`tenant_id`,m.`parent_tenant_id`,m.`img_url`,m.`name`,m.`encode`,m.`link_phone`,m.`create_date`,m.`update_date`,m.`car_vendor_type`,m.`car_params`,m.`status`,m.`link_person`, m.`business_id`,m.`sub_business_id`,m.`shop_type`,m.`brand`,m.`type`,m.`is_public`,m.email,m.`title`,m.`cover_picture`,m.`is_admin`,m.`bill_setting`,m.`qr_code`, m.`introduction`,m.`action_desc`,m.`is_del`,m.`talk_user_main`,m.`talk_user_aux`,m.link_line_phone,r.rental_start_date,r.rental_end_date,m.cash_out_number,m.cash_out_count,m.cash_out_last_time @@ -70,6 +71,10 @@ and `img_url` like concat('%', #{imgUrl},'%') + + and `encode` like concat('%', #{encode},'%') + + and `name` like concat('%', #{name},'%') @@ -216,6 +221,12 @@ order by ${sortColumns} + + @@ -261,6 +272,10 @@ and m.`name` like concat('%', #{name},'%') + + + and m.`encode` like concat('%', #{encode},'%') + and m.`link_phone` like concat('%', #{linkPhone},'%') @@ -353,7 +368,7 @@ - distinct m.id,m.img_url,m.name,m.link_phone,m.status,m.business_id, + distinct m.id,m.img_url,m.name,m.encode,m.link_phone,m.status,m.business_id, m.is_public,m.email,m.title,m.cover_picture,m.sub_business_id, m.shop_type,m.introduction,m.action_desc,bu.title as business_name,m.link_line_phone,m.top_time @@ -383,6 +398,7 @@ + @@ -509,6 +525,13 @@ and `id` != #{id} + + update wx_merchant set credit_locked = #{creditLocked} where tenant_id = #{tenantId} @@ -516,7 +539,7 @@