Просмотр исходного кода

[集团版][新增]:支持集团版

release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
f6af602234
100 измененных файлов: 1190 добавлений и 307 удалений
  1. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java
  2. +2
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java
  3. +2
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java
  4. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantBUserController.java
  5. +2
    -5
      mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java
  6. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantShopController.java
  7. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/car/WxCarController.java
  8. +3
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java
  9. +11
    -10
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
  10. +5
    -5
      mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxChartDataController.java
  11. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java
  12. +5
    -5
      mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxUserStructureController.java
  13. +8
    -6
      mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java
  14. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/device/WxScreenAdController.java
  15. +2
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java
  16. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxFloatingLayerController.java
  17. +2
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxQuestionController.java
  18. +4
    -3
      mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java
  19. +10
    -4
      mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserDataController.java
  20. +3
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java
  21. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreRulesController.java
  22. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgController.java
  23. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java
  24. +2
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgSignatureController.java
  25. +6
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgValidationcodeController.java
  26. +3
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java
  27. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java
  28. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java
  29. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java
  30. +45
    -3
      mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java
  31. +8
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/sys/SysMenuController.java
  32. +6
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java
  33. +68
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java
  34. +5
    -1
      mallinkAdmin/src/main/java/com/iformall/shiro/MyShiroRealm.java
  35. +2
    -0
      mallinkAdmin/src/main/java/com/iformall/shiro/UserSession.java
  36. +76
    -1
      mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java
  37. +9
    -3
      mallinkAdmin/src/main/java/com/iformall/ueditor/upload/Uploader.java
  38. +1
    -0
      mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java
  39. +2
    -0
      mallinkBApi/src/main/java/com/iformall/controller/BaseController.java
  40. +1
    -12
      mallinkBApi/src/main/java/com/iformall/controller/PosController.java
  41. +5
    -1
      mallinkBApi/src/main/java/com/iformall/controller/UploadController.java
  42. +4
    -4
      mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java
  43. +8
    -2
      mallinkBApi/src/main/java/com/iformall/controller/WxCouponSendController.java
  44. +1
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java
  45. +27
    -4
      mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java
  46. +14
    -5
      mallinkBApi/src/main/java/com/iformall/controller/WxMallController.java
  47. +112
    -37
      mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java
  48. +8
    -3
      mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java
  49. +72
    -0
      mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java
  50. +1
    -0
      mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java
  51. +9
    -1
      mallinkCApi/src/main/java/com/iformall/controller/BaseController.java
  52. +21
    -4
      mallinkCApi/src/main/java/com/iformall/controller/UploadController.java
  53. +1
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxActivityJoinController.java
  54. +2
    -2
      mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java
  55. +29
    -29
      mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java
  56. +1
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java
  57. +7
    -2
      mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java
  58. +0
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxParkController.java
  59. +2
    -3
      mallinkCApi/src/main/java/com/iformall/controller/WxQuestionController.java
  60. +106
    -21
      mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java
  61. +3
    -0
      mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java
  62. +78
    -0
      mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java
  63. +38
    -26
      mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarETCPCallBackController.java
  64. +1
    -0
      mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarTJDCallBackController.java
  65. +0
    -2
      mallinkCallback/src/main/java/com/iformall/controller/device/KwBoxV1Controller.java
  66. +3
    -2
      mallinkCallback/src/main/java/com/iformall/controller/device/WxDeviceScreenAdController.java
  67. +1
    -1
      mallinkCallback/src/main/java/com/iformall/shiro/MyShiroRealm.java
  68. +106
    -51
      mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java
  69. +1
    -1
      mallinkPosApi/src/test/java/com/iformall/pos/test/PosAppTest.java
  70. +4
    -0
      mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java
  71. +10
    -0
      mallinkSchedule/src/main/java/com/iformall/schedule/ChartDataSchedule.java
  72. +5
    -1
      mallinkSchedule/src/main/java/com/iformall/schedule/CouponSendSchedule.java
  73. +1
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  74. +15
    -1
      mallinkService/src/main/java/com/iformall/domain/po/MallUserInfo.java
  75. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxAppinfo.java
  76. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java
  77. +21
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCarCmdLog.java
  78. +3
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxChartDataEntity.java
  79. +30
    -4
      mallinkService/src/main/java/com/iformall/domain/po/WxMall.java
  80. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/po/base/BaseTenantEntity.java
  81. +10
    -0
      mallinkService/src/main/java/com/iformall/domain/po/base/TenantEntity.java
  82. +7
    -0
      mallinkService/src/main/java/com/iformall/domain/po/invest/InvestBaseEntity.java
  83. +7
    -0
      mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java
  84. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java
  85. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCouponVerifyMsg.java
  86. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderSuccessMsg.java
  87. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/msg/WxMsg.java
  88. +26
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantBuInfoVo.java
  89. +36
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumGroupSupport.java
  90. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java
  91. +2
    -1
      mallinkService/src/main/java/com/iformall/mapper/PosMallConfigMapper.java
  92. +2
    -2
      mallinkService/src/main/java/com/iformall/mapper/WxBusinessMapper.java
  93. +1
    -2
      mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java
  94. +2
    -2
      mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java
  95. +2
    -2
      mallinkService/src/main/java/com/iformall/mapper/WxCouponActionLogMapper.java
  96. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java
  97. +4
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxMallMapper.java
  98. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java
  99. +1
    -1
      mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java
  100. +3
    -3
      mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java

+ 1
- 0
mallinkAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java Просмотреть файл

@@ -19,6 +19,7 @@ public class MyBatisConfiguration {
MultiTenancy multiTenancy = new MultiTenancy(); MultiTenancy multiTenancy = new MultiTenancy();
Properties properties = new Properties(); Properties properties = new Properties();
properties.setProperty("tenantIdColumn", "tenant_id"); properties.setProperty("tenantIdColumn", "tenant_id");
properties.setProperty("subTenantIdColumn", "sub_tenant_id");
properties.setProperty("dialect", "mysql"); properties.setProperty("dialect", "mysql");
properties.setProperty("tenantInfo", "com.iformall.tenant.TenantInfoImpl"); properties.setProperty("tenantInfo", "com.iformall.tenant.TenantInfoImpl");
multiTenancy.setProperties(properties); multiTenancy.setProperties(properties);


+ 2
- 0
mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java Просмотреть файл

@@ -66,9 +66,11 @@ public class BaseController {
public TenantEntity getTenantInfo(){ public TenantEntity getTenantInfo(){
Session session = SecurityUtils.getSubject().getSession(); Session session = SecurityUtils.getSubject().getSession();
String tenantId = (String)session.getAttribute(UserSession.tenantId); String tenantId = (String)session.getAttribute(UserSession.tenantId);
String subTenantId = (String)session.getAttribute(UserSession.subTenantId);


TenantEntity tenantEntity = new TenantEntity(){{ TenantEntity tenantEntity = new TenantEntity(){{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}; }};
return tenantEntity; return tenantEntity;
} }


+ 2
- 2
mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallController.java Просмотреть файл

@@ -33,7 +33,7 @@ public class WxMallController extends BaseController {
@SystemControllerLog(description = "商城-查询") @SystemControllerLog(description = "商城-查询")
public ResultData mallinfoExt() { public ResultData mallinfoExt() {
logger.debug("[" + getIpAddr() + "] WxMallController::mallinfoExt"); logger.debug("[" + getIpAddr() + "] WxMallController::mallinfoExt");
return new ResultData(wxMallService.getByTenantIdExt(getTenantId()));
return new ResultData(wxMallService.getByTenantInfoExt(getTenantInfo()));
} }


@ApiOperation("查询当前mall的信息") @ApiOperation("查询当前mall的信息")
@@ -41,7 +41,7 @@ public class WxMallController extends BaseController {
@SystemControllerLog(description = "商城-当前查询") @SystemControllerLog(description = "商城-当前查询")
public ResultData mallinfo() { public ResultData mallinfo() {
logger.debug("[" + getIpAddr() + "] WxMallController::mallinfo"); logger.debug("[" + getIpAddr() + "] WxMallController::mallinfo");
return new ResultData(wxMallService.getByTenantId(getTenantId()));
return new ResultData(wxMallService.getByTenantInfo(getTenantInfo()));
} }






+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantBUserController.java Просмотреть файл

@@ -22,7 +22,7 @@ public class WxMerchantBUserController extends BaseController {
@ApiOperation("手机号是否存在") @ApiOperation("手机号是否存在")
@GetMapping("/hasphone") @GetMapping("/hasphone")
@ApiImplicitParam(name = "phone", value = "phone", dataType = "String", paramType = "query", required = true) @ApiImplicitParam(name = "phone", value = "phone", dataType = "String", paramType = "query", required = true)
public ResultData hasphone(String phone) {
public ResultData hasPhone(String phone) {
logger.debug("[" + getIpAddr() + "] WxMerchantBUserController::hasphone"); logger.debug("[" + getIpAddr() + "] WxMerchantBUserController::hasphone");
boolean has = wxMerchantBUserService.hasPhone(getTenantInfo(), phone); boolean has = wxMerchantBUserService.hasPhone(getTenantInfo(), phone);
return new ResultData(Result.SUCCESS, "查询成功", has); return new ResultData(Result.SUCCESS, "查询成功", has);


+ 2
- 5
mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java Просмотреть файл

@@ -14,7 +14,7 @@ import com.iformall.domain.vo.WxMerchantTradeVo;
import com.iformall.domain.vo.WxMerchantVo; import com.iformall.domain.vo.WxMerchantVo;
import com.iformall.service.QrCodeService; import com.iformall.service.QrCodeService;
import com.iformall.service.WxMerchantService; import com.iformall.service.WxMerchantService;
import com.iformall.service.WxScoreRulesService;
import com.iformall.utils.Constant;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -40,8 +40,6 @@ public class WxMerchantController extends BaseController {
private WxMerchantService wxMerchantService; private WxMerchantService wxMerchantService;
@Autowired @Autowired
private QrCodeService qrCodeService; private QrCodeService qrCodeService;
@Autowired
private WxScoreRulesService wxScoreRulesService;


@UserDataRuleAnnotation("merchant_list") @UserDataRuleAnnotation("merchant_list")
@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@@ -124,12 +122,11 @@ public class WxMerchantController extends BaseController {
public ResultData addMerchant(@RequestBody WxMerchant wxMerchant) { public ResultData addMerchant(@RequestBody WxMerchant wxMerchant) {
logger.debug("[" + getIpAddr() + "] WxMerchantController::addMerchant"); logger.debug("[" + getIpAddr() + "] WxMerchantController::addMerchant");
wxMerchant.updateTenantInfo(getTenantInfo()); wxMerchant.updateTenantInfo(getTenantInfo());

ResultData resultData = wxMerchantService.addMerchant(wxMerchant, getUserId()); ResultData resultData = wxMerchantService.addMerchant(wxMerchant, getUserId());


if(resultData.code == 200){ if(resultData.code == 200){
//加载二维码图片 //加载二维码图片
String pageUrl = "pages/index/index";
String pageUrl = Constant.mainPageUrl;
String param = "t:md:"+resultData.data; String param = "t:md:"+resultData.data;
ResultData resultQrCode = qrCodeService.uploadQrcode(wxMerchant,1,pageUrl,param,0,"","","店铺详情"); ResultData resultQrCode = qrCodeService.uploadQrcode(wxMerchant,1,pageUrl,param,0,"","","店铺详情");
Map<String,String> map = (Map)resultQrCode.data; Map<String,String> map = (Map)resultQrCode.data;


+ 1
- 0
mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantShopController.java Просмотреть файл

@@ -32,6 +32,7 @@ public class WxMerchantShopController extends BaseController {
public ResultData queryShopList(@ModelAttribute WxMerchantShop wxMerchantShop, Integer pageNum, Integer pageSize) { public ResultData queryShopList(@ModelAttribute WxMerchantShop wxMerchantShop, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxMerchantShopController::queryShopList"); logger.debug("[" + getIpAddr() + "] WxMerchantShopController::queryShopList");
if (null == wxMerchantShop) wxMerchantShop = new WxMerchantShop(); if (null == wxMerchantShop) wxMerchantShop = new WxMerchantShop();
wxMerchantShop.updateTenantInfo(getTenantInfo());
final PageInfo<WxShop> page = wxMerchantShopService.queryShopList(wxMerchantShop, pageNum, pageSize); final PageInfo<WxShop> page = wxMerchantShopService.queryShopList(wxMerchantShop, pageNum, pageSize);
return new ResultData(page); return new ResultData(page);
} }


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/car/WxCarController.java Просмотреть файл

@@ -226,7 +226,7 @@ public class WxCarController extends BaseController {
} }
} }
// check End // check End
coupon.updateTenantInfo(getTenantInfo());
coupon.updateTenantInfo(tenantEntity);


ResultData resultData = wxCouponService.saveOrUpdate(coupon); ResultData resultData = wxCouponService.saveOrUpdate(coupon);
if (resultData.code != ResultData.SUCCESS){ if (resultData.code != ResultData.SUCCESS){


+ 3
- 2
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java Просмотреть файл

@@ -35,6 +35,8 @@ import java.util.Map;
@RestController @RestController
@RequestMapping("wxPropertyContract") @RequestMapping("wxPropertyContract")
public class WxPropertyContractController extends BaseController { public class WxPropertyContractController extends BaseController {
private Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired @Autowired
private WxPropertyContractService wxPropertyContractService; private WxPropertyContractService wxPropertyContractService;
@Autowired @Autowired
@@ -44,8 +46,6 @@ public class WxPropertyContractController extends BaseController {
@Autowired @Autowired
private WxRentPropertyContractService wxRentPropertyContractService; private WxRentPropertyContractService wxRentPropertyContractService;


private Logger logger = LoggerFactory.getLogger(WxPropertyContractController.class);

@UserDataRuleAnnotation("property_contract_list") @UserDataRuleAnnotation("property_contract_list")
@GetMapping("/list") @GetMapping("/list")
@ApiImplicitParams({ @ApiImplicitParams({
@@ -186,6 +186,7 @@ public class WxPropertyContractController extends BaseController {
@SystemControllerLog(description = "物业合同-终止合同") @SystemControllerLog(description = "物业合同-终止合同")
public ResultData endContract(@RequestBody WxPropertyContract wxPropertyContract) { public ResultData endContract(@RequestBody WxPropertyContract wxPropertyContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract"); logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract");
wxPropertyContract.updateTenantInfo(getTenantInfo());
wxPropertyContractService.endContract(wxPropertyContract); wxPropertyContractService.endContract(wxPropertyContract);
return new ResultData(); return new ResultData();
} }


+ 11
- 10
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java Просмотреть файл

@@ -173,23 +173,23 @@ public class WxRentContractController extends BaseController {


@PostMapping("update") @PostMapping("update")
@SystemControllerLog(description = "租赁合同-更新") @SystemControllerLog(description = "租赁合同-更新")
public ResultData update(@RequestBody WxRentContract wxRentContract) {
public ResultData update(@RequestBody WxRentContract rentContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::update"); logger.debug("[" + getIpAddr() + "] WxRentContractController::update");


if(StringUtils.isBlank(wxRentContract.getBusDiscountRatio())){
wxRentContract.setBusDiscountTime(new Integer(0));
if(StringUtils.isBlank(rentContract.getBusDiscountRatio())){
rentContract.setBusDiscountTime(new Integer(0));
} }
MallUserInfo user = getUser(); MallUserInfo user = getUser();
wxRentContract.updateTenantInfo(user);
wxRentContract.setAdjustPeriodHandle();
wxRentContract.setRentPriceHandle();
Date oldDate = wxRentContract.getRentalStartDate();
if(wxRentContract.getRentStartType()!=null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){
wxRentContract.setRentalStartDate(wxRentContract.getStartDate());
rentContract.updateTenantInfo(user);
rentContract.setAdjustPeriodHandle();
rentContract.setRentPriceHandle();
Date oldDate = rentContract.getRentalStartDate();
if(rentContract.getRentStartType()!=null && rentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){
rentContract.setRentalStartDate(rentContract.getStartDate());
} }
ResultData update = null; ResultData update = null;
try { try {
update = wxRentContractService.update(wxRentContract, user.getId(), user.getName(), EnumFromType.OTHER.getCode(), oldDate);
update = wxRentContractService.update(rentContract, user.getId(), user.getName(), EnumFromType.OTHER.getCode(), oldDate);
} catch (MallinkException e) { } catch (MallinkException e) {
return new ResultData(ErrorCode.SYS_SERVER_ERROR); return new ResultData(ErrorCode.SYS_SERVER_ERROR);
} }
@@ -387,6 +387,7 @@ public class WxRentContractController extends BaseController {
@SystemControllerLog(description = "租赁合同-终止合同") @SystemControllerLog(description = "租赁合同-终止合同")
public ResultData endContract(@RequestBody WxRentContract wxRentContract) { public ResultData endContract(@RequestBody WxRentContract wxRentContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract"); logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract");
wxRentContract.updateTenantInfo(getTenantInfo());
wxRentContractService.endContract(wxRentContract); wxRentContractService.endContract(wxRentContract);
return new ResultData(); return new ResultData();
} }


+ 5
- 5
mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxChartDataController.java Просмотреть файл

@@ -3,6 +3,7 @@ package com.iformall.controller.datatower;
import com.iformall.annotation.SystemControllerLog; import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.service.WxChartDataService; import com.iformall.service.WxChartDataService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -11,10 +12,7 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.web.bind.annotation.*;


import java.util.Map; import java.util.Map;


@@ -72,7 +70,9 @@ public class WxChartDataController extends BaseController {
public ResultData queryData(@RequestParam Map<String, String> params) { public ResultData queryData(@RequestParam Map<String, String> params) {
String chart = params.get("chart"); String chart = params.get("chart");
logger.info("[" + getIpAddr() + "] WxChartDataController::queryData chart: " + chart); logger.info("[" + getIpAddr() + "] WxChartDataController::queryData chart: " + chart);
params.put("tenantId",super.getTenantId());
TenantEntity tenantEntity = getTenantInfo();
params.put("tenantId",tenantEntity.getTenantId());
params.put("subTenantId", tenantEntity.getSubTenantId());
ResultData data = wxChartDataService.queryData(params); ResultData data = wxChartDataService.queryData(params);
logger.info("[" + getIpAddr() + "] WxChartDataController::queryData chart: " + chart + " end"); logger.info("[" + getIpAddr() + "] WxChartDataController::queryData chart: " + chart + " end");
return data; return data;


+ 1
- 0
mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java Просмотреть файл

@@ -57,6 +57,7 @@ public class WxMerchantTradeDailyController extends BaseController {
@SystemControllerLog(description = "商户解单-数据汇总") @SystemControllerLog(description = "商户解单-数据汇总")
public ResultData summary(@ModelAttribute WxMerchantTradeDaily wxMerchantTradeDaily) { public ResultData summary(@ModelAttribute WxMerchantTradeDaily wxMerchantTradeDaily) {
logger.debug("[" + getIpAddr() + "] WxMerchantTradeDailyController::summary"); logger.debug("[" + getIpAddr() + "] WxMerchantTradeDailyController::summary");
wxMerchantTradeDaily.updateTenantInfo(getTenantInfo());
return wxMerchantTradeDailyService.summary(wxMerchantTradeDaily); return wxMerchantTradeDailyService.summary(wxMerchantTradeDaily);
} }




+ 5
- 5
mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxUserStructureController.java Просмотреть файл

@@ -294,12 +294,12 @@ public class WxUserStructureController extends BaseController {
public ResultData findUserCount(Date startTime, Date endTime, Integer reportType) { public ResultData findUserCount(Date startTime, Date endTime, Integer reportType) {
logger.debug("[" + getIpAddr() + "] WxUserStructureController::findUserCount"); logger.debug("[" + getIpAddr() + "] WxUserStructureController::findUserCount");


TenantEntity tenantEntity = getTenantInfo();
//昨日同比 //昨日同比
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();


WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto();
dto.updateTenantInfo(getTenantInfo());
dto.updateTenantInfo(tenantEntity);
dto.setEndTime(new Date()); dto.setEndTime(new Date());
//微信用户数据 //微信用户数据
long wxTotalCount = wxCUserService.findCount(dto);//总量 long wxTotalCount = wxCUserService.findCount(dto);//总量
@@ -352,7 +352,7 @@ public class WxUserStructureController extends BaseController {
reportType = EnumUserCountReportType.DAY.getCode(); reportType = EnumUserCountReportType.DAY.getCode();
} }


dto.updateTenantInfo(getTenantInfo());
dto.updateTenantInfo(tenantEntity);
dto.setStartTime(startTime); dto.setStartTime(startTime);
dto.setEndTime(endTime); dto.setEndTime(endTime);
dto.setReportType(reportType); dto.setReportType(reportType);
@@ -424,7 +424,7 @@ public class WxUserStructureController extends BaseController {
&& wxCountList.get(0).getTotalCount() != null && wxCountList.get(0).getTotalCount() != null
&& wxCountList.get(0).getTotalCount() == 0) { && wxCountList.get(0).getTotalCount() == 0) {
WxCUserBasicInfoDto pdto = new WxCUserBasicInfoDto(); WxCUserBasicInfoDto pdto = new WxCUserBasicInfoDto();
pdto.updateTenantInfo(getTenantInfo());
pdto.updateTenantInfo(tenantEntity);
pdto.setEndTime(startTime); pdto.setEndTime(startTime);
wxCountList.get(0).setTotalCount(wxCUserService.findCount(pdto)); wxCountList.get(0).setTotalCount(wxCUserService.findCount(pdto));
} }
@@ -440,7 +440,7 @@ public class WxUserStructureController extends BaseController {
&& memCountList.get(0).getTotalCount() != null && memCountList.get(0).getTotalCount() != null
&& memCountList.get(0).getTotalCount() == 0) { && memCountList.get(0).getTotalCount() == 0) {
WxCUserBasicInfoDto pdto = new WxCUserBasicInfoDto(); WxCUserBasicInfoDto pdto = new WxCUserBasicInfoDto();
pdto.updateTenantInfo(getTenantInfo());
pdto.updateTenantInfo(tenantEntity);
pdto.setEndTime(startTime); pdto.setEndTime(startTime);
memCountList.get(0).setTotalCount(wxCUserBasicInfoService.findCount(pdto)); memCountList.get(0).setTotalCount(wxCUserBasicInfoService.findCount(pdto));
} }


+ 8
- 6
mallinkAdmin/src/main/java/com/iformall/controller/device/KwMeterController.java Просмотреть файл

@@ -149,14 +149,14 @@ public class KwMeterController extends BaseController {
} }




private KwBox addOrBind(KwBox kwBox) {
private KwBox addOrBind(KwBox kwBox, TenantEntity tenantEntity) {


KwBox record = new KwBox(); KwBox record = new KwBox();
record.setImei(kwBox.getImei()); record.setImei(kwBox.getImei());
record.setStatus(EnumBoxStatus.VALID.getCode()); record.setStatus(EnumBoxStatus.VALID.getCode());
List<KwBox> list = kwBoxService.findList(record); List<KwBox> list = kwBoxService.findList(record);
if (list.size() > 0) return list.get(0); if (list.size() > 0) return list.get(0);
kwBox.updateTenantInfo(getTenantInfo());
kwBox.updateTenantInfo(tenantEntity);
kwBox.setStatus(EnumBoxStatus.VALID.getCode()); kwBox.setStatus(EnumBoxStatus.VALID.getCode());
kwBoxService.saveOrUpdate(kwBox); kwBoxService.saveOrUpdate(kwBox);
return kwBox; return kwBox;
@@ -177,9 +177,9 @@ public class KwMeterController extends BaseController {
kwMerchantMeterService.saveOrUpdate(kwMerchantMeter); kwMerchantMeterService.saveOrUpdate(kwMerchantMeter);
} }


private void addOrUpdate(KwMeter kwMeter) {
private void addOrUpdate(KwMeter kwMeter, TenantEntity tenantEntity) {
KwMeter record = new KwMeter(); KwMeter record = new KwMeter();
record.updateTenantInfo(getTenantInfo());
record.updateTenantInfo(tenantEntity);
record.setAddress(kwMeter.getAddress()); record.setAddress(kwMeter.getAddress());
record.setStatus(EnumMeterStatus.VALID.getCode()); record.setStatus(EnumMeterStatus.VALID.getCode());
List<KwMeter> kwMeters = kwMeterService.findList(record); List<KwMeter> kwMeters = kwMeterService.findList(record);
@@ -196,6 +196,8 @@ public class KwMeterController extends BaseController {
return new ResultData(ErrorCode.EXCEL_IMPORT_ERROR); return new ResultData(ErrorCode.EXCEL_IMPORT_ERROR);
} }


TenantEntity tenantEntity = getTenantInfo();

try { try {
XSSFWorkbook workbook = new XSSFWorkbook(mFile.getInputStream()); XSSFWorkbook workbook = new XSSFWorkbook(mFile.getInputStream());
XSSFSheet sheet = workbook.getSheetAt(0); XSSFSheet sheet = workbook.getSheetAt(0);
@@ -234,7 +236,7 @@ public class KwMeterController extends BaseController {
String imei = c.getStringCellValue(); String imei = c.getStringCellValue();
KwBox kwBox = new KwBox(); KwBox kwBox = new KwBox();
kwBox.setImei(imei); kwBox.setImei(imei);
kwBox = addOrBind(kwBox);
kwBox = addOrBind(kwBox, tenantEntity);
kwMeter.setBindStatus(EnumMeterBindStatus.BIND.getCode()); kwMeter.setBindStatus(EnumMeterBindStatus.BIND.getCode());
kwMeter.setBoxId(kwBox.getId()); kwMeter.setBoxId(kwBox.getId());
} else { } else {
@@ -243,7 +245,7 @@ public class KwMeterController extends BaseController {
} }
kwMeter.setStatus(EnumMeterStatus.VALID.getCode()); kwMeter.setStatus(EnumMeterStatus.VALID.getCode());
kwMeter.setOnlineStatus(EnumMeterOnlineStatus.OFFLINE.getCode()); kwMeter.setOnlineStatus(EnumMeterOnlineStatus.OFFLINE.getCode());
addOrUpdate(kwMeter);
addOrUpdate(kwMeter, tenantEntity);


c = row.getCell(7,Row.MissingCellPolicy.RETURN_BLANK_AS_NULL); c = row.getCell(7,Row.MissingCellPolicy.RETURN_BLANK_AS_NULL);
if (c != null && c.getCellType() == CellType.STRING ) { if (c != null && c.getCellType() == CellType.STRING ) {


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/device/WxScreenAdController.java Просмотреть файл

@@ -44,8 +44,8 @@ public class WxScreenAdController extends BaseController {
@SystemControllerLog(description = "广告屏-广告列表") @SystemControllerLog(description = "广告屏-广告列表")
public Result list(@ModelAttribute WxScreenAd wxScreenAd, Integer pageNum, Integer pageSize) { public Result list(@ModelAttribute WxScreenAd wxScreenAd, Integer pageNum, Integer pageSize) {
if (wxScreenAd == null) wxScreenAd = new WxScreenAd(); if (wxScreenAd == null) wxScreenAd = new WxScreenAd();
wxScreenAd.updateTenantInfo(getTenantInfo());
wxScreenAd.setStatus(EnumScreenAdStatus.VALID.getCode()); wxScreenAd.setStatus(EnumScreenAdStatus.VALID.getCode());
wxScreenAd.updateTenantInfo(getTenantInfo());
return new ResultData(wxScreenAdService.listAsPage(wxScreenAd,pageNum,pageSize)); return new ResultData(wxScreenAdService.listAsPage(wxScreenAd,pageNum,pageSize));
} }




+ 2
- 1
mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponChannelController.java Просмотреть файл

@@ -17,6 +17,7 @@ import com.iformall.service.QrCodeService;
import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxCouponChannelService;
import com.iformall.service.WxCouponService; import com.iformall.service.WxCouponService;
import com.iformall.service.WxFlowService; import com.iformall.service.WxFlowService;
import com.iformall.utils.Constant;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@@ -80,7 +81,7 @@ public class WxCouponChannelController extends BaseController {
WxCouponChannel couponChannel = (WxCouponChannel)resultData.data; WxCouponChannel couponChannel = (WxCouponChannel)resultData.data;
//生成二维码 //生成二维码
if(couponChannel!=null){ if(couponChannel!=null){
String pageUrl = "pages/index/index";
String pageUrl = Constant.mainPageUrl;
String param = couponChannel.getWeappScene(); String param = couponChannel.getWeappScene();
ResultData resultDataQ = qrCodeService.uploadQrcode(couponChannel,1,pageUrl,param,0,"","","券"); ResultData resultDataQ = qrCodeService.uploadQrcode(couponChannel,1,pageUrl,param,0,"","","券");
Map<String,String> map = (Map)resultDataQ.data; Map<String,String> map = (Map)resultDataQ.data;


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/market/WxFloatingLayerController.java Просмотреть файл

@@ -52,8 +52,8 @@ public class WxFloatingLayerController extends BaseController {
@SystemControllerLog(description = "新增") @SystemControllerLog(description = "新增")
public ResultData add(@RequestBody WxFloatingLayer wxFloatingLayer) { public ResultData add(@RequestBody WxFloatingLayer wxFloatingLayer) {
logger.debug("[" + getIpAddr() + "] WxFloatingLayerController::add"); logger.debug("[" + getIpAddr() + "] WxFloatingLayerController::add");
wxFloatingLayer.setStatus(EnumFloatingLayerStatus.STATUS_THROW_IN.getCode());
wxFloatingLayer.updateTenantInfo(getTenantInfo()); wxFloatingLayer.updateTenantInfo(getTenantInfo());
wxFloatingLayer.setStatus(EnumFloatingLayerStatus.STATUS_THROW_IN.getCode());
try { try {
return wxFloatingLayerService.saveOrUpdate(wxFloatingLayer); return wxFloatingLayerService.saveOrUpdate(wxFloatingLayer);
} catch (MallinkException e) { } catch (MallinkException e) {


+ 2
- 2
mallinkAdmin/src/main/java/com/iformall/controller/market/WxQuestionController.java Просмотреть файл

@@ -36,9 +36,9 @@ public class WxQuestionController extends BaseController {
public Result getQuestionConfig() { public Result getQuestionConfig() {
logger.debug("[" + getIpAddr() + "] WxQuestionController::getQuestionConfig"); logger.debug("[" + getIpAddr() + "] WxQuestionController::getQuestionConfig");
WxQuestionConfig wxQuestionConfig = new WxQuestionConfig(); WxQuestionConfig wxQuestionConfig = new WxQuestionConfig();
WxQuestion wxQuestion = new WxQuestion();
wxQuestionConfig.updateTenantInfo(getTenantInfo()); wxQuestionConfig.updateTenantInfo(getTenantInfo());
wxQuestion.updateTenantInfo(getTenantInfo());
WxQuestion wxQuestion = new WxQuestion();
wxQuestion.updateTenantInfo(wxQuestionConfig);


List<WxQuestionConfig> list = wxQuestionService.findConfigList(wxQuestionConfig); List<WxQuestionConfig> list = wxQuestionService.findConfigList(wxQuestionConfig);
if (list.size() > 0) { if (list.size() > 0) {


+ 4
- 3
mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserBasicInfoController.java Просмотреть файл

@@ -175,17 +175,18 @@ public class WxCUserBasicInfoController extends BaseController {
@SystemControllerLog(description = "会员管理-更新") @SystemControllerLog(description = "会员管理-更新")
public ResultData update(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) { public ResultData update(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) {
logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::update"); logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::update");
TenantEntity tenantEntity = getTenantInfo();
WxCUserBasicInfo oldInfo = wxCUserBasicInfoService.getById(wxCUserBasicInfo.getId()); WxCUserBasicInfo oldInfo = wxCUserBasicInfoService.getById(wxCUserBasicInfo.getId());
if (!oldInfo.getPhone().equals(wxCUserBasicInfo.getPhone())) { if (!oldInfo.getPhone().equals(wxCUserBasicInfo.getPhone())) {
if (checkUniquePhone(wxCUserBasicInfo.getPhone(), getTenantInfo()) > 0) {
if (checkUniquePhone(wxCUserBasicInfo.getPhone(), tenantEntity) > 0) {
return new ResultData(ErrorCode.USER_PHONE_IS_FOUND.getCode(), "手机号已存在"); return new ResultData(ErrorCode.USER_PHONE_IS_FOUND.getCode(), "手机号已存在");
} }
} }
wxCUserBasicInfo.updateTenantInfo(getTenantInfo());
wxCUserBasicInfo.updateTenantInfo(tenantEntity);
if (StringUtils.isNotBlank(wxCUserBasicInfo.getTagIds())) { if (StringUtils.isNotBlank(wxCUserBasicInfo.getTagIds())) {
WxCUserTags record = new WxCUserTags(); WxCUserTags record = new WxCUserTags();
record.setUserId(oldInfo.getId()); record.setUserId(oldInfo.getId());
record.updateTenantInfo(getTenantInfo());
record.updateTenantInfo(tenantEntity);
PageInfo<WxCUserTags> page = wxCUserTagsService.listAsPage(record, 1, 1); PageInfo<WxCUserTags> page = wxCUserTagsService.listAsPage(record, 1, 1);
if (page.getSize() > 0) { if (page.getSize() > 0) {
WxCUserTags t = page.getList().get(0); WxCUserTags t = page.getList().get(0);


+ 10
- 4
mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCUserDataController.java Просмотреть файл

@@ -19,6 +19,7 @@ import com.iformall.mapper.WxCUserBasicInfoMapper;
import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCUserBasicInfoService;
import com.iformall.utils.DataUtil; import com.iformall.utils.DataUtil;
import com.iformall.utils.DateUtils; import com.iformall.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -58,8 +59,9 @@ public class WxCUserDataController extends BaseController {
@SystemControllerLog(description = "会员首页-报表数据-查询用户数量接口") @SystemControllerLog(description = "会员首页-报表数据-查询用户数量接口")
public ResultData findUserCountData() { public ResultData findUserCountData() {
logger.debug("[" + getIpAddr() + "] WxCUserDataController::findUserCountData"); logger.debug("[" + getIpAddr() + "] WxCUserDataController::findUserCountData");
TenantEntity tenantEntity = getTenantInfo();
WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto();
dto.updateTenantInfo(getTenantInfo());
dto.updateTenantInfo(tenantEntity);
long allCount = wxCUserService.findCount(dto);//总数 long allCount = wxCUserService.findCount(dto);//总数
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.HOUR_OF_DAY, 0);
@@ -139,7 +141,7 @@ public class WxCUserDataController extends BaseController {
//Date startDate = DateUtils.getDateFromString(startdate + " 00:00:00","yyyy-MM-dd HH:mm:ss").getTime(); //Date startDate = DateUtils.getDateFromString(startdate + " 00:00:00","yyyy-MM-dd HH:mm:ss").getTime();
//Date endDate = DateUtils.getDateFromString(systemTime + " 23:59:59","yyyy-MM-dd HH:mm:ss").getTime(); //Date endDate = DateUtils.getDateFromString(systemTime + " 23:59:59","yyyy-MM-dd HH:mm:ss").getTime();
WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto(); WxCUserBasicInfoDto wxCUserBasicInfoDto = new WxCUserBasicInfoDto();
wxCUserBasicInfoDto.updateTenantInfo(getTenantInfo());
wxCUserBasicInfoDto.updateTenantInfo(tenantEntity);
wxCUserBasicInfoDto.setStartTime(null); wxCUserBasicInfoDto.setStartTime(null);
wxCUserBasicInfoDto.setEndTime(null); wxCUserBasicInfoDto.setEndTime(null);
map.put("growCount", wxCUserBasicInfoService.findGrowUserCount(wxCUserBasicInfoDto)); map.put("growCount", wxCUserBasicInfoService.findGrowUserCount(wxCUserBasicInfoDto));
@@ -155,6 +157,7 @@ public class WxCUserDataController extends BaseController {
@SystemControllerLog(description = "会员首页-报表数据-查询用户活跃量") @SystemControllerLog(description = "会员首页-报表数据-查询用户活跃量")
public ResultData findUserVisitData() { public ResultData findUserVisitData() {
logger.debug("[" + getIpAddr() + "] WxCUserDataController::findUserVisitData"); logger.debug("[" + getIpAddr() + "] WxCUserDataController::findUserVisitData");
TenantEntity tenantEntity = getTenantInfo();
HashMap<String, Object> params = new HashMap<>(); HashMap<String, Object> params = new HashMap<>();
Calendar c = Calendar.getInstance(); Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_YEAR, -1); c.add(Calendar.DAY_OF_YEAR, -1);
@@ -166,9 +169,12 @@ public class WxCUserDataController extends BaseController {
Date startTime = c.getTime(); Date startTime = c.getTime();
params.put("startTime", startTime); params.put("startTime", startTime);
params.put("endTime", endTime); params.put("endTime", endTime);
params.put("tenantId", getTenantId());
params.put("tenantId", tenantEntity.getTenantId());
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
params.put("subTenantId", tenantEntity.getSubTenantId());
}
MarkingCouponDataReportDto markingCouponDataReportDto = new MarkingCouponDataReportDto(); MarkingCouponDataReportDto markingCouponDataReportDto = new MarkingCouponDataReportDto();
markingCouponDataReportDto.updateTenantInfo(getTenantInfo());
markingCouponDataReportDto.updateTenantInfo(tenantEntity);
markingCouponDataReportDto.setStartTime(startTime); markingCouponDataReportDto.setStartTime(startTime);
markingCouponDataReportDto.setEndTime(endTime); markingCouponDataReportDto.setEndTime(endTime);
List<TouchUsersReportVo> list = wxUserVisitService.touchUsersReportList(markingCouponDataReportDto); List<TouchUsersReportVo> list = wxUserVisitService.touchUsersReportList(markingCouponDataReportDto);


+ 3
- 2
mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java Просмотреть файл

@@ -28,11 +28,11 @@ import java.util.Objects;
@RestController @RestController
@RequestMapping("wxCreditHistory") @RequestMapping("wxCreditHistory")
public class WxCreditHistoryController extends BaseController { public class WxCreditHistoryController extends BaseController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired @Autowired
private WxCreditHistoryService wxCreditHistoryService; private WxCreditHistoryService wxCreditHistoryService;


private final Logger logger = LoggerFactory.getLogger(this.getClass());

@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@GetMapping("list") @GetMapping("list")
@ApiImplicitParams({ @ApiImplicitParams({
@@ -42,6 +42,7 @@ public class WxCreditHistoryController extends BaseController {
public ResultData list(@ModelAttribute WxCreditHistory wxCreditHistory, Integer pageNum, Integer pageSize) { public ResultData list(@ModelAttribute WxCreditHistory wxCreditHistory, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::list"); logger.debug("[" + getIpAddr() + "] WxCreditHistoryController::list");
if (null == wxCreditHistory) wxCreditHistory = new WxCreditHistory(); if (null == wxCreditHistory) wxCreditHistory = new WxCreditHistory();
wxCreditHistory.updateTenantInfo(getTenantInfo());
final PageInfo<WxCreditHistoryVo> page = wxCreditHistoryService.listAsPageMore(wxCreditHistory, pageNum, pageSize); final PageInfo<WxCreditHistoryVo> page = wxCreditHistoryService.listAsPageMore(wxCreditHistory, pageNum, pageSize);
return new ResultData(page); return new ResultData(page);
} }


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/mem/WxScoreRulesController.java Просмотреть файл

@@ -57,7 +57,7 @@ public class WxScoreRulesController extends BaseController {
@ApiOperation("更新积分开关状态") @ApiOperation("更新积分开关状态")
@PostMapping("updateCreditLocked") @PostMapping("updateCreditLocked")
@SystemControllerLog(description = "更新积分开关状态") @SystemControllerLog(description = "更新积分开关状态")
public ResultData 更新积分开关状态(@RequestBody WxScoreRules wxScoreRules) {
public ResultData updateCreditLocked(@RequestBody WxScoreRules wxScoreRules) {
logger.debug("[" + getIpAddr() + "] WxScoreRulesController::updateCreditLocked"); logger.debug("[" + getIpAddr() + "] WxScoreRulesController::updateCreditLocked");
if (null == wxScoreRules.getId()) { if (null == wxScoreRules.getId()) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "id不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "id不能为空");


+ 1
- 0
mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgController.java Просмотреть файл

@@ -6,6 +6,7 @@ import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.po.msg.WxMsg; import com.iformall.domain.po.msg.WxMsg;
import com.iformall.service.WxMsgService; import com.iformall.service.WxMsgService;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java Просмотреть файл

@@ -81,7 +81,7 @@ public class WxMsgModelController extends BaseController {
@ApiOperation("获取所有数据") @ApiOperation("获取所有数据")
@GetMapping("getmodellist") @GetMapping("getmodellist")
@SystemControllerLog(description = "短信模板-获取所有数据") @SystemControllerLog(description = "短信模板-获取所有数据")
public ResultData getmodellist() {
public ResultData getModelList() {
logger.debug("[" + getIpAddr() + "] WxMsgModelController::getmodellist"); logger.debug("[" + getIpAddr() + "] WxMsgModelController::getmodellist");
return wxMsgModelService.getModelList(getTenantInfo()); return wxMsgModelService.getModelList(getTenantInfo());
} }


+ 2
- 2
mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgSignatureController.java Просмотреть файл

@@ -82,8 +82,8 @@ public class WxMsgSignatureController extends BaseController {
@ApiOperation("获取所有数据") @ApiOperation("获取所有数据")
@GetMapping("getsignaturelist") @GetMapping("getsignaturelist")
@SystemControllerLog(description = "消息签名-获取所有") @SystemControllerLog(description = "消息签名-获取所有")
public ResultData getmodellist() {
logger.debug("[" + getIpAddr() + "] WxMsgSignatureController::getmodellist");
public ResultData getsignaturelist() {
logger.debug("[" + getIpAddr() + "] WxMsgSignatureController::getsignaturelist");
return wxMsgSignatureService.getSignatureList(getTenantInfo()); return wxMsgSignatureService.getSignatureList(getTenantInfo());
} }




+ 6
- 2
mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgValidationcodeController.java Просмотреть файл

@@ -74,14 +74,16 @@ public class WxMsgValidationcodeController extends BaseController {
@GetMapping("sendvalidationcode") @GetMapping("sendvalidationcode")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "tenantId", value = "租户ID", dataType = "String", paramType = "query"), @ApiImplicitParam(name = "tenantId", value = "租户ID", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "subTenantId", value = "子租户ID", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true),
@ApiImplicitParam(name = "type", value = "场景", dataType = "Integer", paramType = "query", required = true), @ApiImplicitParam(name = "type", value = "场景", dataType = "Integer", paramType = "query", required = true),
@ApiImplicitParam(name = "appid", value = "appid", dataType = "String", paramType = "query", required = true)}) @ApiImplicitParam(name = "appid", value = "appid", dataType = "String", paramType = "query", required = true)})
public ResultData sendvalidationcode(String tenantId, String phone, Integer type, String appid) {
public ResultData sendvalidationcode(String tenantId, String subTenantId, String phone, Integer type, String appid) {
logger.debug("[" + getIpAddr() + "] WxMsgValidationcodeController::sendvalidationcode"); logger.debug("[" + getIpAddr() + "] WxMsgValidationcodeController::sendvalidationcode");
WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode();
wxMsgValidationcode.updateTenantInfo(new TenantEntity(){{ wxMsgValidationcode.updateTenantInfo(new TenantEntity(){{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}); }});
wxMsgValidationcode.setPhone(phone); wxMsgValidationcode.setPhone(phone);
wxMsgValidationcode.setType(type); wxMsgValidationcode.setType(type);
@@ -92,15 +94,17 @@ public class WxMsgValidationcodeController extends BaseController {
@GetMapping("hasvalidationcode") @GetMapping("hasvalidationcode")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "tenantId", value = "租户ID", dataType = "String", paramType = "query"), @ApiImplicitParam(name = "tenantId", value = "租户ID", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "subTenantId", value = "子租户ID", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true),
@ApiImplicitParam(name = "type", value = "场景", dataType = "Integer", paramType = "query", required = true), @ApiImplicitParam(name = "type", value = "场景", dataType = "Integer", paramType = "query", required = true),
@ApiImplicitParam(name = "code", value = "验证码", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "code", value = "验证码", dataType = "String", paramType = "query", required = true),
@ApiImplicitParam(name = "appid", value = "appid", dataType = "String", paramType = "query", required = true)}) @ApiImplicitParam(name = "appid", value = "appid", dataType = "String", paramType = "query", required = true)})
public ResultData hasvalidationcode(String tenantId, String phone, Integer type, String code, String appid) {
public ResultData hasvalidationcode(String tenantId, String subTenantId, String phone, Integer type, String code, String appid) {
logger.debug("[" + getIpAddr() + "] WxMsgValidationcodeController::hasvalidationcode"); logger.debug("[" + getIpAddr() + "] WxMsgValidationcodeController::hasvalidationcode");
WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode();
wxMsgValidationcode.updateTenantInfo(new TenantEntity(){{ wxMsgValidationcode.updateTenantInfo(new TenantEntity(){{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}); }});
wxMsgValidationcode.setPhone(phone); wxMsgValidationcode.setPhone(phone);
wxMsgValidationcode.setType(type); wxMsgValidationcode.setType(type);


+ 3
- 0
mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java Просмотреть файл

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.iformall.annotation.SystemControllerLog; import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.WxPayAccountBill;
import com.iformall.domain.vo.WxBillAll; import com.iformall.domain.vo.WxBillAll;
import com.iformall.domain.vo.WxBillExcelTemplate; import com.iformall.domain.vo.WxBillExcelTemplate;
import com.iformall.service.WxBillAllService; import com.iformall.service.WxBillAllService;
@@ -53,6 +54,8 @@ public class WxBillAllController extends BaseController {
@SystemControllerLog(description = "账单总览-列表") @SystemControllerLog(description = "账单总览-列表")
public ResultData list(@ModelAttribute WxBillAll wxBillAll, Integer pageNum, Integer pageSize) { public ResultData list(@ModelAttribute WxBillAll wxBillAll, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxBillAllController::list"); logger.debug("[" + getIpAddr() + "] WxBillAllController::list");
wxBillAll.updateTenantInfo(getTenantInfo());
WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(wxBillAll);
if (null == wxBillAll) { if (null == wxBillAll) {
wxBillAll = new WxBillAll(); wxBillAll = new WxBillAll();
} }


+ 1
- 0
mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillDailyController.java Просмотреть файл

@@ -85,6 +85,7 @@ public class WxBillDailyController extends BaseController {
public ResultData update(@RequestBody WxBillDaily wxBillDaily) { public ResultData update(@RequestBody WxBillDaily wxBillDaily) {
logger.debug("[" + getIpAddr() + "] WxBillDailyController::update"); logger.debug("[" + getIpAddr() + "] WxBillDailyController::update");
MallUserInfo user = getUser(); MallUserInfo user = getUser();
wxBillDaily.updateTenantInfo(user);
wxBillDaily.setUserId(user.getId()); wxBillDaily.setUserId(user.getId());
return wxBillDailyService.saveOrUpdate(wxBillDaily, user); return wxBillDailyService.saveOrUpdate(wxBillDaily, user);
} }


+ 1
- 0
mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java Просмотреть файл

@@ -60,6 +60,7 @@ public class WxBillOtherController extends BaseController {
public ResultData update(@RequestBody WxBillOther wxBillOther) { public ResultData update(@RequestBody WxBillOther wxBillOther) {
logger.debug("[" + getIpAddr() + "] WxBillOtherController::update"); logger.debug("[" + getIpAddr() + "] WxBillOtherController::update");
MallUserInfo user = getUser(); MallUserInfo user = getUser();
wxBillOther.updateTenantInfo(user);
wxBillOther.setUserId(user.getId()); wxBillOther.setUserId(user.getId());
return wxBillOtherService.saveOrUpdate(wxBillOther, user); return wxBillOtherService.saveOrUpdate(wxBillOther, user);
} }


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java Просмотреть файл

@@ -17,7 +17,6 @@ import org.springframework.web.bind.annotation.*;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Map;


/** /**
* @author gongbiao * @author gongbiao
@@ -60,6 +59,7 @@ public class WxBillOtherDepositController extends BaseController {
public ResultData update(@RequestBody WxBillOtherDeposit wxBillOtherDeposit) { public ResultData update(@RequestBody WxBillOtherDeposit wxBillOtherDeposit) {
logger.debug("[" + getIpAddr() + "] WxBillOtherDepositController::update"); logger.debug("[" + getIpAddr() + "] WxBillOtherDepositController::update");
MallUserInfo user = getUser(); MallUserInfo user = getUser();
wxBillOtherDeposit.updateTenantInfo(user);
wxBillOtherDeposit.setUserId(user.getId()); wxBillOtherDeposit.setUserId(user.getId());
return wxBillOtherDepositService.saveOrUpdate(wxBillOtherDeposit, user); return wxBillOtherDepositService.saveOrUpdate(wxBillOtherDeposit, user);
} }


+ 45
- 3
mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java Просмотреть файл

@@ -158,6 +158,14 @@ public class HomeController extends BaseController {
logger.error("mall未启用"); logger.error("mall未启用");
return new ResultData(Result.ERROR, "mall未启用"); return new ResultData(Result.ERROR, "mall未启用");
} }
Map map = new HashMap();
if (mall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) &&
StringUtils.isBlank(info.getSubTenantId())) {
// 集团用户获取子商场
List<WxMall> mallList = mallService.getSubByParentTenantId(info.getTenantId());
map.put("subMalls", JSON.toJSONString(mallList));
map.put("group", EnumGroupSupport.SUPPORT.getCode());
}


try { try {
String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); String cookieName = URLEncoder.encode(info.getUsername(), "utf-8");
@@ -166,7 +174,6 @@ public class HomeController extends BaseController {
unameCookie.setMaxAge(3600); unameCookie.setMaxAge(3600);
response.addCookie(unameCookie); response.addCookie(unameCookie);


Map map = new HashMap();
map.put("username", info.getUsername()); map.put("username", info.getUsername());
map.put("withWechat", info.getWithWechat()); map.put("withWechat", info.getWithWechat());
data.data = map; data.data = map;
@@ -185,6 +192,31 @@ public class HomeController extends BaseController {
return isInMobile; return isInMobile;
} }


@PostMapping("/selectMall")
@ApiOperation(value = "用户选中子广场及父广场", notes = "{\"tenantId\":\"string\",\"subTenantId\":\"string\"}")
public ResultData selectMall(@RequestBody Map<String, String> map) {
logger.debug(map.toString());

String tenantId = map.get("tenantId");
String subTenantId = map.get("subTenantId");

if (StringUtils.isBlank(tenantId)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "tenantId不能为空");
}

MallUserInfo userInfo = getUser();
if (userInfo.getTenantId().equalsIgnoreCase(tenantId)) {
Session session = SecurityUtils.getSubject().getSession();
session.setAttribute(UserSession.tenantId, tenantId);
if (StringUtils.isNotBlank(subTenantId)) {
session.setAttribute(UserSession.subTenantId, subTenantId);
} else {
session.setAttribute(UserSession.subTenantId, null);
}
}
return new ResultData();
}

@ApiOperation("B端登录") @ApiOperation("B端登录")
@PostMapping("/bHidLogin") @PostMapping("/bHidLogin")
public ResultData bLogin(@RequestBody MallUserInfo user, HttpServletResponse response) { public ResultData bLogin(@RequestBody MallUserInfo user, HttpServletResponse response) {
@@ -255,6 +287,12 @@ public class HomeController extends BaseController {
logger.error("mall未启用"); logger.error("mall未启用");
return new ResultData(Result.ERROR, "mall未启用"); return new ResultData(Result.ERROR, "mall未启用");
} }
Map map = new HashMap();
if (mall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode())) {
List<WxMall> mallList = mallService.getSubByParentTenantId(mall.getTenantId());
map.put("subMalls", JSON.toJSONString(mallList));
map.put("group", EnumGroupSupport.SUPPORT.getCode());
}
try { try {
String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); String cookieName = URLEncoder.encode(info.getUsername(), "utf-8");
Cookie unameCookie = new Cookie("uname", cookieName); Cookie unameCookie = new Cookie("uname", cookieName);
@@ -262,7 +300,6 @@ public class HomeController extends BaseController {
unameCookie.setMaxAge(3600); unameCookie.setMaxAge(3600);
response.addCookie(unameCookie); response.addCookie(unameCookie);


Map map = new HashMap();
map.put("username", info.getUsername()); map.put("username", info.getUsername());
map.put("withWechat", info.getWithWechat()); map.put("withWechat", info.getWithWechat());
data.data = map; data.data = map;
@@ -355,6 +392,12 @@ public class HomeController extends BaseController {
logger.error("mall未启用"); logger.error("mall未启用");
return new ResultData(Result.ERROR, "mall未启用"); return new ResultData(Result.ERROR, "mall未启用");
} }
Map map = new HashMap();
if (mall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode())) {
List<WxMall> mallList = mallService.getSubByParentTenantId(mall.getTenantId());
map.put("subMalls", JSON.toJSONString(mallList));
map.put("group", EnumGroupSupport.SUPPORT.getCode());
}


String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); String cookieName = URLEncoder.encode(info.getUsername(), "utf-8");
Cookie unameCookie = new Cookie("uname", cookieName); Cookie unameCookie = new Cookie("uname", cookieName);
@@ -362,7 +405,6 @@ public class HomeController extends BaseController {
unameCookie.setMaxAge(3600); unameCookie.setMaxAge(3600);
response.addCookie(unameCookie); response.addCookie(unameCookie);


Map map = new HashMap();
map.put("username", info.getUsername()); map.put("username", info.getUsername());
map.put("withWechat", info.getWithWechat()); map.put("withWechat", info.getWithWechat());




+ 8
- 2
mallinkAdmin/src/main/java/com/iformall/controller/sys/SysMenuController.java Просмотреть файл

@@ -58,7 +58,7 @@ public class SysMenuController extends BaseController {
logger.debug("[" + getIpAddr() + "] MallPermissionController::nav"); logger.debug("[" + getIpAddr() + "] MallPermissionController::nav");
MallUserInfo user = getUser(); MallUserInfo user = getUser();
List<MallPermission> menuList = mallPermissionService.getUserMenuList(user, 0L, true); List<MallPermission> menuList = mallPermissionService.getUserMenuList(user, 0L, true);
Set<String> permissions = mallUserInfoService.getUserPermissions(user);
Set<String> permissions = mallUserInfoService.getUserPermissions(user, true);
Map map = new HashMap<>(); Map map = new HashMap<>();
map.put("menuList", menuList); map.put("menuList", menuList);
map.put("permissions", permissions); map.put("permissions", permissions);
@@ -72,8 +72,14 @@ public class SysMenuController extends BaseController {
public ResultData getList() { public ResultData getList() {
logger.debug("[" + getIpAddr() + "] MallPermissionController::list"); logger.debug("[" + getIpAddr() + "] MallPermissionController::list");
MallUserInfo user = getUser(); MallUserInfo user = getUser();
if (user.checkGroupAdmin()) {
TenantEntity tenantEntity = getTenantInfo();
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
user.setSubTenantId(tenantEntity.getSubTenantId());
}
}
List<MallPermission> menuList = mallPermissionService.getUserMenuList(user, 0L, false); List<MallPermission> menuList = mallPermissionService.getUserMenuList(user, 0L, false);
Set<String> permissions = mallUserInfoService.getUserPermissions(user);
Set<String> permissions = mallUserInfoService.getUserPermissions(user, false);
Map map = new HashMap<>(); Map map = new HashMap<>();
map.put("menuList", menuList); map.put("menuList", menuList);
map.put("permissions", permissions); map.put("permissions", permissions);


+ 6
- 2
mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java Просмотреть файл

@@ -38,7 +38,11 @@ public class UploadController extends BaseController {
private QrCodeService qrCodeService; private QrCodeService qrCodeService;


private String getFileName(TenantEntity tenantEntity, String fileName) { private String getFileName(TenantEntity tenantEntity, String fileName) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
if (StringUtils.isBlank(tenantEntity.getSubTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getSubTenantId() + "/" +fileName;
}
return fileName; return fileName;
} }


@@ -71,7 +75,7 @@ public class UploadController extends BaseController {
} }


System.out.println(fileName); System.out.println(fileName);
ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, getTenantInfo());
ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity);
return data; return data;
} }




+ 68
- 0
mallinkAdmin/src/main/java/com/iformall/controller/sys/WechatLoginController.java Просмотреть файл

@@ -8,12 +8,15 @@ import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.MallUserAction; import com.iformall.domain.po.MallUserAction;
import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.WxMall;
import com.iformall.domain.vo.MallUserInfoVo; import com.iformall.domain.vo.MallUserInfoVo;
import com.iformall.enums.EnumGroupSupport;
import com.iformall.enums.EnumMallUserAction; import com.iformall.enums.EnumMallUserAction;
import com.iformall.enums.EnumUserAdmin; import com.iformall.enums.EnumUserAdmin;
import com.iformall.service.MallUserActionService; import com.iformall.service.MallUserActionService;
import com.iformall.service.MallUserInfoService; import com.iformall.service.MallUserInfoService;
import com.iformall.service.MallUserRoleService; import com.iformall.service.MallUserRoleService;
import com.iformall.service.WxMallService;
import com.iformall.shiro.UserSession; import com.iformall.shiro.UserSession;
import com.iformall.shiro.UseriFormallToken; import com.iformall.shiro.UseriFormallToken;
import com.iformall.utils.TOTP; import com.iformall.utils.TOTP;
@@ -69,6 +72,9 @@ public class WechatLoginController extends BaseController {
@Autowired @Autowired
private MallUserActionService mallUserActionService; private MallUserActionService mallUserActionService;


@Autowired
private WxMallService mallService;

@Autowired @Autowired
@Qualifier("openRedisTemplate") @Qualifier("openRedisTemplate")
RedisTemplate<String, String> openRedisTemplate; RedisTemplate<String, String> openRedisTemplate;
@@ -149,6 +155,35 @@ public class WechatLoginController extends BaseController {
if(menus != null) { if(menus != null) {
info.setMenus(menus); info.setMenus(menus);
} }
WxMall mall = mallService.getByTenantInfo(info);
if (mall == null) {
ret.put("code", Result.ERROR);
ret.put("message", "未配置相应的mall");
log.info("用户登录失败-4,返回登录");
try {
String errCode = URLEncoder.encode(JSON.toJSONString(ret), "utf-8");
response.sendRedirect("https://" + host + "/#/login?errcode=" + errCode);
} catch (Exception e) {
log.error(e.getMessage());
}
}
if (!mall.isValid()) {
ret.put("code", Result.ERROR);
ret.put("message", "mall未启用");
log.info("用户登录失败-5,返回登录");
try {
String errCode = URLEncoder.encode(JSON.toJSONString(ret), "utf-8");
response.sendRedirect("https://" + host + "/#/login?errcode=" + errCode);
} catch (Exception e) {
log.error(e.getMessage());
}
}
Map map = new HashMap();
if (mall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode())) {
List<WxMall> mallList = mallService.getSubByParentTenantId(mall.getTenantId());
map.put("subMalls", JSON.toJSONString(mallList));
map.put("group", EnumGroupSupport.SUPPORT.getCode());
}
try { try {
String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); String cookieName = URLEncoder.encode(info.getUsername(), "utf-8");
Cookie unameCookie = new Cookie("uname", cookieName); Cookie unameCookie = new Cookie("uname", cookieName);
@@ -284,6 +319,36 @@ public class WechatLoginController extends BaseController {
if(menus != null) { if(menus != null) {
info.setMenus(menus); info.setMenus(menus);
} }
Map<String, Object> ret = new HashMap<>();
WxMall mall = mallService.getByTenantInfo(info);
if (mall == null) {
ret.put("code", Result.ERROR);
ret.put("message", "未配置相应的mall");
log.info("用户登录失败-4,返回登录");
try {
String errCode = URLEncoder.encode(JSON.toJSONString(ret), "utf-8");
response.sendRedirect("https://" + host + "/#/login?errcode=" + errCode);
} catch (Exception e) {
log.error(e.getMessage());
}
}
if (!mall.isValid()) {
ret.put("code", Result.ERROR);
ret.put("message", "mall未启用");
log.info("用户登录失败-5,返回登录");
try {
String errCode = URLEncoder.encode(JSON.toJSONString(ret), "utf-8");
response.sendRedirect("https://" + host + "/#/login?errcode=" + errCode);
} catch (Exception e) {
log.error(e.getMessage());
}
}
Map map = new HashMap();
if (mall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode())) {
List<WxMall> mallList = mallService.getSubByParentTenantId(mall.getTenantId());
map.put("subMalls", JSON.toJSONString(mallList));
map.put("group", EnumGroupSupport.SUPPORT.getCode());
}
// 登录cookie // 登录cookie
String cookieName = URLEncoder.encode(info.getUsername(), "utf-8"); String cookieName = URLEncoder.encode(info.getUsername(), "utf-8");
Cookie unameCookie = new Cookie("uname", cookieName); Cookie unameCookie = new Cookie("uname", cookieName);
@@ -380,6 +445,9 @@ public class WechatLoginController extends BaseController {
if(StringUtils.isBlank(userInfo.getTenantId())) { if(StringUtils.isBlank(userInfo.getTenantId())) {
userInfo.setTenantId(user.getTenantId()); userInfo.setTenantId(user.getTenantId());
} }
if(StringUtils.isBlank(userInfo.getSubTenantId())) {
userInfo.setSubTenantId(user.getSubTenantId());
}
if(userInfo.getId() == null && userInfo.getUsername() == null) { if(userInfo.getId() == null && userInfo.getUsername() == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
} }


+ 5
- 1
mallinkAdmin/src/main/java/com/iformall/shiro/MyShiroRealm.java Просмотреть файл

@@ -5,6 +5,7 @@ import javax.annotation.Resource;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.enums.EnumMallUserStatus; import com.iformall.enums.EnumMallUserStatus;
import com.iformall.service.MallUserInfoService; import com.iformall.service.MallUserInfoService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.*; import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.AuthorizationInfo;
@@ -30,7 +31,7 @@ public class MyShiroRealm extends AuthorizingRealm {
@Override @Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
MallUserInfo user= (MallUserInfo) SecurityUtils.getSubject().getPrincipal(); MallUserInfo user= (MallUserInfo) SecurityUtils.getSubject().getPrincipal();
Set<String> permissionSet = userService.getUserPermissions(user);
Set<String> permissionSet = userService.getUserPermissions(user, true);
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.setStringPermissions(permissionSet); info.setStringPermissions(permissionSet);
return info; return info;
@@ -65,6 +66,9 @@ public class MyShiroRealm extends AuthorizingRealm {
session.setAttribute(UserSession.userInfo, user); session.setAttribute(UserSession.userInfo, user);
session.setAttribute(UserSession.userId, user.getId()); session.setAttribute(UserSession.userId, user.getId());
session.setAttribute(UserSession.tenantId, user.getTenantId()); session.setAttribute(UserSession.tenantId, user.getTenantId());
if (StringUtils.isNotBlank(user.getSubTenantId())) {
session.setAttribute(UserSession.subTenantId, user.getSubTenantId());
}
return authenticationInfo; return authenticationInfo;
} }




+ 2
- 0
mallinkAdmin/src/main/java/com/iformall/shiro/UserSession.java Просмотреть файл

@@ -8,4 +8,6 @@ public class UserSession {


public static String tenantId ="TENANT_ID"; public static String tenantId ="TENANT_ID";


public static String subTenantId ="SUB_TENANT_ID";

} }

+ 76
- 1
mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java Просмотреть файл

@@ -22,8 +22,22 @@ public class TenantInfoImpl implements TenantInfo {
return tenantId; return tenantId;
} }


@Override
public String getSubTenantId() {
String subTenantId = null;
try {
subTenantId = (String) SecurityUtils.getSubject().getSession().getAttribute(UserSession.subTenantId);
} catch (InvalidSessionException e) {
logger.error("InvalidSession: " + e.getMessage());
}
return subTenantId;
}

@Override @Override
public boolean doTableFilter(String tableName) { public boolean doTableFilter(String tableName) {
if ("wx_mall".equals(tableName)) {
return true;
}
if ("mall_permission".equals(tableName)) { if ("mall_permission".equals(tableName)) {
return true; return true;
} }
@@ -78,8 +92,69 @@ public class TenantInfoImpl implements TenantInfo {
if ("wx_data_rule_target".equals(tableName)) { if ("wx_data_rule_target".equals(tableName)) {
return true; return true;
} }
if ("wx_logic_permission".equals(tableName)) {
return true;
}
return false;
}


if ("wx_logic_permission".equals(tableName)) {
@Override
public boolean doTableFilterSub(String tableName) {
if ("wx_mall".equals(tableName)) {
return true;
}
if ("wx_appinfo".equals(tableName)) {
return true;
}
if ("wx_authorizer_info".equals(tableName)) {
return true;
}
if ("wx_c_user".equals(tableName)) {
return true;
}
if ("wx_c_user_basic_info".equals(tableName)) {
return true;
}
if ("wx_c_user_car".equals(tableName)) {
return true;
}
if ("wx_c_user_from_b".equals(tableName)) {
return true;
}
if ("wx_c_user_tags".equals(tableName)) {
return true;
}
if ("wx_question".equals(tableName)) {
return true;
}
if ("wx_question_config".equals(tableName)) {
return true;
}
if ("wx_question_log".equals(tableName)) {
return true;
}
if ("wx_user_visit".equals(tableName)) {
return true;
}
if ("wx_level_config".equals(tableName)) {
return true;
}
if ("wx_score_rules".equals(tableName)) {
return true;
}
if ("view_coupon_data".equals(tableName)) {
return true;
}
if ("view_touch_user".equals(tableName)) {
return true;
}
if ("wx_weapp_audit_status".equals(tableName)) {
return true;
}
if ("wx_weapp_code_status".equals(tableName)) {
return true;
}
if ("wx_weapp_release_status".equals(tableName)) {
return true; return true;
} }
return false; return false;


+ 9
- 3
mallinkAdmin/src/main/java/com/iformall/ueditor/upload/Uploader.java Просмотреть файл

@@ -42,7 +42,11 @@ public class Uploader {
private AmazonS3 s3 = null; private AmazonS3 s3 = null;


private String getFileName(TenantEntity tenantEntity, String fileName) { private String getFileName(TenantEntity tenantEntity, String fileName) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
if (StringUtils.isBlank(tenantEntity.getSubTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getSubTenantId() + "/" + fileName;
}
return fileName; return fileName;
} }


@@ -77,9 +81,11 @@ public class Uploader {
MultipartFile multiReq= ((MultipartHttpServletRequest) this.request).getFile("upfile"); MultipartFile multiReq= ((MultipartHttpServletRequest) this.request).getFile("upfile");
Session session = SecurityUtils.getSubject().getSession(); Session session = SecurityUtils.getSubject().getSession();
String tenantId = (String)session.getAttribute(UserSession.tenantId); String tenantId = (String)session.getAttribute(UserSession.tenantId);
String subTenantId = (String)session.getAttribute(UserSession.subTenantId);
TenantEntity tenantEntity = new TenantEntity(){{ TenantEntity tenantEntity = new TenantEntity(){{
setTenantId(tenantId);
}};
setTenantId(tenantId);
setSubTenantId(subTenantId);
}};
if (StringUtils.isBlank(tenantId)) { if (StringUtils.isBlank(tenantId)) {
logger.error("TENANT is null"); logger.error("TENANT is null");
} }


+ 1
- 0
mallinkBApi/src/main/java/com/iformall/config/MyBatisConfiguration.java Просмотреть файл

@@ -14,6 +14,7 @@ public class MyBatisConfiguration {
MultiTenancy multiTenancy = new MultiTenancy(); MultiTenancy multiTenancy = new MultiTenancy();
Properties properties = new Properties(); Properties properties = new Properties();
properties.setProperty("tenantIdColumn", "tenant_id"); properties.setProperty("tenantIdColumn", "tenant_id");
properties.setProperty("subTenantIdColumn", "sub_tenant_id");
properties.setProperty("dialect", "mysql"); properties.setProperty("dialect", "mysql");
properties.setProperty("tenantInfo", "com.iformall.tenant.TenantInfoImpl"); properties.setProperty("tenantInfo", "com.iformall.tenant.TenantInfoImpl");
multiTenancy.setProperties(properties); multiTenancy.setProperties(properties);


+ 2
- 0
mallinkBApi/src/main/java/com/iformall/controller/BaseController.java Просмотреть файл

@@ -99,8 +99,10 @@ public class BaseController {
public TenantEntity getTenantInfo() { public TenantEntity getTenantInfo() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String tenantId = (String) request.getAttribute(Constant.TENANT_ID); String tenantId = (String) request.getAttribute(Constant.TENANT_ID);
String subTenantId = (String) request.getAttribute(Constant.SUB_TENANT_ID);
TenantEntity tenantEntity = new TenantEntity() {{ TenantEntity tenantEntity = new TenantEntity() {{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}; }};
return tenantEntity; return tenantEntity;
} }


+ 1
- 12
mallinkBApi/src/main/java/com/iformall/controller/PosController.java Просмотреть файл

@@ -3,6 +3,7 @@ package com.iformall.controller;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.pay.WxPayConstant; import com.iformall.pay.WxPayConstant;
import com.iformall.service.PosBrunService; import com.iformall.service.PosBrunService;
@@ -47,18 +48,6 @@ public class PosController extends BaseController {
return posService.checkUserPassword(user, phone, password); return posService.checkUserPassword(user, phone, password);
} }


@ApiOperation(value = "获取会员折扣/优惠券/消费卡是否启用")
@PostMapping("getPosMemConfig")
public ResultData getPosMemConfig() {
return posService.getPosMemConfig(getTenantId());
}

@ApiOperation(value = "获取注册二维码及小票二维码规则")
@PostMapping("getQrCode")
public ResultData getQrCode() {
return posService.getQrCode(getTenantId());
}

@ApiOperation(value = "券独立核销-1-检查", notes = "{\"couponOrderId\":\"string\"}") @ApiOperation(value = "券独立核销-1-检查", notes = "{\"couponOrderId\":\"string\"}")
@PostMapping("checkCouponOrderForIndepentVerify") @PostMapping("checkCouponOrderForIndepentVerify")
public ResultData checkCouponOrderForIndepentVerify(@RequestBody Map<String, String> params) { public ResultData checkCouponOrderForIndepentVerify(@RequestBody Map<String, String> params) {


+ 5
- 1
mallinkBApi/src/main/java/com/iformall/controller/UploadController.java Просмотреть файл

@@ -53,7 +53,11 @@ public class UploadController extends BaseController {
private AmazonS3 s3 = null; private AmazonS3 s3 = null;


private String getFileName(TenantEntity tenantEntity, String fileName) { private String getFileName(TenantEntity tenantEntity, String fileName) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
if (StringUtils.isBlank(tenantEntity.getSubTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getSubTenantId() + "/" + fileName;
}
return fileName; return fileName;
} }




+ 4
- 4
mallinkBApi/src/main/java/com/iformall/controller/WxCUserController.java Просмотреть файл

@@ -118,7 +118,7 @@ public class WxCUserController extends BaseController {
wxCUserBasicInfoService.update(wxCUserBasicInfo); wxCUserBasicInfoService.update(wxCUserBasicInfo);
wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo); wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo);
//增加积分 //增加积分
addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, wxCUserFromBDto.getUserId());
addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, wxCUserFromBDto.getUserId(), wxCUserFromB);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo); wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo);
//新增来自B端的会员关联数据 //新增来自B端的会员关联数据
wxCUserFromB = new WxCUserFromB(); wxCUserFromB = new WxCUserFromB();
@@ -179,7 +179,7 @@ public class WxCUserController extends BaseController {
wxCUserBasicInfoService.update(wxCUserBasicInfo); wxCUserBasicInfoService.update(wxCUserBasicInfo);
wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo); wxScoreRulesService.addScore(EnumScoreType.COMPLETE_INFO, wxCUserBasicInfo);
//增加积分 //增加积分
addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, wxCUserFromBDto.getUserId());
addCredit(wxCUserBasicInfo, EnumScoreType.COMPLETE_INFO, wxCUserFromBDto.getUserId(), wxCUserFromB);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo); wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT, wxCUserBasicInfo);
//更新B端来源会员 //更新B端来源会员
wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo)); wxCUserFromB.setInfo(JSONObject.toJSONString(wxCUserBasicInfo));
@@ -188,10 +188,10 @@ public class WxCUserController extends BaseController {
return new ResultData(); return new ResultData();
} }


private void addCredit(WxCUserBasicInfo wxCUserBasicInfo, EnumScoreType enumScoreType, Long userId) {
private void addCredit(WxCUserBasicInfo wxCUserBasicInfo, EnumScoreType enumScoreType, Long userId, TenantEntity tenantEntity) {
WxCreditHistory wxCreditHistory = new WxCreditHistory(); WxCreditHistory wxCreditHistory = new WxCreditHistory();
wxCreditHistory.setCUserId(wxCUserBasicInfo.getId()); wxCreditHistory.setCUserId(wxCUserBasicInfo.getId());
wxCreditHistory.updateTenantInfo(getTenantInfo());
wxCreditHistory.updateTenantInfo(tenantEntity);
wxCreditHistory.setCreateDate(new Date()); wxCreditHistory.setCreateDate(new Date());
wxCreditHistory.setCreditType(enumScoreType.getCode()); wxCreditHistory.setCreditType(enumScoreType.getCode());
wxCreditHistory.setOperatorType(EnumUserType.BUSER.getCode()); wxCreditHistory.setOperatorType(EnumUserType.BUSER.getCode());


+ 8
- 2
mallinkBApi/src/main/java/com/iformall/controller/WxCouponSendController.java Просмотреть файл

@@ -5,6 +5,7 @@ import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxCouponActionLogVo; import com.iformall.domain.vo.WxCouponActionLogVo;
import com.iformall.domain.vo.WxCouponSendVo; import com.iformall.domain.vo.WxCouponSendVo;
import com.iformall.enums.EnumCouponSendSendType; import com.iformall.enums.EnumCouponSendSendType;
@@ -18,6 +19,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -65,7 +67,7 @@ public class WxCouponSendController extends BaseController {
final PageInfo<WxCouponSendVo> page = wxCouponSendService.listAsPage(wxCouponSend, pageNum, pageSize); final PageInfo<WxCouponSendVo> page = wxCouponSendService.listAsPage(wxCouponSend, pageNum, pageSize);


for (WxCouponSendVo cs : page.getList()) { for (WxCouponSendVo cs : page.getList()) {
cs.setSendCount(wxCouponActionLogService.getCountByChannelId(getTenantInfo(), cs.getSendType(), cs.getId()));
cs.setSendCount(wxCouponActionLogService.getCountByChannelId(wxCouponSend, cs.getSendType(), cs.getId()));
} }
return new ResultData(page); return new ResultData(page);
} }
@@ -134,7 +136,11 @@ public class WxCouponSendController extends BaseController {
cal.add(Calendar.DATE, 1); cal.add(Calendar.DATE, 1);
params.put("endDate", cal.getTime()); params.put("endDate", cal.getTime());
} }
params.put("tenantId", getTenantId());
TenantEntity tenantEntity = getTenantInfo();
params.put("tenantId", tenantEntity.getTenantId());
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
params.put("subTenantId", tenantEntity.getSubTenantId());
}
params.put("channelType", channelType); params.put("channelType", channelType);
params.put("merchantId", getUser().getMerchantId()); params.put("merchantId", getUser().getMerchantId());
PageInfo<WxCouponActionLogVo> data = wxCouponActionLogService.getActionLog(params, pageNum, pageSize); PageInfo<WxCouponActionLogVo> data = wxCouponActionLogService.getActionLog(params, pageNum, pageSize);


+ 1
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxCreditHistoryController.java Просмотреть файл

@@ -8,6 +8,7 @@ import com.iformall.domain.po.WxCUserBasicInfo;
import com.iformall.domain.po.WxCreditHistory; import com.iformall.domain.po.WxCreditHistory;
import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxCreditHistoryVo; import com.iformall.domain.vo.WxCreditHistoryVo;
import com.iformall.enums.EnumMerchantStatus; import com.iformall.enums.EnumMerchantStatus;
import com.iformall.enums.EnumScoreType; import com.iformall.enums.EnumScoreType;


+ 27
- 4
mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java Просмотреть файл

@@ -12,6 +12,7 @@ import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumEnableType;
import com.iformall.enums.EnumMallUserStatus; import com.iformall.enums.EnumMallUserStatus;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.*; import com.iformall.service.*;
@@ -70,6 +71,9 @@ public class WxInfoController extends BaseController {
@Autowired @Autowired
WxBuserTokenService wxBuserTokenService; WxBuserTokenService wxBuserTokenService;


@Autowired
WxMerchantBUserService merchantBUserService;

@AuthIgnore @AuthIgnore
@ApiOperation("获取OPENID") @ApiOperation("获取OPENID")
@PostMapping("getOpenId") @PostMapping("getOpenId")
@@ -87,6 +91,10 @@ public class WxInfoController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "bUserId不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "bUserId不能为空");
} }
String scene = param.get("scene"); String scene = param.get("scene");
WxMerchantBUser buUser = merchantBUserService.getById(Long.valueOf(userId));
if (buUser == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "登录用户未找到");
}
WxAppinfo wxAppinfo = getAppInfo(appId); WxAppinfo wxAppinfo = getAppInfo(appId);
// 通过authorizerInfo得到tenant_id // 通过authorizerInfo得到tenant_id
WxAuthorizerInfo wxAuthorizerInfo = null; WxAuthorizerInfo wxAuthorizerInfo = null;
@@ -96,6 +104,9 @@ public class WxInfoController extends BaseController {
if (wxAuthorizerInfo == null) { if (wxAuthorizerInfo == null) {
return new ResultData(ErrorCode.APP_ID_NOT_FOUND); return new ResultData(ErrorCode.APP_ID_NOT_FOUND);
} }
if (!wxAuthorizerInfo.getEnable().equals(EnumEnableType.Enable.getCode())) {
return new ResultData(ErrorCode.APP_ID_NOT_ENABLE);
}
if (isFmOpen) { if (isFmOpen) {
wxMaService = getWeappService(appId); wxMaService = getWeappService(appId);
} else { } else {
@@ -164,7 +175,10 @@ public class WxInfoController extends BaseController {
token = oldUser.createToken(new Date()); token = oldUser.createToken(new Date());
resultMap.put("token", token); resultMap.put("token", token);
request.setAttribute(Constant.LOGIN_USER_KEY, oldUser.getId()); request.setAttribute(Constant.LOGIN_USER_KEY, oldUser.getId());
request.setAttribute(Constant.TENANT_ID, oldUser.getTenantId());
request.setAttribute(Constant.TENANT_ID, buUser.getTenantId());
if (StringUtils.isNotBlank(buUser.getSubTenantId())) {
request.setAttribute(Constant.SUB_TENANT_ID, buUser.getSubTenantId());
}


oldUser.setRegisterIp(ipaddress); oldUser.setRegisterIp(ipaddress);
oldUser.setSessionKey(session_key); oldUser.setSessionKey(session_key);
@@ -177,7 +191,7 @@ public class WxInfoController extends BaseController {
oldUser.setOpenAppId(wxAuthorizerInfo.getOpenAppid()); oldUser.setOpenAppId(wxAuthorizerInfo.getOpenAppid());
} }
if (StringUtils.isBlank(oldUser.getScene()) || if (StringUtils.isBlank(oldUser.getScene()) ||
oldUser.getScene().equals("undefined")) { // from pages/index/index onLoad.options.scene
oldUser.getScene().equals(Constant.UNDEFINED)) { // from pages/index/index onLoad.options.scene
oldUser.setScene(scene); oldUser.setScene(scene);
} }
oldUser.setLoginCount(oldUser.getLoginCount() + 1); oldUser.setLoginCount(oldUser.getLoginCount() + 1);
@@ -191,7 +205,7 @@ public class WxInfoController extends BaseController {
newUser.setSessionKey(session_key); newUser.setSessionKey(session_key);


if (StringUtils.isBlank(newUser.getScene()) || if (StringUtils.isBlank(newUser.getScene()) ||
newUser.getScene().equals("undefined")) { // from pages/index/index onLoad.options.scene
newUser.getScene().equals(Constant.UNDEFINED)) { // from pages/index/index onLoad.options.scene
newUser.setScene(scene); newUser.setScene(scene);
} }
newUser.setLoginCount(0); newUser.setLoginCount(0);
@@ -199,7 +213,10 @@ public class WxInfoController extends BaseController {
wxBuserTokenService.saveOrUpdate(newUser); wxBuserTokenService.saveOrUpdate(newUser);
resultMap.put("token", token); resultMap.put("token", token);
request.setAttribute(Constant.LOGIN_USER_KEY, newUser.getId()); request.setAttribute(Constant.LOGIN_USER_KEY, newUser.getId());
request.setAttribute(Constant.TENANT_ID, newUser.getTenantId());
request.setAttribute(Constant.TENANT_ID, buUser.getTenantId());
if (StringUtils.isNotBlank(buUser.getSubTenantId())) {
request.setAttribute(Constant.SUB_TENANT_ID, buUser.getSubTenantId());
}
} }
return new ResultData(resultMap); return new ResultData(resultMap);


@@ -249,6 +266,12 @@ public class WxInfoController extends BaseController {


private Map<String,String> getOpenIdInfo(String appId, String code) { private Map<String,String> getOpenIdInfo(String appId, String code) {
WxAppinfo wxAppinfo = getAppInfo(appId); WxAppinfo wxAppinfo = getAppInfo(appId);
if (wxAppinfo == null) {
throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND);
}
if (!wxAppinfo.getEnable().equals(EnumEnableType.Enable.getCode())) {
throw new MallinkException(ErrorCode.APP_ID_NOT_ENABLE);
}
WxMaService wxMaService = null; WxMaService wxMaService = null;
if(isFmOpen) { if(isFmOpen) {
wxMaService = getWeappService(appId); wxMaService = getWeappService(appId);


+ 14
- 5
mallinkBApi/src/main/java/com/iformall/controller/WxMallController.java Просмотреть файл

@@ -1,11 +1,14 @@
package com.iformall.controller; package com.iformall.controller;


import com.alibaba.fastjson.JSON;
import com.iformall.annotation.AuthIgnore; import com.iformall.annotation.AuthIgnore;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.Result; import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxAppinfo;
import com.iformall.domain.po.WxMall; import com.iformall.domain.po.WxMall;
import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.enums.EnumGroupSupport;
import com.iformall.service.WxAppinfoService; import com.iformall.service.WxAppinfoService;
import com.iformall.service.WxMallService; import com.iformall.service.WxMallService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -25,6 +28,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;


@RestController @RestController
@@ -66,14 +70,19 @@ public class WxMallController extends BaseController {
@GetMapping("/mallInfo") @GetMapping("/mallInfo")
@ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true) @ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true)
public ResultData getMallInfo(String appId) { public ResultData getMallInfo(String appId) {
WxAppinfo appInfo = wxAppinfoService.getByAppId(appId);
if (appInfo == null) {
return new ResultData(ErrorCode.APP_ID_NOT_FOUND);
}
WxMall mall = wxMallService.getByTenantId(appInfo.getTenantId());
WxMerchantBUser buUser = getUser();
WxMall mall = wxMallService.getByTenantInfo(buUser);
if (mall == null) { if (mall == null) {
return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND);
} }
if(!mall.isValid()) {
logger.error("mall未启用");
return new ResultData(Result.ERROR, "mall未启用");
}
if (mall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode())) {
List<WxMall> mallList = wxMallService.getSubByParentTenantId(mall.getTenantId());
mall.setSubMalls(mallList);
}
return new ResultData(Result.SUCCESS, "查询成功", mall); return new ResultData(Result.SUCCESS, "查询成功", mall);
} }




+ 112
- 37
mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java Просмотреть файл

@@ -8,6 +8,7 @@ import com.iformall.domain.po.WxMall;
import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.domain.po.WxScoreRules; import com.iformall.domain.po.WxScoreRules;
import com.iformall.domain.vo.WxMerchantBuInfoVo;
import com.iformall.enums.EnumCreditLockedStatus; import com.iformall.enums.EnumCreditLockedStatus;
import com.iformall.enums.EnumMerchantBUserStatus; import com.iformall.enums.EnumMerchantBUserStatus;
import com.iformall.enums.EnumMerchantStatus; import com.iformall.enums.EnumMerchantStatus;
@@ -26,6 +27,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;


@RestController @RestController
@@ -71,7 +73,7 @@ public class WxMerchantBUserController extends BaseController {
return new ResultData(ErrorCode.MCH_INFO_NOT_FOUND); return new ResultData(ErrorCode.MCH_INFO_NOT_FOUND);
} }


WxMall mall = wxMallService.getByTenantId(merchant.getTenantId());
WxMall mall = wxMallService.getByTenantInfo(merchant);
if (mall == null){ if (mall == null){
return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND);
} }
@@ -81,13 +83,14 @@ public class WxMerchantBUserController extends BaseController {
if (scoreRules.getCreditLocked().equals(EnumCreditLockedStatus.CLOSE.getCode())) { if (scoreRules.getCreditLocked().equals(EnumCreditLockedStatus.CLOSE.getCode())) {
resultMap.put("creditLocked", EnumCreditLockedStatus.CLOSE.getCode()); resultMap.put("creditLocked", EnumCreditLockedStatus.CLOSE.getCode());
} }
resultMap.put("tenant_id",merchant.getTenantId());
resultMap.put("sub_tenant_id",merchant.getSubTenantId());
resultMap.put("phone", user.getPhone()); resultMap.put("phone", user.getPhone());
resultMap.put("name", user.getName()); resultMap.put("name", user.getName());
resultMap.put("merchant_name", merchant.getName()); resultMap.put("merchant_name", merchant.getName());
resultMap.put("merchant_img_url", merchant.getImgUrl()); resultMap.put("merchant_img_url", merchant.getImgUrl());
resultMap.put("mall_name", mall.getName()); resultMap.put("mall_name", mall.getName());
resultMap.put("service_phone", mall.getServicePhone()); resultMap.put("service_phone", mall.getServicePhone());
resultMap.put("tenant_id",merchant.getTenantId());
resultMap.put("merchant_id",merchant.getId()); resultMap.put("merchant_id",merchant.getId());
resultMap.put("is_admin",merchant.getIsAdmin()); resultMap.put("is_admin",merchant.getIsAdmin());
resultMap.put("businessId", merchant.getBusinessId()); resultMap.put("businessId", merchant.getBusinessId());
@@ -136,63 +139,135 @@ public class WxMerchantBUserController extends BaseController {


HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String ipaddress = IPUtil.getIpAddr(request); String ipaddress = IPUtil.getIpAddr(request);
if (!StringUtils.isBlank(latitude) && !StringUtils.isBlank(longitude)) {
if (StringUtils.isNotBlank(latitude) && StringUtils.isNotBlank(longitude)) {
logger.info("B端用户: " + phone + " 登录 IP" + ipaddress + ", 经纬度(" + longitude + "," + latitude + ")"); logger.info("B端用户: " + phone + " 登录 IP" + ipaddress + ", 经纬度(" + longitude + "," + latitude + ")");
} }
WxMerchantBUser user = new WxMerchantBUser();
user.setAppId(appId);
user.setPhone(phone);
user.setStatus(EnumMerchantBUserStatus.VALID.getCode());
WxMerchantBUser user1 = null;
try {
user1 = wxMerchantBUserService.getBUserByAppId(user);
} catch (Exception e) {
logger.error(e.getMessage());
WxMerchantBUser userQ = new WxMerchantBUser();
userQ.setAppId(appId);
userQ.setPhone(phone);
userQ.setStatus(EnumMerchantBUserStatus.VALID.getCode());
List<WxMerchantBUser> orgList = wxMerchantBUserService.getBUserByAppId(userQ);

if (orgList.size() == 1) {
// 集团内只发现一个用户
WxMerchantBUser orgUser = orgList.get(0);
if (orgUser != null) {
// check password
if (orgUser.getUserPwd().equalsIgnoreCase(password)) {
// check merchant 状态
ResultData merchantStatus = checkMerchantStatus(orgUser);
if (merchantStatus != null) return merchantStatus;

try {
wxMerchantBUserService.saveOrUpdate(orgUser);
} catch (Exception e) {
logger.error("B端用户更新用户信息失败, e:" + e.getMessage());
return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage());
}
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("bUserId", orgUser.getId());
resultMap.put("logined", true);
return new ResultData(resultMap);
} else {
return new ResultData(ErrorCode.PASSWORD_ERROR);
}
} else {
logger.error("B端用户不存在, phone: " + phone);
return new ResultData(ErrorCode.USER_IS_EMPTY);
}
} else if (orgList.size() > 1) {
// 集团内发现多个用户, 系统会保证密码一致
WxMerchantBUser orgUser = orgList.get(0);
if (orgUser != null) {
// check password
if (orgUser.getUserPwd().equalsIgnoreCase(password)) {
// 返回多个(商场+商户)
List<WxMerchantBuInfoVo> merchantListInfo = wxMerchantBUserService.getMerchantInfoByBUser(userQ);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("merchantList", merchantListInfo);
resultMap.put("logined", true);
return new ResultData(resultMap);
} else {
logger.error(ErrorCode.PASSWORD_ERROR.getMessage());
return new ResultData(ErrorCode.PASSWORD_ERROR);
}
} else {
logger.error("B端用户不存在, phone: " + phone);
return new ResultData(ErrorCode.USER_IS_EMPTY);
}
} else {
logger.error("B端用户不存在, phone: " + phone); logger.error("B端用户不存在, phone: " + phone);
return new ResultData(ErrorCode.USER_IS_EMPTY); return new ResultData(ErrorCode.USER_IS_EMPTY);
} }
}


if (user1 != null) {
// check merchant 状态
WxMerchant merchant = null;
try {
merchant = wxMerchantService.getById(user1.getMerchantId());
} catch (Exception e) {
logger.error(ErrorCode.DB_FAIL.getMessage() + ": " + user1.getMerchantId() + e.getMessage());
return new ResultData(ErrorCode.DB_FAIL);
}
if (merchant == null) {
logger.error(ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage() + ": " + user1.getMerchantId());
return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND);
}
if (merchant.getStatus().equals(EnumMerchantStatus.NOT_VALID.getCode())) {
logger.error(ErrorCode.MERCHANT_INFO_NOT_VALID.getMessage() + ": " + user1.getMerchantId());
return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID);
}
// check password
if (user1.getUserPwd().equalsIgnoreCase(password)) {
@AuthIgnore
@PostMapping("/selectMerchant")
@ApiOperation(value = "选择商户", notes = "{" +
"\"buUserId\":\"string\"," +
"\"merchantId\":\"string\"}")
public ResultData selectMerchant(@RequestBody Map<String, String> map) {
String buUserIdStr = map.get("buUserId");
String merchantIdStr = map.get("merchantId");

if (StringUtils.isBlank(buUserIdStr)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "buUserId不能为空");
}
if (StringUtils.isBlank(merchantIdStr)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantId不能为空");
}

WxMerchantBUser userQ = new WxMerchantBUser();
userQ.setId(Long.valueOf(buUserIdStr));
userQ.setMerchantId(Long.valueOf(merchantIdStr));
List<WxMerchantBUser> orgList = wxMerchantBUserService.getBUserByAppId(userQ);
if (orgList.size() == 1) {
WxMerchantBUser orgUser = orgList.get(0);
if (orgUser != null) {
ResultData merchantStatus = checkMerchantStatus(orgUser);
if (merchantStatus != null) return merchantStatus;
try { try {
wxMerchantBUserService.saveOrUpdate(user1);
wxMerchantBUserService.saveOrUpdate(orgUser);
} catch (Exception e) { } catch (Exception e) {
logger.error("B端用户更新用户信息失败, e:" + e.getMessage()); logger.error("B端用户更新用户信息失败, e:" + e.getMessage());
return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage()); return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage());
} }
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put("bUserId", user1.getId());
resultMap.put("bUserId", orgUser.getId());
resultMap.put("logined", true);
return new ResultData(resultMap); return new ResultData(resultMap);
} else { } else {
return new ResultData(ErrorCode.PASSWORD_ERROR);
logger.error("B端用户不存在");
return new ResultData(ErrorCode.USER_IS_EMPTY);
} }
} else { } else {
logger.error("B端用户不存在, phone: " + phone);
return new ResultData(ErrorCode.USER_IS_EMPTY);
return new ResultData(ErrorCode.USER_NO_PERMISSION);
} }


} }


private ResultData checkMerchantStatus(WxMerchantBUser orgUser) {
WxMerchant merchant = null;
try {
merchant = wxMerchantService.getById(orgUser.getMerchantId());
} catch (Exception e) {
logger.error(ErrorCode.DB_FAIL.getMessage() + ": " + orgUser.getMerchantId() + e.getMessage());
return new ResultData(ErrorCode.DB_FAIL);
}
if (merchant == null) {
logger.error(ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage() + ": " + orgUser.getMerchantId());
return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND);
}
if (!merchant.checkStatus()) {
logger.error(ErrorCode.MERCHANT_INFO_NOT_VALID.getMessage() + ": " + orgUser.getMerchantId());
return new ResultData(ErrorCode.MERCHANT_INFO_NOT_VALID);
}
return null;
}



@AuthIgnore @AuthIgnore
@ApiOperation(value = "修改密码", notes = "{\"appId\",\"string\", \"phone\",\"string\",\"code\",\"string\",\"pwd\",\"string\"}")
@ApiOperation(value = "修改密码,集团版会修改集团下同一手机号的密码", notes = "{\"appId\",\"string\", \"phone\",\"string\",\"code\",\"string\",\"pwd\",\"string\"}")
@PostMapping("/updatepwd") @PostMapping("/updatepwd")
public ResultData updatepwd(@RequestBody Map<String, String> params) { public ResultData updatepwd(@RequestBody Map<String, String> params) {
// String phone,String code,String pwd // String phone,String code,String pwd


+ 8
- 3
mallinkBApi/src/main/java/com/iformall/controller/WxMsgValidationcodeController.java Просмотреть файл

@@ -20,6 +20,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;


import java.util.List;

@RestController @RestController
@RequestMapping("wxMsgValidationcode") @RequestMapping("wxMsgValidationcode")
@Api(description="短信验证相关接口") @Api(description="短信验证相关接口")
@@ -49,11 +51,12 @@ public class WxMsgValidationcodeController extends BaseController {
userQ.setPhone(phone); userQ.setPhone(phone);
userQ.setStatus(EnumMerchantBUserStatus.VALID.getCode()); userQ.setStatus(EnumMerchantBUserStatus.VALID.getCode());


WxMerchantBUser user=wxMerchantBUserService.getBUserByAppId(userQ);
if (user==null) {
List<WxMerchantBUser> orgUserList = wxMerchantBUserService.getBUserByAppId(userQ);
if (orgUserList.size() <= 0) {
logger.error("B端用户不存在, phone: " + phone); logger.error("B端用户不存在, phone: " + phone);
return new ResultData(ErrorCode.USER_IS_EMPTY); return new ResultData(ErrorCode.USER_IS_EMPTY);
} }
WxMerchantBUser user = orgUserList.get(0);


WxMerchant merchant = wxMerchantService.getById(user.getMerchantId()); WxMerchant merchant = wxMerchantService.getById(user.getMerchantId());
if (merchant==null) { if (merchant==null) {
@@ -77,14 +80,16 @@ public class WxMsgValidationcodeController extends BaseController {
@GetMapping("hasvalidationcode") @GetMapping("hasvalidationcode")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "tenantId", value = "租户ID", dataType = "String", paramType = "query"), @ApiImplicitParam(name = "tenantId", value = "租户ID", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "subTenantId", value = "子租户ID", dataType = "String", paramType = "query"),
@ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "phone", value = "手机号", dataType = "String", paramType = "query", required = true),
@ApiImplicitParam(name = "type", value = "场景", dataType = "Integer", paramType = "query", required = true), @ApiImplicitParam(name = "type", value = "场景", dataType = "Integer", paramType = "query", required = true),
@ApiImplicitParam(name = "code", value = "验证码", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "code", value = "验证码", dataType = "String", paramType = "query", required = true),
@ApiImplicitParam(name = "appid", value = "appid", dataType = "String", paramType = "query", required = true)}) @ApiImplicitParam(name = "appid", value = "appid", dataType = "String", paramType = "query", required = true)})
public ResultData hasvalidationcode(String tenantId, String phone, Integer type, String code, String appid) {
public ResultData hasvalidationcode(String tenantId, String subTenantId, String phone, Integer type, String code, String appid) {
WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode(); WxMsgValidationcode wxMsgValidationcode = new WxMsgValidationcode();
wxMsgValidationcode.updateTenantInfo(new TenantEntity(){{ wxMsgValidationcode.updateTenantInfo(new TenantEntity(){{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}); }});
wxMsgValidationcode.setPhone(phone); wxMsgValidationcode.setPhone(phone);
wxMsgValidationcode.setType(EnumMsgModel.VALIDATION_CODE.getCode()); wxMsgValidationcode.setType(EnumMsgModel.VALIDATION_CODE.getCode());


+ 72
- 0
mallinkBApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java Просмотреть файл

@@ -26,8 +26,24 @@ public class TenantInfoImpl implements TenantInfo {
return tenantId; return tenantId;
} }


@Override
public String getSubTenantId() {
String subTenantId = null;
try {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
subTenantId = (String) request.getAttribute(Constant.SUB_TENANT_ID);
return subTenantId;
} catch (Exception e) {
logger.error(e.getMessage());
}
return subTenantId;
}

@Override @Override
public boolean doTableFilter(String tableName) { public boolean doTableFilter(String tableName) {
if ("wx_mall".equals(tableName)) {
return true;
}
if ("mall_permission".equals(tableName)) { if ("mall_permission".equals(tableName)) {
return true; return true;
} }
@@ -72,6 +88,62 @@ public class TenantInfoImpl implements TenantInfo {
return false; return false;
} }


@Override
public boolean doTableFilterSub(String tableName) {
if ("wx_mall".equals(tableName)) {
return true;
}
if ("wx_appinfo".equals(tableName)) {
return true;
}
if ("wx_authorizer_info".equals(tableName)) {
return true;
}
if ("wx_c_user".equals(tableName)) {
return true;
}
if ("wx_c_user_basic_info".equals(tableName)) {
return true;
}
if ("wx_c_user_car".equals(tableName)) {
return true;
}
if ("wx_c_user_from_b".equals(tableName)) {
return true;
}
if ("wx_c_user_tags".equals(tableName)) {
return true;
}
if ("wx_buser".equals(tableName)) {
return true;
}
if ("wx_user_visit".equals(tableName)) {
return true;
}
if ("wx_level_config".equals(tableName)) {
return true;
}
if ("wx_score_rules".equals(tableName)) {
return true;
}
if ("view_coupon_data".equals(tableName)) {
return true;
}
if ("view_touch_user".equals(tableName)) {
return true;
}
if ("wx_weapp_audit_status".equals(tableName)) {
return true;
}
if ("wx_weapp_code_status".equals(tableName)) {
return true;
}
if ("wx_weapp_release_status".equals(tableName)) {
return true;
}
return false;
}

@Override @Override
public boolean doMappedStatementFIlter(MappedStatement ms) { public boolean doMappedStatementFIlter(MappedStatement ms) {
if ("com.iformall.mapper.WxMerchantBUserMapper.getByToken".equals(ms.getId())) if ("com.iformall.mapper.WxMerchantBUserMapper.getByToken".equals(ms.getId()))


+ 1
- 0
mallinkCApi/src/main/java/com/iformall/config/MyBatisConfiguration.java Просмотреть файл

@@ -14,6 +14,7 @@ public class MyBatisConfiguration {
MultiTenancy multiTenancy = new MultiTenancy(); MultiTenancy multiTenancy = new MultiTenancy();
Properties properties = new Properties(); Properties properties = new Properties();
properties.setProperty("tenantIdColumn", "tenant_id"); properties.setProperty("tenantIdColumn", "tenant_id");
properties.setProperty("subTenantIdColumn", "sub_tenant_id");
properties.setProperty("dialect", "mysql"); properties.setProperty("dialect", "mysql");
properties.setProperty("tenantInfo", "com.iformall.tenant.TenantInfoImpl"); properties.setProperty("tenantInfo", "com.iformall.tenant.TenantInfoImpl");
multiTenancy.setProperties(properties); multiTenancy.setProperties(properties);


+ 9
- 1
mallinkCApi/src/main/java/com/iformall/controller/BaseController.java Просмотреть файл

@@ -79,8 +79,10 @@ public class BaseController {
public TenantEntity getTenantInfo() { public TenantEntity getTenantInfo() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String tenantId = (String) request.getAttribute(Constant.TENANT_ID); String tenantId = (String) request.getAttribute(Constant.TENANT_ID);
String subTenantId = (String) request.getAttribute(Constant.SUB_TENANT_ID);
TenantEntity tenantEntity = new TenantEntity() {{ TenantEntity tenantEntity = new TenantEntity() {{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}; }};
return tenantEntity; return tenantEntity;
} }
@@ -100,7 +102,13 @@ public class BaseController {
if (user == null) { if (user == null) {
throw new MallinkException(ErrorCode.USER_IS_EMPTY); throw new MallinkException(ErrorCode.USER_IS_EMPTY);
} }
user.updateTenantInfo(getTenantInfo());
TenantEntity tenantEntity = getTenantInfo();
if (user.getTenantId() == null) {
user.setTenantId(tenantEntity.getTenantId());
}
if (user.getSubTenantId() == null) {
user.setSubTenantId(tenantEntity.getSubTenantId());
}
return user; return user;
} }




+ 21
- 4
mallinkCApi/src/main/java/com/iformall/controller/UploadController.java Просмотреть файл

@@ -13,8 +13,10 @@ import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest; import com.amazonaws.services.s3.model.PutObjectRequest;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.config.AwsProperty; import com.iformall.config.AwsProperty;
import com.iformall.domain.po.base.TenantEntity;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -100,6 +102,15 @@ public class UploadController extends BaseController {
return data; return data;
} }


private String getFileName(TenantEntity tenantEntity, String fileName) {
if (StringUtils.isBlank(tenantEntity.getSubTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getSubTenantId() + "/" + fileName;
}
return fileName;
}

/** /**
* 上传文件 * 上传文件
* *
@@ -112,6 +123,8 @@ public class UploadController extends BaseController {
public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) { public ResultData awsfileUpload(@RequestParam("file") MultipartFile multiReq) {
logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsfileUpload");


TenantEntity tenantEntity = getTenantInfo();

ObjectMetadata metadata = new ObjectMetadata(); ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType()); metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize()); metadata.setContentLength(multiReq.getSize());
@@ -122,9 +135,10 @@ public class UploadController extends BaseController {
String fileName = UUID.randomUUID().toString(); String fileName = UUID.randomUUID().toString();
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) { if (dot >= 0) {
fileName = getTenantId() + "/" + fileName + multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
String fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else { } else {
fileName = getTenantId() + "/" + fileName;
fileName = getFileName(tenantEntity, fileName);
} }


ResultData data = awsUpload(multiReq, metadata, fileName); ResultData data = awsUpload(multiReq, metadata, fileName);
@@ -143,6 +157,8 @@ public class UploadController extends BaseController {
public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) { public ResultData awsFilesUpload(@RequestParam("files") MultipartFile[] files) {
logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload"); logger.info("[" + getIpAddr() + "] UploadController::awsFilesUpload");


TenantEntity tenantEntity = getTenantInfo();

if (files.length > 0) { if (files.length > 0) {
ResultData data = new ResultData(); ResultData data = new ResultData();
List<Map<String, String>> dataList = new ArrayList<Map<String, String>>(); List<Map<String, String>> dataList = new ArrayList<Map<String, String>>();
@@ -161,9 +177,10 @@ public class UploadController extends BaseController {
String fileName = UUID.randomUUID().toString(); String fileName = UUID.randomUUID().toString();
int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) { if (dot >= 0) {
fileName = getTenantId() + "/" + fileName + multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());
String fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else { } else {
fileName = getTenantId() + "/" + fileName;
fileName = getFileName(tenantEntity, fileName);
} }


ResultData data1 = awsUpload(multipartFile, metadata, fileName); ResultData data1 = awsUpload(multipartFile, metadata, fileName);


+ 1
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxActivityJoinController.java Просмотреть файл

@@ -42,8 +42,8 @@ public class WxActivityJoinController extends BaseController {
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
public ResultData list(@ModelAttribute WxActivityJoin wxActivityJoin, Integer pageNum, Integer pageSize) { public ResultData list(@ModelAttribute WxActivityJoin wxActivityJoin, Integer pageNum, Integer pageSize) {
if (null == wxActivityJoin) wxActivityJoin = new WxActivityJoin(); if (null == wxActivityJoin) wxActivityJoin = new WxActivityJoin();
wxActivityJoin.setUserId(getUserId());
wxActivityJoin.updateTenantInfo(getTenantInfo()); wxActivityJoin.updateTenantInfo(getTenantInfo());
wxActivityJoin.setUserId(getUserId());
wxActivityJoin.setSortColumns(BaseEntity.SortField.CreateTime_DESC); wxActivityJoin.setSortColumns(BaseEntity.SortField.CreateTime_DESC);
final PageInfo<WxActivity> page = wxActivityJoinService.clistAsPage(wxActivityJoin, pageNum, pageSize); final PageInfo<WxActivity> page = wxActivityJoinService.clistAsPage(wxActivityJoin, pageNum, pageSize);
return new ResultData(page); return new ResultData(page);


+ 2
- 2
mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java Просмотреть файл

@@ -6,6 +6,7 @@ import com.iformall.common.ResultData;
import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.po.WxCampaign; import com.iformall.domain.po.WxCampaign;
import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxCouponChannel;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxCouponChannelVo; import com.iformall.domain.vo.WxCouponChannelVo;
import com.iformall.enums.EnumCampaignStatus; import com.iformall.enums.EnumCampaignStatus;
import com.iformall.enums.EnumCouponChannelType; import com.iformall.enums.EnumCouponChannelType;
@@ -45,9 +46,8 @@ public class WxCampaignController extends BaseController {
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
public ResultData list(@ModelAttribute WxCampaign wxCampaign, Integer pageNum, Integer pageSize) { public ResultData list(@ModelAttribute WxCampaign wxCampaign, Integer pageNum, Integer pageSize) {
if (null == wxCampaign) wxCampaign = new WxCampaign(); if (null == wxCampaign) wxCampaign = new WxCampaign();

wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode());
wxCampaign.updateTenantInfo(getTenantInfo()); wxCampaign.updateTenantInfo(getTenantInfo());
wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode());
wxCampaign.setSortColumns(BaseEntity.SortField.SortNum_ASC, BaseEntity.SortField.CreateTime_ASC); wxCampaign.setSortColumns(BaseEntity.SortField.SortNum_ASC, BaseEntity.SortField.CreateTime_ASC);
final PageInfo<WxCampaign> page = wxCampaignService.clistAsPage(wxCampaign, pageNum, pageSize); final PageInfo<WxCampaign> page = wxCampaignService.clistAsPage(wxCampaign, pageNum, pageSize);
return new ResultData(page); return new ResultData(page);


+ 29
- 29
mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java Просмотреть файл

@@ -269,7 +269,7 @@ public class WxCarController extends BaseController {
} }
} }


private ResultData etcpBindCar(Map<String, String> paramMap, WxPark park) {
private ResultData etcpBindCar(Map<String, String> paramMap, WxPark park, Long cuUserId) {
String etcpToken = paramMap.get("etcpToken"); String etcpToken = paramMap.get("etcpToken");
if (StringUtils.isBlank(etcpToken)) { if (StringUtils.isBlank(etcpToken)) {
logger.error("etcpToken为空"); logger.error("etcpToken为空");
@@ -296,7 +296,7 @@ public class WxCarController extends BaseController {
} }
JSONObject retObj = JSON.parseObject(ret); JSONObject retObj = JSON.parseObject(ret);
if (retObj.getIntValue("code") == 0) { if (retObj.getIntValue("code") == 0) {
addCarInfoToDB(carNumber, EnumCarVendor.CAR_ETCP);
addCarInfoToDB(carNumber, EnumCarVendor.CAR_ETCP, park, cuUserId);
JSONObject dataObj = retObj.getJSONObject("data"); JSONObject dataObj = retObj.getJSONObject("data");
return new ResultData(dataObj); return new ResultData(dataObj);
} else { } else {
@@ -306,14 +306,14 @@ public class WxCarController extends BaseController {
} }
} }


private ResultData bindCar(Map<String, String> paramMap, WxPark park) {
private ResultData bindCar(Map<String, String> paramMap, WxPark park, Long cuUserId) {
String carNumber = paramMap.get("carNumber"); String carNumber = paramMap.get("carNumber");
if (StringUtils.isBlank(carNumber)) { if (StringUtils.isBlank(carNumber)) {
logger.error("carNumber为空"); logger.error("carNumber为空");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空");
} }
try { try {
addCarInfoToDB(carNumber, EnumCarVendor.getEnum(park.getVendorType()));
addCarInfoToDB(carNumber, EnumCarVendor.getEnum(park.getVendorType()), park, cuUserId);
} catch (MallinkException e) { } catch (MallinkException e) {
return new ResultData(e.getErrorCode(), e.getMessage()); return new ResultData(e.getErrorCode(), e.getMessage());
} catch (Exception e) { } catch (Exception e) {
@@ -322,12 +322,12 @@ public class WxCarController extends BaseController {
return new ResultData(); return new ResultData();
} }


private void addCarInfoToDB(String carNumber, EnumCarVendor carVendor) {
private void addCarInfoToDB(String carNumber, EnumCarVendor carVendor, WxPark park, Long cuUserId) {
// 插入车牌 // 插入车牌
Date curr = new Date(); Date curr = new Date();
WxCUserCar userCar = new WxCUserCar(); WxCUserCar userCar = new WxCUserCar();
userCar.setCUserId(getUserId()); userCar.setCUserId(getUserId());
userCar.updateTenantInfo(getTenantInfo());
userCar.updateTenantInfo(park);
userCar.setCarNumber(carNumber); userCar.setCarNumber(carNumber);
userCar.setVendorType(carVendor.getCode()); userCar.setVendorType(carVendor.getCode());
userCar.setCreateDate(curr); userCar.setCreateDate(curr);
@@ -337,11 +337,11 @@ public class WxCarController extends BaseController {
// 成长值 // 成长值
wxScoreRulesService.addScore(EnumScoreType.BIND_CAR, userCar); wxScoreRulesService.addScore(EnumScoreType.BIND_CAR, userCar);
//增加积分 //增加积分
addCredit();
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR, getUserId());
addCredit(park, cuUserId);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_CAR,getUserId());
} }


private ResultData tjdBindCar(@RequestBody Map<String, String> paramMap, WxPark park) {
private ResultData tjdBindCar(@RequestBody Map<String, String> paramMap, WxPark park, Long cuUserId) {
String carNumber = paramMap.get("carNumber"); String carNumber = paramMap.get("carNumber");
if (StringUtils.isBlank(carNumber)) { if (StringUtils.isBlank(carNumber)) {
logger.error("carNumber为空"); logger.error("carNumber为空");
@@ -370,7 +370,7 @@ public class WxCarController extends BaseController {
JSONObject retObj = JSON.parseObject(ret); JSONObject retObj = JSON.parseObject(ret);
retObj.put("vendor", park.getVendorType()); retObj.put("vendor", park.getVendorType());
if (retObj.getString("returnCode").equalsIgnoreCase(EnumTJDCode.SUCCESS.getMessage())) { if (retObj.getString("returnCode").equalsIgnoreCase(EnumTJDCode.SUCCESS.getMessage())) {
ResultData e = tjdInsertToDB(carNumber, newCarId, retObj);
ResultData e = tjdInsertToDB(carNumber, newCarId, retObj, park, cuUserId);
if (e != null) return e; if (e != null) return e;
return new ResultData(retObj); return new ResultData(retObj);
} else { } else {
@@ -378,14 +378,14 @@ public class WxCarController extends BaseController {
} }
} }


private ResultData tjdInsertToDB(String carNumber, Long newCarId, JSONObject retObj) {
private ResultData tjdInsertToDB(String carNumber, Long newCarId, JSONObject retObj, WxPark park, Long cuUserId) {
String carId = retObj.getString("carId"); String carId = retObj.getString("carId");
// 插入车牌 // 插入车牌
Date curr = new Date(); Date curr = new Date();
WxCUserCar userCar = new WxCUserCar(); WxCUserCar userCar = new WxCUserCar();
userCar.setId(newCarId); userCar.setId(newCarId);
userCar.setCUserId(getUserId());
userCar.updateTenantInfo(getTenantInfo());
userCar.setCUserId(cuUserId);
userCar.updateTenantInfo(park);
userCar.setCarNumber(carNumber); userCar.setCarNumber(carNumber);
userCar.setVendorType(EnumCarVendor.CAR_TJD.getCode()); userCar.setVendorType(EnumCarVendor.CAR_TJD.getCode());
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
@@ -397,7 +397,7 @@ public class WxCarController extends BaseController {
wxCUserCarService.save(userCar); wxCUserCarService.save(userCar);
wxScoreRulesService.addScore(EnumScoreType.BIND_CAR, userCar); wxScoreRulesService.addScore(EnumScoreType.BIND_CAR, userCar);
//增加积分 //增加积分
addCredit();
addCredit(park, cuUserId);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
return new ResultData(ErrorCode.DB_FAIL.getCode(), "TJD保存车牌失败, e:" + e.getMessage()); return new ResultData(ErrorCode.DB_FAIL.getCode(), "TJD保存车牌失败, e:" + e.getMessage());
@@ -408,14 +408,14 @@ public class WxCarController extends BaseController {
} }


//-----增加积分start----- //-----增加积分start-----
private void addCredit() {
private void addCredit(WxPark park, Long cuUserId){
WxCreditHistory wxCreditHistory = new WxCreditHistory(); WxCreditHistory wxCreditHistory = new WxCreditHistory();
wxCreditHistory.setCUserId(getUserId());
wxCreditHistory.updateTenantInfo(getTenantInfo());
wxCreditHistory.setCUserId(cuUserId);
wxCreditHistory.updateTenantInfo(park);
wxCreditHistory.setCreateDate(new Date()); wxCreditHistory.setCreateDate(new Date());
wxCreditHistory.setCreditType(EnumScoreType.BIND_CAR.getCode()); wxCreditHistory.setCreditType(EnumScoreType.BIND_CAR.getCode());
wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode());
wxCreditHistory.setOperatorId(getUserId());
wxCreditHistory.setOperatorId(cuUserId);
wxCreditHistoryService.saveOrUpdate(wxCreditHistory); wxCreditHistoryService.saveOrUpdate(wxCreditHistory);
} }


@@ -436,13 +436,13 @@ public class WxCarController extends BaseController {
// 1, get mall's park // 1, get mall's park
WxPark park = getCurrentPark(getTenantInfo()); WxPark park = getCurrentPark(getTenantInfo());
if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) {
return etcpUnbindCar(paramMap, park);
return etcpUnbindCar(paramMap, park, getUserId());
} else { } else {
return unbindCar(paramMap, park);
return unbindCar(paramMap, park, getUserId());
} }
} }


private ResultData etcpUnbindCar(Map<String, String> paramMap, WxPark park) {
private ResultData etcpUnbindCar(Map<String, String> paramMap, WxPark park, Long cuUserId) {
String etcpToken = paramMap.get("etcpToken"); String etcpToken = paramMap.get("etcpToken");
if (StringUtils.isBlank(etcpToken)) { if (StringUtils.isBlank(etcpToken)) {
logger.error("etcpToken为空"); logger.error("etcpToken为空");
@@ -472,8 +472,8 @@ public class WxCarController extends BaseController {
if (retObj.getIntValue("code") == 0) { if (retObj.getIntValue("code") == 0) {
try { try {
WxCUserCar userCar = new WxCUserCar(); WxCUserCar userCar = new WxCUserCar();
userCar.setCUserId(getUserId());
userCar.updateTenantInfo(getTenantInfo());
userCar.setCUserId(cuUserId);
userCar.updateTenantInfo(park);
userCar.setCarNumber(carNumber); userCar.setCarNumber(carNumber);
wxCUserCarService.deleteByObj(userCar); wxCUserCarService.deleteByObj(userCar);
} catch (Exception e) { } catch (Exception e) {
@@ -489,7 +489,7 @@ public class WxCarController extends BaseController {
} }
} }


private ResultData unbindCar(Map<String, String> paramMap, WxPark park) {
private ResultData unbindCar(Map<String, String> paramMap, WxPark park, Long cuUserId) {
String carNumber = paramMap.get("carNumber"); String carNumber = paramMap.get("carNumber");
if (StringUtils.isBlank(carNumber)) { if (StringUtils.isBlank(carNumber)) {
logger.error("carNumber为空"); logger.error("carNumber为空");
@@ -497,8 +497,8 @@ public class WxCarController extends BaseController {
} }
try { try {
WxCUserCar userCar = new WxCUserCar(); WxCUserCar userCar = new WxCUserCar();
userCar.updateTenantInfo(getTenantInfo());
userCar.setCUserId(getUserId());
userCar.updateTenantInfo(park);
userCar.setCUserId(cuUserId);
userCar.setCarNumber(carNumber); userCar.setCarNumber(carNumber);
wxCUserCarService.deleteByObj(userCar); wxCUserCarService.deleteByObj(userCar);
} catch (Exception e) { } catch (Exception e) {
@@ -516,7 +516,7 @@ public class WxCarController extends BaseController {
} }
WxCUserCar queryOne = new WxCUserCar(); WxCUserCar queryOne = new WxCUserCar();
queryOne.setCarNumber(carNumber); queryOne.setCarNumber(carNumber);
queryOne.updateTenantInfo(getTenantInfo());
queryOne.updateTenantInfo(park);
queryOne.setCUserId(getUserId()); queryOne.setCUserId(getUserId());
WxCUserCar userCar = wxCUserCarService.getOne(queryOne); WxCUserCar userCar = wxCUserCarService.getOne(queryOne);
if (userCar != null) { if (userCar != null) {
@@ -727,7 +727,7 @@ public class WxCarController extends BaseController {


WxCouponOrderCarCVo userCar = null; WxCouponOrderCarCVo userCar = null;
WxCouponOrder userCarQ = new WxCouponOrder(); WxCouponOrder userCarQ = new WxCouponOrder();
userCarQ.updateTenantInfo(getTenantInfo());
userCarQ.updateTenantInfo(park);
userCarQ.setCUserId(getUserId()); userCarQ.setCUserId(getUserId());
userCarQ.setId(couponOrderId); userCarQ.setId(couponOrderId);
userCarQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); userCarQ.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode());
@@ -775,7 +775,7 @@ public class WxCarController extends BaseController {
// 券状态设为已使用 // 券状态设为已使用
WxCouponOrder couponOrder = new WxCouponOrder(); WxCouponOrder couponOrder = new WxCouponOrder();
couponOrder.setId(userCar.getId()); couponOrder.setId(userCar.getId());
couponOrder.updateTenantInfo(getTenantInfo());
couponOrder.updateTenantInfo(park);
couponOrder.setUpdateDate(new Date()); couponOrder.setUpdateDate(new Date());
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode());
try { try {


+ 1
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java Просмотреть файл

@@ -85,7 +85,7 @@ public class WxMallController extends BaseController {
@ApiOperation("商场信息") @ApiOperation("商场信息")
@GetMapping("/mallInfo") @GetMapping("/mallInfo")
public ResultData getMallInfo() { public ResultData getMallInfo() {
WxMall mall = wxMallService.getByTenantId(getTenantId());
WxMall mall = wxMallService.getByTenantInfo(getTenantInfo());
if (mall == null) { if (mall == null) {
return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND);
} }


+ 7
- 2
mallinkCApi/src/main/java/com/iformall/controller/WxMerchantController.java Просмотреть файл

@@ -4,7 +4,7 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.dto.WxMerchantDto; import com.iformall.domain.dto.WxMerchantDto;
import com.iformall.domain.po.WxMerchant;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxMerchantVo; import com.iformall.domain.vo.WxMerchantVo;
import com.iformall.enums.EnumMerchantPublic; import com.iformall.enums.EnumMerchantPublic;
import com.iformall.enums.EnumMerchantStatus; import com.iformall.enums.EnumMerchantStatus;
@@ -40,6 +40,7 @@ public class WxMerchantController extends BaseController {
public ResultData list(@ModelAttribute WxMerchantDto wxMerchantDto, Integer pageNum, Integer pageSize) { public ResultData list(@ModelAttribute WxMerchantDto wxMerchantDto, Integer pageNum, Integer pageSize) {
logger.debug("[" + getIpAddr() + "] WxMerchantController::list"); logger.debug("[" + getIpAddr() + "] WxMerchantController::list");
if (null == wxMerchantDto) wxMerchantDto = new WxMerchantDto(); if (null == wxMerchantDto) wxMerchantDto = new WxMerchantDto();
wxMerchantDto.updateTenantInfo(getTenantInfo());
wxMerchantDto.setMerchantStatus(EnumMerchantStatus.VALID.getCode()); wxMerchantDto.setMerchantStatus(EnumMerchantStatus.VALID.getCode());
wxMerchantDto.setIsPublic(EnumMerchantPublic.PUBLIC.getCode()); wxMerchantDto.setIsPublic(EnumMerchantPublic.PUBLIC.getCode());
return new ResultData(wxMerchantService.listAsPageCVo(wxMerchantDto, pageNum, pageSize)); return new ResultData(wxMerchantService.listAsPageCVo(wxMerchantDto, pageNum, pageSize));
@@ -58,7 +59,11 @@ public class WxMerchantController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
} }
HashMap<String, String> params = new HashMap<String, String>(); HashMap<String, String> params = new HashMap<String, String>();
params.put("tenantId", getTenantId());
TenantEntity tenantEntity = getTenantInfo();
params.put("tenantId", tenantEntity.getTenantId());
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
params.put("subTenantId", tenantEntity.getSubTenantId());
}
params.put("merchantCode", codeMD5); params.put("merchantCode", codeMD5);
WxMerchantVo wxMerchant = wxMerchantService.getMerchantInfo(params); WxMerchantVo wxMerchant = wxMerchantService.getMerchantInfo(params);
return new ResultData(wxMerchant); return new ResultData(wxMerchant);


+ 0
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxParkController.java Просмотреть файл

@@ -3,7 +3,6 @@ package com.iformall.controller;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.Result; import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxCUser;
import com.iformall.domain.po.WxPark; import com.iformall.domain.po.WxPark;
import com.iformall.service.WxParkService; import com.iformall.service.WxParkService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;


+ 2
- 3
mallinkCApi/src/main/java/com/iformall/controller/WxQuestionController.java Просмотреть файл

@@ -13,7 +13,6 @@ import com.iformall.service.WxCUserTagsService;
import com.iformall.service.WxQuestionService; import com.iformall.service.WxQuestionService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import net.sf.saxon.trans.Err;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -59,7 +58,7 @@ public class WxQuestionController extends BaseController {
if (wxQuestionConfig.getStatus().equals(EnumQuestionConfigStatus.ON.getCode()) if (wxQuestionConfig.getStatus().equals(EnumQuestionConfigStatus.ON.getCode())
&& questionIds.size() > 0) { && questionIds.size() > 0) {
WxQuestion wxQuestion = new WxQuestion(); WxQuestion wxQuestion = new WxQuestion();
wxQuestion.updateTenantInfo(getTenantInfo());
wxQuestion.updateTenantInfo(wxQuestionConfig);
wxQuestion.setIds(questionIds); wxQuestion.setIds(questionIds);
List<WxQuestion> listQuestion = wxQuestionService.findList(wxQuestion); List<WxQuestion> listQuestion = wxQuestionService.findList(wxQuestion);
if (listQuestion.size() > 0) { if (listQuestion.size() > 0) {
@@ -69,7 +68,7 @@ public class WxQuestionController extends BaseController {
WxQuestion x = q.next(); WxQuestion x = q.next();
wxQuestionLog.setQuestionId(x.getId()); wxQuestionLog.setQuestionId(x.getId());
wxQuestionLog.setUserId(getUserId()); wxQuestionLog.setUserId(getUserId());
wxQuestionLog.updateTenantInfo(getTenantInfo());
wxQuestionLog.updateTenantInfo(wxQuestionConfig);


if(wxQuestionService.findLogList(wxQuestionLog).size()>0){ if(wxQuestionService.findLogList(wxQuestionLog).size()>0){
q.remove(); q.remove();


+ 106
- 21
mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java Просмотреть файл

@@ -15,10 +15,7 @@ import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxCUserVo; import com.iformall.domain.vo.WxCUserVo;
import com.iformall.domain.vo.WxLevelMerchantCVo; import com.iformall.domain.vo.WxLevelMerchantCVo;
import com.iformall.enums.EnumAssignTagsTrigger;
import com.iformall.enums.EnumLevelConfigDiscountStatus;
import com.iformall.enums.EnumScoreType;
import com.iformall.enums.EnumUserType;
import com.iformall.enums.*;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.service.wechat.FmOpenService; import com.iformall.service.wechat.FmOpenService;
import com.iformall.utils.Constant; import com.iformall.utils.Constant;
@@ -43,6 +40,7 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;


@RestController @RestController
@RequestMapping("/api/user") @RequestMapping("/api/user")
@@ -92,6 +90,9 @@ public class WxUserGrantController extends BaseController {
@Autowired @Autowired
WxCreditHistoryService wxCreditHistoryService; WxCreditHistoryService wxCreditHistoryService;


@Autowired
WxMallService mallService;

/** /**
* 微信消息服务验证 * 微信消息服务验证
* *
@@ -160,6 +161,12 @@ public class WxUserGrantController extends BaseController {
if (wxAuthorizerInfo == null) { if (wxAuthorizerInfo == null) {
return new ResultData(ErrorCode.APP_ID_NOT_FOUND); return new ResultData(ErrorCode.APP_ID_NOT_FOUND);
} }
// 集团版,获取子集团list
List<WxMall> mallList = null;
if (wxAuthorizerInfo.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode())) {
mallList = mallService.getSubByParentTenantId(wxAuthorizerInfo.getTenantId());
resultMap.put("subMalls", JSON.toJSONString(mallList));
}


if (isFmOpen) { if (isFmOpen) {
wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
@@ -241,7 +248,30 @@ public class WxUserGrantController extends BaseController {


resultMap.put("token", token); resultMap.put("token", token);
request.setAttribute(Constant.LOGIN_USER_KEY, oldUser.getId()); request.setAttribute(Constant.LOGIN_USER_KEY, oldUser.getId());
request.setAttribute(Constant.TENANT_ID, oldUser.getTenantId());
request.setAttribute(Constant.TENANT_ID, wxAuthorizerInfo.getTenantId());

// 老用户,给出来已选中的mall
if (mallList != null) {
WxMall selectedMall = null;
if (StringUtils.isNotBlank(oldUser.getSubTenantId())) {
final String lastSubTenant = oldUser.getSubTenantId();
List<WxMall> selMallList = mallList.stream().filter(ml -> ml.getTenantId().equalsIgnoreCase(lastSubTenant)).collect(Collectors.toList());
if (selMallList.size() > 0) {
selectedMall = selMallList.get(0);
}
}
if (selectedMall == null){
WxMall firstMall = mallList.get(0);
if (firstMall != null) {
selectedMall = firstMall;
}
}
if (selectedMall != null) {
request.setAttribute(Constant.SUB_TENANT_ID, selectedMall.getTenantId());
resultMap.put("selectedMall", selectedMall.getTenantId());
oldUser.setSubTenantId(selectedMall.getTenantId());
}
}


oldUser.setRegisterIp(ipaddress); oldUser.setRegisterIp(ipaddress);
oldUser.setSessionKey(session_key); oldUser.setSessionKey(session_key);
@@ -254,11 +284,11 @@ public class WxUserGrantController extends BaseController {
oldUser.setOpenAppId(wxAuthorizerInfo.getOpenAppid()); oldUser.setOpenAppId(wxAuthorizerInfo.getOpenAppid());
} }
if (StringUtils.isBlank(oldUser.getSceneAddress()) || if (StringUtils.isBlank(oldUser.getSceneAddress()) ||
oldUser.getSceneAddress().equalsIgnoreCase("undefined")) { // from app.js onLaunch.options.scene
oldUser.getSceneAddress().equalsIgnoreCase(Constant.UNDEFINED)) { // from app.js onLaunch.options.scene
oldUser.setSceneAddress(sceneAddress); oldUser.setSceneAddress(sceneAddress);
} }
if (StringUtils.isBlank(oldUser.getScene()) || if (StringUtils.isBlank(oldUser.getScene()) ||
oldUser.getScene().equals("undefined")) { // from pages/index/index onLoad.options.scene
oldUser.getScene().equals(Constant.UNDEFINED)) { // from pages/index/index onLoad.options.scene
oldUser.setScene(scene); oldUser.setScene(scene);
} }
if (StringUtils.isNotBlank(longitude)) { if (StringUtils.isNotBlank(longitude)) {
@@ -286,12 +316,12 @@ public class WxUserGrantController extends BaseController {
token = newUser.createToken(new Date()); token = newUser.createToken(new Date());


newUser.setRegisterIp(ipaddress); newUser.setRegisterIp(ipaddress);
if (StringUtils.isBlank(newUser.getSceneAddress()) ||
newUser.getSceneAddress().equalsIgnoreCase("undefined")) { // from app.js onLaunch.options.scene
if (StringUtils.isNotBlank(sceneAddress) &&
!sceneAddress.equalsIgnoreCase(Constant.UNDEFINED)) { // from app.js onLaunch.options.scene
newUser.setSceneAddress(sceneAddress); newUser.setSceneAddress(sceneAddress);
} }
if (StringUtils.isBlank(newUser.getScene()) ||
newUser.getScene().equals("undefined")) { // from pages/index/index onLoad.options.scene
if (StringUtils.isNotBlank(scene) &&
!scene.equals(Constant.UNDEFINED)) { // from pages/index/index onLoad.options.scene
newUser.setScene(scene); newUser.setScene(scene);
} }
newUser.setSessionKey(session_key); newUser.setSessionKey(session_key);
@@ -314,6 +344,15 @@ public class WxUserGrantController extends BaseController {
resultMap.put("token", token); resultMap.put("token", token);
request.setAttribute(Constant.LOGIN_USER_KEY, newUser.getId()); request.setAttribute(Constant.LOGIN_USER_KEY, newUser.getId());
request.setAttribute(Constant.TENANT_ID, newUser.getTenantId()); request.setAttribute(Constant.TENANT_ID, newUser.getTenantId());
if (mallList != null) {
WxMall firstMall = mallList.get(0);
if (firstMall != null) {
// 默认选中第一个mall, 或者经纬度最近的那个
request.setAttribute(Constant.SUB_TENANT_ID, firstMall.getTenantId());
resultMap.put("selectedMall", firstMall.getTenantId());
newUser.setSubTenantId(firstMall.getTenantId());
}
}


// 登录后处理 // 登录后处理
int score = wxCUserService.actionAfterLogin(newUser, null); int score = wxCUserService.actionAfterLogin(newUser, null);
@@ -323,6 +362,33 @@ public class WxUserGrantController extends BaseController {
return new ResultData(resultMap); return new ResultData(resultMap);
} }


@PostMapping("/selectMall")
@ApiOperation(value = "用户选中子广场", notes = "{\"tenantId\":\"string\",\"subTenantId\":\"string\"}")
public ResultData selectMall(@RequestBody Map<String, String> map) {
logger.debug(map.toString());

String tenantId = map.get("tenantId");
String subTenantId = map.get("subTenantId");

if (StringUtils.isBlank(tenantId)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "tenantId不能为空");
}
if (StringUtils.isBlank(subTenantId)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "subTenantId不能为空");
}

WxCUser user = getUser();
if (user.getTenantId().equalsIgnoreCase(tenantId)) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
request.setAttribute(Constant.TENANT_ID, tenantId);
request.setAttribute(Constant.SUB_TENANT_ID, subTenantId);
user.setSubTenantId(subTenantId);
userTokenService.saveOrUpdate(user);
}

return new ResultData();
}

@PostMapping("/updateScene") @PostMapping("/updateScene")
@ApiOperation(value = "用户更新scene", notes = "{\"scene\":\"string\"}") @ApiOperation(value = "用户更新scene", notes = "{\"scene\":\"string\"}")
public ResultData updateScene(@RequestBody Map<String, String> map) { public ResultData updateScene(@RequestBody Map<String, String> map) {
@@ -331,8 +397,9 @@ public class WxUserGrantController extends BaseController {
String scene = map.get("scene"); String scene = map.get("scene");


WxCUser user = getUser(); WxCUser user = getUser();
if (StringUtils.isBlank(user.getScene())) {
if(StringUtils.isNotBlank(scene)) {
if (StringUtils.isBlank(user.getScene()) ||
user.getScene().equalsIgnoreCase(Constant.UNDEFINED)) {
if(StringUtils.isNotBlank(scene) && scene.equalsIgnoreCase(Constant.UNDEFINED)) {
user.setScene(scene); user.setScene(scene);
wxCUserService.updateScene(user); wxCUserService.updateScene(user);
} }
@@ -383,10 +450,16 @@ public class WxUserGrantController extends BaseController {
private void updateAppAccessToken(WxAppinfo wxAppinfo, WxMaService wxMaService) { private void updateAppAccessToken(WxAppinfo wxAppinfo, WxMaService wxMaService) {
try { try {
String accessToken = wxMaService.getAccessToken(true); String accessToken = wxMaService.getAccessToken(true);
wxAppinfo.setAccessToken(accessToken);
wxAppinfo.setLastTokenTime(new Date());
wxAppinfo.setExpiresIn(7200);
wxAppinfoService.saveOrUpdate(wxAppinfo);
WxAppinfo updateApp = new WxAppinfo();
updateApp.setId(wxAppinfo.getId());
updateApp.setAccessToken(accessToken);
updateApp.setLastTokenTime(new Date());
updateApp.setExpiresIn(7200);
wxAppinfo.setAccessToken(updateApp.getAccessToken());
wxAppinfo.setLastTokenTime(updateApp.getLastTokenTime());
wxAppinfo.setExpiresIn(updateApp.getExpiresIn());
wxAppinfoService.saveOrUpdate(updateApp);

} catch (WxErrorException e) { } catch (WxErrorException e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
} catch (Exception e) { } catch (Exception e) {
@@ -434,6 +507,15 @@ public class WxUserGrantController extends BaseController {
WxMaUserInfo userInfo = wxMaService.getUserService().getUserInfo(session_key, encryptedData, iv); WxMaUserInfo userInfo = wxMaService.getUserService().getUserInfo(session_key, encryptedData, iv);
if (userInfo != null) { if (userInfo != null) {
logger.debug(userInfo.toString()); logger.debug(userInfo.toString());
WxCUser updateUser = new WxCUser();
updateUser.setId(user.getId());
updateUser.setUnionId(userInfo.getUnionId());
updateUser.setNickName(userInfo.getNickName());
updateUser.setGender(Integer.parseInt(userInfo.getGender()));
updateUser.setAvatarUrl(userInfo.getAvatarUrl());
updateUser.setProvince(userInfo.getProvince());
updateUser.setCity(userInfo.getCity());
updateUser.setLanguage(userInfo.getLanguage());
user.setUnionId(userInfo.getUnionId()); user.setUnionId(userInfo.getUnionId());
user.setNickName(userInfo.getNickName()); user.setNickName(userInfo.getNickName());
user.setGender(Integer.parseInt(userInfo.getGender())); user.setGender(Integer.parseInt(userInfo.getGender()));
@@ -441,7 +523,7 @@ public class WxUserGrantController extends BaseController {
user.setProvince(userInfo.getProvince()); user.setProvince(userInfo.getProvince());
user.setCity(userInfo.getCity()); user.setCity(userInfo.getCity());
user.setLanguage(userInfo.getLanguage()); user.setLanguage(userInfo.getLanguage());
wxCUserService.saveOrUpdate(user);
wxCUserService.saveOrUpdate(updateUser);


if(bFirstNickName) { if(bFirstNickName) {
// 首次获取昵称 // 首次获取昵称
@@ -681,7 +763,7 @@ public class WxUserGrantController extends BaseController {
public ResultData carCount() { public ResultData carCount() {
WxCUser user = getUser(); WxCUser user = getUser();
WxCUserCar userCar = new WxCUserCar(); WxCUserCar userCar = new WxCUserCar();
userCar.updateTenantInfo(getTenantInfo());
userCar.updateTenantInfo(user);
userCar.setCUserId(user.getId()); userCar.setCUserId(user.getId());
Integer count = wxCUserCarService.countUserCar(userCar); Integer count = wxCUserCarService.countUserCar(userCar);
if (count > 0) { if (count > 0) {
@@ -761,11 +843,14 @@ public class WxUserGrantController extends BaseController {
if (wxCUserBasicInfoService.getById(getUserId()) == null) if (wxCUserBasicInfoService.getById(getUserId()) == null)
return new ResultData(ErrorCode.USER_IS_NOT_MEMBER); return new ResultData(ErrorCode.USER_IS_NOT_MEMBER);


TenantEntity tenantEntity = getTenantInfo();

if (wxCUserBasicInfo.getName() != null || if (wxCUserBasicInfo.getName() != null ||
wxCUserBasicInfo.getBirthdate() != null || wxCUserBasicInfo.getBirthdate() != null ||
wxCUserBasicInfo.getSex() != null || wxCUserBasicInfo.getSex() != null ||
wxCUserBasicInfo.getAddress() != null) { wxCUserBasicInfo.getAddress() != null) {
WxCUserBasicInfo record = new WxCUserBasicInfo(); WxCUserBasicInfo record = new WxCUserBasicInfo();
record.updateTenantInfo(tenantEntity);
record.setName(wxCUserBasicInfo.getName()); record.setName(wxCUserBasicInfo.getName());
record.setBirthdate(wxCUserBasicInfo.getBirthdate()); record.setBirthdate(wxCUserBasicInfo.getBirthdate());
record.setSex(wxCUserBasicInfo.getSex()); record.setSex(wxCUserBasicInfo.getSex());
@@ -777,7 +862,7 @@ public class WxUserGrantController extends BaseController {
//增加积分 //增加积分
WxCreditHistory wxCreditHistory = new WxCreditHistory(); WxCreditHistory wxCreditHistory = new WxCreditHistory();
wxCreditHistory.setCUserId(record.getId()); wxCreditHistory.setCUserId(record.getId());
wxCreditHistory.updateTenantInfo(getTenantInfo());
wxCreditHistory.updateTenantInfo(tenantEntity);
wxCreditHistory.setCreateDate(new Date()); wxCreditHistory.setCreateDate(new Date());
wxCreditHistory.setCreditType(EnumScoreType.COMPLETE_INFO.getCode()); wxCreditHistory.setCreditType(EnumScoreType.COMPLETE_INFO.getCode());
wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode()); wxCreditHistory.setOperatorType(EnumUserType.CUSER.getCode());
@@ -796,7 +881,6 @@ public class WxUserGrantController extends BaseController {
@RequestMapping("/getDiscountInfo") @RequestMapping("/getDiscountInfo")
@ApiOperation(value = "获取用户折扣率", notes = "") @ApiOperation(value = "获取用户折扣率", notes = "")
public ResultData getDiscountInfo() { public ResultData getDiscountInfo() {

WxCUser user = getUser(); WxCUser user = getUser();


List<WxLevelConfig> levelList = wxLevelConfigService.getByTenantId(user.getTenantId()); List<WxLevelConfig> levelList = wxLevelConfigService.getByTenantId(user.getTenantId());
@@ -811,6 +895,7 @@ public class WxUserGrantController extends BaseController {
} }
} }
WxLevelMerchant levelMerchant = new WxLevelMerchant(); WxLevelMerchant levelMerchant = new WxLevelMerchant();
levelMerchant.updateTenantInfo(getTenantInfo());
levelMerchant.setLevelId(levelId); levelMerchant.setLevelId(levelId);
List<WxLevelMerchantCVo> levelMerchantList = wxLevelConfigService.findListCVo(levelMerchant); List<WxLevelMerchantCVo> levelMerchantList = wxLevelConfigService.findListCVo(levelMerchant);




+ 3
- 0
mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java Просмотреть файл

@@ -62,6 +62,9 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
//设置userId到request里,后续根据userId,获取用户信息 //设置userId到request里,后续根据userId,获取用户信息
request.setAttribute(Constant.LOGIN_USER_KEY, wxCUser.getId()); request.setAttribute(Constant.LOGIN_USER_KEY, wxCUser.getId());
request.setAttribute(Constant.TENANT_ID, wxCUser.getTenantId()); request.setAttribute(Constant.TENANT_ID, wxCUser.getTenantId());
if (StringUtils.isNotBlank(wxCUser.getSubTenantId())) {
request.setAttribute(Constant.SUB_TENANT_ID, wxCUser.getSubTenantId());
}


return true; return true;
} }


+ 78
- 0
mallinkCApi/src/main/java/com/iformall/tenant/TenantInfoImpl.java Просмотреть файл

@@ -26,8 +26,24 @@ public class TenantInfoImpl implements TenantInfo {
return tenantId; return tenantId;
} }


@Override
public String getSubTenantId() {
String subTenantId = null;
try {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
subTenantId = (String) request.getAttribute(Constant.SUB_TENANT_ID);
return subTenantId;
} catch (Exception e) {
logger.error(e.getMessage());
}
return subTenantId;
}

@Override @Override
public boolean doTableFilter(String tableName) { public boolean doTableFilter(String tableName) {
if ("wx_mall".equals(tableName)) {
return true;
}
if ("mall_permission".equals(tableName)) { if ("mall_permission".equals(tableName)) {
return true; return true;
} }
@@ -72,6 +88,68 @@ public class TenantInfoImpl implements TenantInfo {
return false; return false;
} }


@Override
public boolean doTableFilterSub(String tableName) {
if ("wx_mall".equals(tableName)) {
return true;
}
if ("wx_appinfo".equals(tableName)) {
return true;
}
if ("wx_authorizer_info".equals(tableName)) {
return true;
}
if ("wx_c_user".equals(tableName)) {
return true;
}
if ("wx_c_user_basic_info".equals(tableName)) {
return true;
}
if ("wx_c_user_car".equals(tableName)) {
return true;
}
if ("wx_c_user_from_b".equals(tableName)) {
return true;
}
if ("wx_c_user_tags".equals(tableName)) {
return true;
}
if ("wx_question".equals(tableName)) {
return true;
}
if ("wx_question_config".equals(tableName)) {
return true;
}
if ("wx_question_log".equals(tableName)) {
return true;
}
if ("wx_user_visit".equals(tableName)) {
return true;
}
if ("wx_level_config".equals(tableName)) {
return true;
}
if ("wx_score_rules".equals(tableName)) {
return true;
}
if ("view_coupon_data".equals(tableName)) {
return true;
}
if ("view_touch_user".equals(tableName)) {
return true;
}
if ("wx_weapp_audit_status".equals(tableName)) {
return true;
}
if ("wx_weapp_code_status".equals(tableName)) {
return true;
}
if ("wx_weapp_release_status".equals(tableName)) {
return true;
}
return false;
}

@Override @Override
public boolean doMappedStatementFIlter(MappedStatement ms) { public boolean doMappedStatementFIlter(MappedStatement ms) {
if ("com.iformall.mapper.WxCUserMapper.getByToken".equals(ms.getId())) if ("com.iformall.mapper.WxCUserMapper.getByToken".equals(ms.getId()))


+ 38
- 26
mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarETCPCallBackController.java Просмотреть файл

@@ -173,24 +173,29 @@ public class WxCarETCPCallBackController extends BaseController {
// 根据orderId获取入场信息,确定租户ID // 根据orderId获取入场信息,确定租户ID
String orderId = paramMap.get(ETCPUtil.ETCP_ORDER_ID); String orderId = paramMap.get(ETCPUtil.ETCP_ORDER_ID);
String etcpTime = paramMap.get(ETCPUtil.ETCP_TIME); String etcpTime = paramMap.get(ETCPUtil.ETCP_TIME);
HashMap<String, String> map = new HashMap<String, String>();
map.put("synId", orderId);
map.put("plateNumber", carNumber);
String tenantId = wxCarCmdLogService.getTenantIdBySynId(map);
WxCarCmdLog carCmdLogQ = new WxCarCmdLog();
carCmdLogQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode());
carCmdLogQ.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode());
carCmdLogQ.setSynId(orderId);
carCmdLogQ.setPlateNumber(carNumber);
WxCarCmdLog tenantInfo = wxCarCmdLogService.getTenantInfoBySynId(carCmdLogQ);
String tenantId = null;
/// if not found syn_id, maybe use user_car to get tenantId /// if not found syn_id, maybe use user_car to get tenantId
if(StringUtils.isBlank(tenantId)) {
if(tenantInfo == null) {
WxCUserCar queryOne = new WxCUserCar(); WxCUserCar queryOne = new WxCUserCar();
queryOne.setCarNumber(carNumber); queryOne.setCarNumber(carNumber);
WxCUserCar userCar = wxCUserCarService.getOnlyOne(queryOne); WxCUserCar userCar = wxCUserCarService.getOnlyOne(queryOne);
if(userCar != null) { if(userCar != null) {
tenantId = userCar.getTenantId(); tenantId = userCar.getTenantId();
} }
if (StringUtils.isNotBlank(tenantId)) {
carCmdLogQ.setTenantId(tenantId);
}
} else {
carCmdLogQ.updateTenantInfo(tenantInfo);
} }

// 检查是否有重复数据 // 检查是否有重复数据
if(StringUtils.isNotBlank(tenantId)) {
map.put("tenantId", tenantId);
}

String paidServiceFee = paramMap.get(ETCPUtil.ETCP_PAID_SERVICE_FEE); String paidServiceFee = paramMap.get(ETCPUtil.ETCP_PAID_SERVICE_FEE);
String fee = paramMap.get(ETCPUtil.ETCP_FEE); String fee = paramMap.get(ETCPUtil.ETCP_FEE);
Date feeTime = null; Date feeTime = null;
@@ -202,19 +207,24 @@ public class WxCarETCPCallBackController extends BaseController {
logger.error("解析fee time出错" + etcpTime); logger.error("解析fee time出错" + etcpTime);
} }
} }
map.put("plateNumber", carNumber);
map.put("orderId", orderId);
map.put("fee", fee);
map.put("feeTime", etcpTime);
WxCarCmdLog carCmdLog = wxCarCmdLogService.getByOrderId(map);
carCmdLogQ.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PAY_MANUAL.getCode());
carCmdLogQ.setPlateNumber(carNumber);
carCmdLogQ.setOrderId(orderId);
carCmdLogQ.setFee(fee);
carCmdLogQ.setFeeTime(etcpTime);
WxCarCmdLog carCmdLog = wxCarCmdLogService.getByOrderId(carCmdLogQ);
if(carCmdLog != null) { if(carCmdLog != null) {
logger.error("ETCP order paid 已入库: " + orderId); logger.error("ETCP order paid 已入库: " + orderId);
} }


Date currentDate = new Date(); Date currentDate = new Date();
WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); WxCarCmdLog wxCarCmdLog = new WxCarCmdLog();
if(StringUtils.isNotBlank(tenantId)) {
wxCarCmdLog.setTenantId(tenantId);
if (tenantInfo != null) {
wxCarCmdLog.updateTenantInfo(tenantInfo);
} else {
if (StringUtils.isNotBlank(tenantId)) {
wxCarCmdLog.setTenantId(tenantId);
}
} }
if(carCmdLog != null) { if(carCmdLog != null) {
// 如果有15分钟的已支付的数据,自动覆盖 // 如果有15分钟的已支付的数据,自动覆盖
@@ -290,7 +300,6 @@ public class WxCarETCPCallBackController extends BaseController {
wxCarCmdLog.setUpdateDate(currentDate); wxCarCmdLog.setUpdateDate(currentDate);


String etcpParkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); String etcpParkId = paramMap.get(ETCPUtil.ETCP_PARK_ID);
String tenantId = null;
WxPark parkQ = new WxPark(); WxPark parkQ = new WxPark();
parkQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); parkQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode());
parkQ.setParkingId(etcpParkId); parkQ.setParkingId(etcpParkId);
@@ -299,13 +308,11 @@ public class WxCarETCPCallBackController extends BaseController {
logger.error("etcpParkInCallback: ETCP车场未找到" + etcpParkId); logger.error("etcpParkInCallback: ETCP车场未找到" + etcpParkId);
//return new Result(ErrorCode.CAR_PARK_NOT_FOUND.getCode(), "ETCP车场未找到"+ etcpParkId); //return new Result(ErrorCode.CAR_PARK_NOT_FOUND.getCode(), "ETCP车场未找到"+ etcpParkId);
} else { } else {
tenantId = park.getTenantId();
wxCarCmdLog.updateTenantInfo(park); wxCarCmdLog.updateTenantInfo(park);
} }


String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER); String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER);
String synId = paramMap.get(ETCPUtil.ETCP_SYN_ID); String synId = paramMap.get(ETCPUtil.ETCP_SYN_ID);
String parkId = paramMap.get(ETCPUtil.ETCP_PARK_ID);
String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME); String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME);
String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE); String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE);
String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME); String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME);
@@ -316,8 +323,11 @@ public class WxCarETCPCallBackController extends BaseController {
HashMap<String, Object> map = new HashMap<String, Object>(); HashMap<String, Object> map = new HashMap<String, Object>();
map.put("synId", synId); map.put("synId", synId);
map.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); map.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode());
if(tenantId != null) {
map.put("tenantId", tenantId);
if (StringUtils.isNotBlank(wxCarCmdLog.getTenantId())) {
map.put("tenantId", wxCarCmdLog.getTenantId());
}
if (StringUtils.isNotBlank(wxCarCmdLog.getSubTenantId())) {
map.put("subTenantId", wxCarCmdLog.getSubTenantId());
} }
WxCarCmdLog carCmdLog = wxCarCmdLogService.getBySynId(map); WxCarCmdLog carCmdLog = wxCarCmdLogService.getBySynId(map);
if(carCmdLog != null) { if(carCmdLog != null) {
@@ -338,13 +348,16 @@ public class WxCarETCPCallBackController extends BaseController {
if (!StringUtils.isBlank(carNumber)) { if (!StringUtils.isBlank(carNumber)) {
// 根据车牌查找用户 // 根据车牌查找用户
WxCUserCar userCarQ = new WxCUserCar(); WxCUserCar userCarQ = new WxCUserCar();
userCarQ.setTenantId(tenantId);
if (StringUtils.isNotBlank(wxCarCmdLog.getTenantId())) {
userCarQ.setTenantId(wxCarCmdLog.getTenantId());
}
userCarQ.setCarNumber(carNumber); userCarQ.setCarNumber(carNumber);
userCarQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); userCarQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode());
// TODO 可能多用户关联同一张车牌 // TODO 可能多用户关联同一张车牌
List<WxCUserCar> userCarList = wxCUserCarService.getList(userCarQ); List<WxCUserCar> userCarList = wxCUserCarService.getList(userCarQ);
boolean bFirst = true; boolean bFirst = true;
for (WxCUserCar userCar : userCarList) { for (WxCUserCar userCar : userCarList) {
userCar.setSubTenantId(park.getSubTenantId());
wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar); wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar);
WxCUser cUser = wxCUserService.getById(userCar.getCUserId()); WxCUser cUser = wxCUserService.getById(userCar.getCUserId());
if(cUser != null){ if(cUser != null){
@@ -363,7 +376,7 @@ public class WxCarETCPCallBackController extends BaseController {
WxCarPayRecord record = new WxCarPayRecord(); WxCarPayRecord record = new WxCarPayRecord();
record.setVendorType(wxCarCmdLog.getVendorType()); record.setVendorType(wxCarCmdLog.getVendorType());
record.setSynId(synId); record.setSynId(synId);
record.setParkId(parkId);
record.setParkId(etcpParkId);
record.setParkName(parkName); record.setParkName(parkName);
record.setUserType(userType); record.setUserType(userType);
record.setPlateNumber(carNumber); record.setPlateNumber(carNumber);
@@ -373,7 +386,7 @@ public class WxCarETCPCallBackController extends BaseController {
record.setFixParkingId(fixParkingId); record.setFixParkingId(fixParkingId);
record.setRemainingDays(remainingDays); record.setRemainingDays(remainingDays);
record.setPhone(phoneStrs); record.setPhone(phoneStrs);
record.setTenantId(tenantId);
record.updateTenantInfo(wxCarCmdLog);


WxCarPayRecord query = new WxCarPayRecord(); WxCarPayRecord query = new WxCarPayRecord();
query.setSynId(synId); query.setSynId(synId);
@@ -426,7 +439,6 @@ public class WxCarETCPCallBackController extends BaseController {
String exitTime = paramMap.get(ETCPUtil.ETCP_EXIT_TIME); String exitTime = paramMap.get(ETCPUtil.ETCP_EXIT_TIME);
String stayedTime = paramMap.get(ETCPUtil.ETCP_STAYED_TIME); String stayedTime = paramMap.get(ETCPUtil.ETCP_STAYED_TIME);
String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER); String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER);
String parkId = paramMap.get(ETCPUtil.ETCP_PARK_ID);
String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME); String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME);
String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE); String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE);
String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME); String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME);
@@ -445,7 +457,7 @@ public class WxCarETCPCallBackController extends BaseController {
} }
record.setVendorType(wxCarCmdLog.getVendorType()); record.setVendorType(wxCarCmdLog.getVendorType());
record.setSynId(synId); record.setSynId(synId);
record.setParkId(parkId);
record.setParkId(etcpParkId);
record.setParkName(parkName); record.setParkName(parkName);
record.setUserType(userType); record.setUserType(userType);
record.setPlateNumber(carNumber); record.setPlateNumber(carNumber);


+ 1
- 0
mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarTJDCallBackController.java Просмотреть файл

@@ -164,6 +164,7 @@ public class WxCarTJDCallBackController extends BaseController {
List<WxCUserCar> userCarList = wxCUserCarService.getList(userCarQ); List<WxCUserCar> userCarList = wxCUserCarService.getList(userCarQ);
boolean bFirst = true; boolean bFirst = true;
for (WxCUserCar userCar : userCarList) { for (WxCUserCar userCar : userCarList) {
userCar.setSubTenantId(park.getSubTenantId());
wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar); wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar);
WxCUser cUser = wxCUserService.getById(userCar.getCUserId()); WxCUser cUser = wxCUserService.getById(userCar.getCUserId());
if(cUser != null){ if(cUser != null){


+ 0
- 2
mallinkCallback/src/main/java/com/iformall/controller/device/KwBoxV1Controller.java Просмотреть файл

@@ -13,9 +13,7 @@ import com.iformall.enums.EnumBoxRegisterStatus;
import com.iformall.service.kw.KwBoxCmdHistoryService; import com.iformall.service.kw.KwBoxCmdHistoryService;
import com.iformall.service.kw.KwBoxService; import com.iformall.service.kw.KwBoxService;


import com.iformall.utils.HashUtil;
import com.iformall.utils.Utility; import com.iformall.utils.Utility;
import com.sun.crypto.provider.HmacSHA1;
import io.netty.util.internal.StringUtil; import io.netty.util.internal.StringUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;


+ 3
- 2
mallinkCallback/src/main/java/com/iformall/controller/device/WxDeviceScreenAdController.java Просмотреть файл

@@ -119,9 +119,10 @@ public class WxDeviceScreenAdController extends BaseController {
@SystemControllerLog(description = "广告屏-基础信息") @SystemControllerLog(description = "广告屏-基础信息")
public Result info(@RequestParam String deviceId) { public Result info(@RequestParam String deviceId) {
WxDevice wxDevice = findDevice(deviceId); WxDevice wxDevice = findDevice(deviceId);
if (wxDevice == null)
if (wxDevice == null) {
return new ResultData(ErrorCode.DEVICE_NOT_FOUND); return new ResultData(ErrorCode.DEVICE_NOT_FOUND);
return new ResultData(wxMallService.getByTenantId(wxDevice.getTenantId()));
}
return new ResultData(wxMallService.getByTenantInfo(wxDevice));
} }


} }

+ 1
- 1
mallinkCallback/src/main/java/com/iformall/shiro/MyShiroRealm.java Просмотреть файл

@@ -28,7 +28,7 @@ public class MyShiroRealm extends AuthorizingRealm {
@Override @Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
MallUserInfo user= (MallUserInfo) SecurityUtils.getSubject().getPrincipal(); MallUserInfo user= (MallUserInfo) SecurityUtils.getSubject().getPrincipal();
Set<String> permissionSet = userService.getUserPermissions(user);
Set<String> permissionSet = userService.getUserPermissions(user, true);
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.setStringPermissions(permissionSet); info.setStringPermissions(permissionSet);
return info; return info;


+ 106
- 51
mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java Просмотреть файл

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.PromotionCalc; import com.iformall.domain.vo.PromotionCalc;
import com.iformall.domain.vo.WxCouponOrderCVo; import com.iformall.domain.vo.WxCouponOrderCVo;
import com.iformall.domain.vo.WxLevelMerchantCVo; import com.iformall.domain.vo.WxLevelMerchantCVo;
@@ -87,35 +88,45 @@ public class PosServiceImpl implements PosService {
throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND); throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND);
} }


PosMallConfig config = posMallConfigService.getByTenantId(tenantId);
TenantEntity tenantEntity = mall.getTenantInfo();

PosMallConfig config = posMallConfigService.getByTenantInfo(tenantEntity);
if (config == null) { if (config == null) {
logger.error(ErrorCode.MALL_INFO_NOT_FOUND.getMessage()); logger.error(ErrorCode.MALL_INFO_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND); throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND);
} }


WxMerchantBUser user = new WxMerchantBUser();
user.setTenantId(tenantId);
user.setPhone(phone);
user.setStatus(EnumMerchantBUserStatus.VALID.getCode());
WxMerchantBUser user1 = null;
WxMerchantBUser userQ = new WxMerchantBUser();
userQ.updateTenantInfo(tenantEntity);
userQ.setPhone(phone);
userQ.setStatus(EnumMerchantBUserStatus.VALID.getCode());
WxMerchantBUser orgUser = null;
List<WxMerchantBUser> orgUserList = null;


try { try {
user1 = merchantBUserService.getBUserByAppId(user);
orgUserList = merchantBUserService.getBUserByAppId(userQ);
} catch (Exception e) { } catch (Exception e) {
String errMessage = ErrorCode.MERCHANT_BUSER_NOT_VALID.getMessage() + "phone: " + phone + ", " +e.getMessage(); String errMessage = ErrorCode.MERCHANT_BUSER_NOT_VALID.getMessage() + "phone: " + phone + ", " +e.getMessage();
throw new MallinkException(ErrorCode.MERCHANT_BUSER_NOT_VALID.getCode(), errMessage); throw new MallinkException(ErrorCode.MERCHANT_BUSER_NOT_VALID.getCode(), errMessage);
} }
if (user1 != null) {
if (orgUserList.size() > 0) {
orgUser = orgUserList.get(0);
}
if (orgUser != null) {
// check merchant 状态 // check merchant 状态
WxMerchant merchant = checkAndGetMerchant(user1.getMerchantId());
WxMerchant merchant = checkAndGetMerchant(orgUser.getMerchantId());
// check password // check password
if (user1.getUserPwd().equalsIgnoreCase(password)) {
retMap.put(WxPayConstant.TENANT_ID, user1.getTenantId());
if (orgUser.getUserPwd().equalsIgnoreCase(password)) {
if (StringUtils.isBlank(orgUser.getSubTenantId())) {
retMap.put(WxPayConstant.TENANT_ID, orgUser.getTenantId());
} else {
retMap.put(WxPayConstant.TENANT_ID, orgUser.getSubTenantId());
}
retMap.put(WxPayConstant.MALL_NAME, mall.getName()); retMap.put(WxPayConstant.MALL_NAME, mall.getName());
retMap.put(WxPayConstant.MERCHANT_ID, String.valueOf(user1.getMerchantId()));
retMap.put(WxPayConstant.MERCHANT_ID, String.valueOf(orgUser.getMerchantId()));
retMap.put(WxPayConstant.MERCHANT_NAME, merchant.getName()); retMap.put(WxPayConstant.MERCHANT_NAME, merchant.getName());
retMap.put(WxPayConstant.MERCHANT_IMG, merchant.getImgUrl()); retMap.put(WxPayConstant.MERCHANT_IMG, merchant.getImgUrl());
retMap.put(WxPayConstant.BUSER_ID, String.valueOf(user1.getId()));
retMap.put(WxPayConstant.BUSER_ID, String.valueOf(orgUser.getId()));


JSONObject qrCodeInfo = new JSONObject(); JSONObject qrCodeInfo = new JSONObject();
qrCodeInfo.put(WxPayConstant.REG_QRCODE_URL, mall.getImgQrcodeWeapp()); qrCodeInfo.put(WxPayConstant.REG_QRCODE_URL, mall.getImgQrcodeWeapp());
@@ -188,8 +199,15 @@ public class PosServiceImpl implements PosService {
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR); throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR);
} }


WxMall mall = mallService.getByTenantId(tenantId);
if (mall == null) {
logger.error(ErrorCode.MALL_INFO_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND);
}
TenantEntity tenantEntity = mall.getTenantInfo();

// 1. POS 支持 配置 // 1. POS 支持 配置
PosMallConfig config = posMallConfigService.getByTenantId(tenantId);
PosMallConfig config = posMallConfigService.getByTenantInfo(tenantEntity);
if (config == null) { if (config == null) {
logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND);
@@ -284,7 +302,7 @@ public class PosServiceImpl implements PosService {
errParam2(WxPayConstant.MEM_ID, WxPayConstant.MEM_PHONE); errParam2(WxPayConstant.MEM_ID, WxPayConstant.MEM_PHONE);
} }
// 10. 获取会员信息 // 10. 获取会员信息
user = getMemUser(tenantId, memIdStr, memPhoneStr);
user = getMemUser(merchant, memIdStr, memPhoneStr);
} }


if (user == null) { if (user == null) {
@@ -309,12 +327,15 @@ public class PosServiceImpl implements PosService {
promotionCalc.setPromotionAmount(0); promotionCalc.setPromotionAmount(0);
promotionCalc.setAmountLeftAfterPay(orderAmountLeft); promotionCalc.setAmountLeftAfterPay(orderAmountLeft);
// 12. 会员折扣 // 12. 会员折扣
JSONObject discountObj = getMemLevelDiscount(promotionCalc, config.getDiscount(), tenantId, user, merchantId);
JSONObject discountObj = getMemLevelDiscount(promotionCalc, config.getDiscount(), tenantEntity, user, merchantId);
promotionInfo.put(WxPayConstant.MEMBER_DISCOUNT, discountObj); promotionInfo.put(WxPayConstant.MEMBER_DISCOUNT, discountObj);
// 14. 获取用户可用券列表 // 14. 获取用户可用券列表
if (!config.getCoupon().equals(EnumPosCouponEnableType.Disable.getCode())) { if (!config.getCoupon().equals(EnumPosCouponEnableType.Disable.getCode())) {
Map<String, Object> coQ = new HashMap<>(); Map<String, Object> coQ = new HashMap<>();
coQ.put("tenantId", tenantId); coQ.put("tenantId", tenantId);
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
coQ.put("subTenantId", tenantEntity.getSubTenantId());
}
coQ.put("cUserId", user.getId()); coQ.put("cUserId", user.getId());
coQ.put("merchantId", merchantId); coQ.put("merchantId", merchantId);
List<WxCouponOrderCVo> avaCoList = couponOrderMapper.findAvailCouponOrder(coQ); List<WxCouponOrderCVo> avaCoList = couponOrderMapper.findAvailCouponOrder(coQ);
@@ -663,7 +684,7 @@ public class PosServiceImpl implements PosService {
return couponOrderCVo; return couponOrderCVo;
} }


private WxCUser getMemUser(String tenantId, String memIdStr, String memPhoneStr) {
private WxCUser getMemUser(TenantEntity tenantEntity, String memIdStr, String memPhoneStr) {
WxCUser user = null; WxCUser user = null;
if (StringUtils.isNotBlank(memIdStr)) { if (StringUtils.isNotBlank(memIdStr)) {
Long memId; Long memId;
@@ -678,7 +699,7 @@ public class PosServiceImpl implements PosService {
} }
if (StringUtils.isNotBlank(memPhoneStr)) { if (StringUtils.isNotBlank(memPhoneStr)) {
WxCUser q = new WxCUser(); WxCUser q = new WxCUser();
q.setTenantId(tenantId);
q.updateTenantInfo(tenantEntity);
q.setPhone(memPhoneStr); q.setPhone(memPhoneStr);
user = cUserService.getByObject(q); user = cUserService.getByObject(q);
} }
@@ -689,18 +710,18 @@ public class PosServiceImpl implements PosService {
* 会员折扣 * 会员折扣
* @param promotionCalc * @param promotionCalc
* @param discountConfig * @param discountConfig
* @param tenantId
* @param tenantEntity
* @param user * @param user
* @param merchantId * @param merchantId
* @return * @return
*/ */
private JSONObject getMemLevelDiscount(PromotionCalc promotionCalc, Integer discountConfig, String tenantId, WxCUser user, Long merchantId) {
private JSONObject getMemLevelDiscount(PromotionCalc promotionCalc, Integer discountConfig, TenantEntity tenantEntity, WxCUser user, Long merchantId) {
JSONObject discountObj = new JSONObject(); JSONObject discountObj = new JSONObject();
Integer discount = 100; Integer discount = 100;
if (discountConfig.equals(EnumPosEnableType.Enable.getCode())) { if (discountConfig.equals(EnumPosEnableType.Enable.getCode())) {
String level = WxLevelConfigService.DEFAULT_LEVEL; String level = WxLevelConfigService.DEFAULT_LEVEL;
// 1. 会员级别Level // 1. 会员级别Level
List<WxLevelConfig> levelList = levelConfigService.getByTenantId(tenantId);
List<WxLevelConfig> levelList = levelConfigService.getByTenantId(tenantEntity.getTenantId());
Long levelId = 0L; Long levelId = 0L;
for (WxLevelConfig levelConfig : levelList) { for (WxLevelConfig levelConfig : levelList) {
if (user.getScore() >= levelConfig.getPoints()) { if (user.getScore() >= levelConfig.getPoints()) {
@@ -712,7 +733,7 @@ public class PosServiceImpl implements PosService {


// 2. 会员级别对应折扣discount // 2. 会员级别对应折扣discount
WxLevelMerchant levelMerchant = new WxLevelMerchant(); WxLevelMerchant levelMerchant = new WxLevelMerchant();
levelMerchant.setTenantId(tenantId);
levelMerchant.updateTenantInfo(tenantEntity);
levelMerchant.setLevelId(levelId); levelMerchant.setLevelId(levelId);
levelMerchant.setMerchantId(merchantId); levelMerchant.setMerchantId(merchantId);
List<WxLevelMerchantCVo> levelMerchantList = levelConfigService.findListCVo(levelMerchant); List<WxLevelMerchantCVo> levelMerchantList = levelConfigService.findListCVo(levelMerchant);
@@ -798,8 +819,16 @@ public class PosServiceImpl implements PosService {
throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR); throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR);
} }


WxMall mall = mallService.getByTenantId(tenantId);
if (mall == null) {
logger.error(ErrorCode.MALL_INFO_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND);
}

TenantEntity tenantEntity = mall.getTenantInfo();

// 1. POS 支持 配置 // 1. POS 支持 配置
PosMallConfig config = posMallConfigService.getByTenantId(tenantId);
PosMallConfig config = posMallConfigService.getByTenantInfo(tenantEntity);
if (config == null) { if (config == null) {
logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND);
@@ -880,7 +909,7 @@ public class PosServiceImpl implements PosService {
errParam2(WxPayConstant.MEM_ID, WxPayConstant.MEM_PHONE); errParam2(WxPayConstant.MEM_ID, WxPayConstant.MEM_PHONE);
} }
// 10. 获取会员信息 // 10. 获取会员信息
WxCUser user = getMemUser(tenantId, memIdStr, memPhoneStr);
WxCUser user = getMemUser(merchant, memIdStr, memPhoneStr);
if (user == null) { if (user == null) {
logger.error(ErrorCode.USER_NOT_MEMBER.getMessage()); logger.error(ErrorCode.USER_NOT_MEMBER.getMessage());
throw new MallinkException(ErrorCode.USER_NOT_MEMBER); throw new MallinkException(ErrorCode.USER_NOT_MEMBER);
@@ -903,12 +932,15 @@ public class PosServiceImpl implements PosService {
promotionCalc.setPromotionAmount(0); promotionCalc.setPromotionAmount(0);
promotionCalc.setAmountLeftAfterPay(orderAmountLeft); promotionCalc.setAmountLeftAfterPay(orderAmountLeft);
// 12. 会员折扣 // 12. 会员折扣
JSONObject discountObj = getMemLevelDiscount(promotionCalc, config.getDiscount(), tenantId, user, merchantId);
JSONObject discountObj = getMemLevelDiscount(promotionCalc, config.getDiscount(), tenantEntity, user, merchantId);
promotionInfo.put(WxPayConstant.MEMBER_DISCOUNT, discountObj); promotionInfo.put(WxPayConstant.MEMBER_DISCOUNT, discountObj);
// 14. 获取用户可用券列表 // 14. 获取用户可用券列表
if (!config.getCoupon().equals(EnumPosCouponEnableType.Disable.getCode())) { if (!config.getCoupon().equals(EnumPosCouponEnableType.Disable.getCode())) {
Map<String, Object> coQ = new HashMap<>(); Map<String, Object> coQ = new HashMap<>();
coQ.put("tenantId", tenantId); coQ.put("tenantId", tenantId);
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
coQ.put("subTenantId", tenantEntity.getSubTenantId());
}
coQ.put("cUserId", user.getId()); coQ.put("cUserId", user.getId());
coQ.put("merchantId", merchantId); coQ.put("merchantId", merchantId);
List<WxCouponOrderCVo> avaCoList = couponOrderMapper.findAvailCouponOrder(coQ); List<WxCouponOrderCVo> avaCoList = couponOrderMapper.findAvailCouponOrder(coQ);
@@ -1144,7 +1176,7 @@ public class PosServiceImpl implements PosService {
throw new MallinkException(ErrorCode.POS_COUPON_REFUND_ERROR.getCode(), errMesg); throw new MallinkException(ErrorCode.POS_COUPON_REFUND_ERROR.getCode(), errMesg);
} }
// 10. 获取会员信息 // 10. 获取会员信息
WxCUser user = getMemUser(tenantId, memIdStr, memPhoneStr);
WxCUser user = getMemUser(merchant, memIdStr, memPhoneStr);
if (user == null) { if (user == null) {
logger.error(ErrorCode.USER_NOT_MEMBER.getMessage()); logger.error(ErrorCode.USER_NOT_MEMBER.getMessage());
throw new MallinkException(ErrorCode.USER_NOT_MEMBER); throw new MallinkException(ErrorCode.USER_NOT_MEMBER);
@@ -1186,7 +1218,7 @@ public class PosServiceImpl implements PosService {
int num = 0; int num = 0;
// 1. insert posOrderId // 1. insert posOrderId
PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify();
posCouponOrderVerify.setTenantId(couponOrderCVo.getTenantId());
posCouponOrderVerify.updateTenantInfo(couponOrderCVo);
posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId()); posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId());
posCouponOrderVerify.setPosOrderId(posOrderId); posCouponOrderVerify.setPosOrderId(posOrderId);
posCouponOrderVerify.setOrderFrom(EnumOrderFrom.POS.getCode()); posCouponOrderVerify.setOrderFrom(EnumOrderFrom.POS.getCode());
@@ -1204,7 +1236,7 @@ public class PosServiceImpl implements PosService {
try { try {
WxCouponOrder couponOrder = new WxCouponOrder(); WxCouponOrder couponOrder = new WxCouponOrder();
couponOrder.setId(couponOrderCVo.getId()); couponOrder.setId(couponOrderCVo.getId());
couponOrder.setTenantId(couponOrderCVo.getTenantId());
couponOrder.updateTenantInfo(couponOrderCVo);
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode()); couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.POS_PRE_VERIFY.getCode());
couponOrder.setBUserId(buUserId); couponOrder.setBUserId(buUserId);
couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_POS_PAY.getCode()); couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_POS_PAY.getCode());
@@ -1230,7 +1262,7 @@ public class PosServiceImpl implements PosService {
int num = 0; int num = 0;
// 1. update posOrderId // 1. update posOrderId
PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify();
posCouponOrderVerify.setTenantId(couponOrderCVo.getTenantId());
posCouponOrderVerify.updateTenantInfo(couponOrderCVo);
posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId()); posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId());
posCouponOrderVerify.setPosOrderId(posOrderId); posCouponOrderVerify.setPosOrderId(posOrderId);
posCouponOrderVerify.setState(EnumEnableType.Enable.getCode()); posCouponOrderVerify.setState(EnumEnableType.Enable.getCode());
@@ -1254,7 +1286,7 @@ public class PosServiceImpl implements PosService {
try { try {
WxCouponOrder couponOrder = new WxCouponOrder(); WxCouponOrder couponOrder = new WxCouponOrder();
couponOrder.setId(couponOrderCVo.getId()); couponOrder.setId(couponOrderCVo.getId());
couponOrder.setTenantId(couponOrderCVo.getTenantId());
couponOrder.updateTenantInfo(couponOrderCVo);
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode());
couponOrder.setUpdateDate(new Date()); couponOrder.setUpdateDate(new Date());
num = couponOrderMapper.cancelVerifyCouponOrder(couponOrder); num = couponOrderMapper.cancelVerifyCouponOrder(couponOrder);
@@ -1281,7 +1313,7 @@ public class PosServiceImpl implements PosService {
int num = 0; int num = 0;
// 1. insert posOrderId // 1. insert posOrderId
PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify();
posCouponOrderVerify.setTenantId(couponOrderCVo.getTenantId());
posCouponOrderVerify.updateTenantInfo(couponOrderCVo);
posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId()); posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId());
posCouponOrderVerify.setPosOrderId(posOrderId); posCouponOrderVerify.setPosOrderId(posOrderId);
posCouponOrderVerify.setOrderFrom(EnumOrderFrom.POS.getCode()); posCouponOrderVerify.setOrderFrom(EnumOrderFrom.POS.getCode());
@@ -1297,7 +1329,7 @@ public class PosServiceImpl implements PosService {
try { try {
WxCouponOrder couponOrder = new WxCouponOrder(); WxCouponOrder couponOrder = new WxCouponOrder();
couponOrder.setId(couponOrderCVo.getId()); couponOrder.setId(couponOrderCVo.getId());
couponOrder.setTenantId(couponOrderCVo.getTenantId());
couponOrder.updateTenantInfo(couponOrderCVo);
if (actionType.equals(EnumPosActionType.VERIFY_INDEPENT)) { if (actionType.equals(EnumPosActionType.VERIFY_INDEPENT)) {
couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_POS_INDEPENDENT.getCode()); couponOrder.setVerifyType(EnumCouponVerifyType.VERIFY_POS_INDEPENDENT.getCode());
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode());
@@ -1331,7 +1363,7 @@ public class PosServiceImpl implements PosService {
creditHistory.setOperatorId(buUserId); creditHistory.setOperatorId(buUserId);
creditHistory.setCUserId(couponOrderCVo.getcUserId()); creditHistory.setCUserId(couponOrderCVo.getcUserId());
creditHistory.setCreateDate(new Date()); creditHistory.setCreateDate(new Date());
creditHistory.setTenantId(couponOrderCVo.getTenantId());
creditHistory.updateTenantInfo(couponOrderCVo);
creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode());
creditHistory.setCouponId(couponOrderCVo.getCouponId()); creditHistory.setCouponId(couponOrderCVo.getCouponId());
creditHistory.setBusinessId(coupon.getBusiness()); creditHistory.setBusinessId(coupon.getBusiness());
@@ -1358,7 +1390,7 @@ public class PosServiceImpl implements PosService {
creditHistory.setOperatorId(buUserId); creditHistory.setOperatorId(buUserId);
creditHistory.setCUserId(memId); creditHistory.setCUserId(memId);
creditHistory.setCreateDate(new Date()); creditHistory.setCreateDate(new Date());
creditHistory.setTenantId(merchant.getTenantId());
creditHistory.updateTenantInfo(merchant);
creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode());
creditHistory.setBusinessId(merchant.getBusinessId()); creditHistory.setBusinessId(merchant.getBusinessId());
creditHistory.setSpend(payment); creditHistory.setSpend(payment);
@@ -1389,7 +1421,7 @@ public class PosServiceImpl implements PosService {
creditHistory.setOperatorType(EnumUserType.BUSER.getCode()); creditHistory.setOperatorType(EnumUserType.BUSER.getCode());
creditHistory.setOperatorId(buUserId); creditHistory.setOperatorId(buUserId);
creditHistory.setCUserId(couponOrderCVo.getcUserId()); creditHistory.setCUserId(couponOrderCVo.getcUserId());
creditHistory.setTenantId(couponOrderCVo.getTenantId());
creditHistory.updateTenantInfo(couponOrderCVo);
creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode()); creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode());
creditHistory.setCouponId(couponOrderCVo.getCouponId()); creditHistory.setCouponId(couponOrderCVo.getCouponId());
int num = creditHistoryService.cancelCredit(creditHistory); int num = creditHistoryService.cancelCredit(creditHistory);
@@ -1404,7 +1436,7 @@ public class PosServiceImpl implements PosService {
// 2. 成长值历史回退 // 2. 成长值历史回退
try { try {
WxScoreHistory scoreHistory = new WxScoreHistory(); WxScoreHistory scoreHistory = new WxScoreHistory();
scoreHistory.setTenantId(couponOrderCVo.getTenantId());
scoreHistory.updateTenantInfo(couponOrderCVo);
scoreHistory.setScoreType(EnumScoreType.CONSUMPTION.getCode()); scoreHistory.setScoreType(EnumScoreType.CONSUMPTION.getCode());
scoreHistory.setCUserId(couponOrderCVo.getcUserId()); scoreHistory.setCUserId(couponOrderCVo.getcUserId());
scoreHistory.setOrderId(couponOrderCVo.getOrderId()); scoreHistory.setOrderId(couponOrderCVo.getOrderId());
@@ -1420,7 +1452,7 @@ public class PosServiceImpl implements PosService {


// 3. update posOrderId // 3. update posOrderId
PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify();
posCouponOrderVerify.setTenantId(couponOrderCVo.getTenantId());
posCouponOrderVerify.updateTenantInfo(couponOrderCVo);
posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId()); posCouponOrderVerify.setCouponOrderId(couponOrderCVo.getId());
posCouponOrderVerify.setPosOrderId(posOrderId); posCouponOrderVerify.setPosOrderId(posOrderId);
posCouponOrderVerify.setState(EnumEnableType.Enable.getCode()); posCouponOrderVerify.setState(EnumEnableType.Enable.getCode());
@@ -1444,7 +1476,7 @@ public class PosServiceImpl implements PosService {
try { try {
WxCouponOrder couponOrder = new WxCouponOrder(); WxCouponOrder couponOrder = new WxCouponOrder();
couponOrder.setId(couponOrderCVo.getId()); couponOrder.setId(couponOrderCVo.getId());
couponOrder.setTenantId(couponOrderCVo.getTenantId());
couponOrder.updateTenantInfo(couponOrderCVo);
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()); couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode());
couponOrder.setUpdateDate(new Date()); couponOrder.setUpdateDate(new Date());
num = couponOrderMapper.cancelVerifyCouponOrder(couponOrder); num = couponOrderMapper.cancelVerifyCouponOrder(couponOrder);
@@ -1481,7 +1513,14 @@ public class PosServiceImpl implements PosService {
} else { } else {
retMap.put(WxPayConstant.TENANT_ID, tenantId); retMap.put(WxPayConstant.TENANT_ID, tenantId);
} }
PosMallConfig config = posMallConfigService.getByTenantId(tenantId);
WxMall mall = mallService.getByTenantId(tenantId);
if (mall == null) {
logger.error(ErrorCode.MALL_INFO_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND);
}

TenantEntity tenantEntity = mall.getTenantInfo();
PosMallConfig config = posMallConfigService.getByTenantInfo(tenantEntity);
if (config == null) { if (config == null) {
logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND);
@@ -1558,7 +1597,7 @@ public class PosServiceImpl implements PosService {
throw new MallinkException(ErrorCode.CARD_IS_NOT_FOUND); throw new MallinkException(ErrorCode.CARD_IS_NOT_FOUND);
} }
if (StringUtils.isNotBlank(memIdStr) || StringUtils.isNotBlank(memPhoneStr)) { if (StringUtils.isNotBlank(memIdStr) || StringUtils.isNotBlank(memPhoneStr)) {
WxCUser cuUser = getMemUser(tenantId, memIdStr, memPhoneStr);
WxCUser cuUser = getMemUser(merchant, memIdStr, memPhoneStr);
if (cuUser == null) { if (cuUser == null) {
logger.error(ErrorCode.USER_NOT_MEMBER.getMessage()); logger.error(ErrorCode.USER_NOT_MEMBER.getMessage());
throw new MallinkException(ErrorCode.USER_NOT_MEMBER); throw new MallinkException(ErrorCode.USER_NOT_MEMBER);
@@ -1578,7 +1617,7 @@ public class PosServiceImpl implements PosService {


WxCardSpend record = new WxCardSpend(); WxCardSpend record = new WxCardSpend();
record.setPayFrom(EnumCardSpendFrom.POS.getCode()); record.setPayFrom(EnumCardSpendFrom.POS.getCode());
record.setTenantId(merchant.getTenantId());
record.updateTenantInfo(merchant);
record.setCardId(cardId); record.setCardId(cardId);
record.setOwnerId(couponOrder.getOwnerId()); record.setOwnerId(couponOrder.getOwnerId());
record.setMerchantId(merchantId); record.setMerchantId(merchantId);
@@ -1626,7 +1665,15 @@ public class PosServiceImpl implements PosService {
} else { } else {
retMap.put(WxPayConstant.TENANT_ID, tenantId); retMap.put(WxPayConstant.TENANT_ID, tenantId);
} }
PosMallConfig config = posMallConfigService.getByTenantId(tenantId);
WxMall mall = mallService.getByTenantId(tenantId);
if (mall == null) {
logger.error(ErrorCode.MALL_INFO_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND);
}

TenantEntity tenantEntity = mall.getTenantInfo();

PosMallConfig config = posMallConfigService.getByTenantInfo(tenantEntity);
if (config == null) { if (config == null) {
logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND);
@@ -1795,7 +1842,15 @@ public class PosServiceImpl implements PosService {
if (StringUtils.isBlank(tenantId)) { if (StringUtils.isBlank(tenantId)) {
errParam(WxPayConstant.TENANT_ID); errParam(WxPayConstant.TENANT_ID);
} }
PosMallConfig config = posMallConfigService.getByTenantId(tenantId);
WxMall mall = mallService.getByTenantId(tenantId);
if (mall == null) {
logger.error(ErrorCode.MALL_INFO_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.MALL_INFO_NOT_FOUND);
}

TenantEntity tenantEntity = mall.getTenantInfo();

PosMallConfig config = posMallConfigService.getByTenantInfo(tenantEntity);
if (config == null) { if (config == null) {
logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage()); logger.error(ErrorCode.POS_CONFIG_NOT_FOUND.getMessage());
throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND); throw new MallinkException(ErrorCode.POS_CONFIG_NOT_FOUND);
@@ -2012,7 +2067,7 @@ public class PosServiceImpl implements PosService {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Long id = idWorker.nextId(); Long id = idWorker.nextId();
setId(id); setId(id);
setTenantId(merchantBUser.getTenantId());
updateTenantInfo(merchantBUser);
setCUserId(memId); setCUserId(memId);
setOrderId(order.getId()); setOrderId(order.getId());
setCreateTime(curDate); setCreateTime(curDate);
@@ -2058,7 +2113,7 @@ public class PosServiceImpl implements PosService {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Long id = idWorker.nextId(); Long id = idWorker.nextId();
setId(id); setId(id);
setTenantId(merchantBUser.getTenantId());
updateTenantInfo(merchantBUser);
setCUserId(memId); setCUserId(memId);
setBUserId(merchantBUser.getId()); setBUserId(merchantBUser.getId());
setOrderId(order.getId()); setOrderId(order.getId());
@@ -2143,7 +2198,7 @@ public class PosServiceImpl implements PosService {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Long id = idWorker.nextId(); Long id = idWorker.nextId();
setId(id); setId(id);
setTenantId(buUser.getTenantId());
updateTenantInfo(buUser);
setCUserId(memId); setCUserId(memId);
setBUserId(buUser.getId()); setBUserId(buUser.getId());
setOrderId(order.getId()); setOrderId(order.getId());
@@ -2206,7 +2261,7 @@ public class PosServiceImpl implements PosService {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Long id = idWorker.nextId(); Long id = idWorker.nextId();
setId(id); setId(id);
setTenantId(buUser.getTenantId());
updateTenantInfo(buUser);
setCUserId(memId); setCUserId(memId);
setOrderId(order.getId()); setOrderId(order.getId());
setCreateTime(curDate); setCreateTime(curDate);
@@ -2269,7 +2324,7 @@ public class PosServiceImpl implements PosService {
// 1. pay order // 1. pay order
// 查找支付订单 // 查找支付订单
WxPayOrder payOrderQ = new WxPayOrder() {{ WxPayOrder payOrderQ = new WxPayOrder() {{
setTenantId(refundOrder.getTenantId());
updateTenantInfo(refundOrder);
setCUserId(refundOrder.getCUserId()); setCUserId(refundOrder.getCUserId());
setOrderId(refundOrder.getId()); setOrderId(refundOrder.getId());
setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode()); setPayOrderStatus(EnumPayStatus.PAY_STATUS_SUCCESS.getCode());
@@ -2292,7 +2347,7 @@ public class PosServiceImpl implements PosService {
Long id = idWorker.nextId(); Long id = idWorker.nextId();
setId(id); setId(id);
setRefundId(String.valueOf(id)); setRefundId(String.valueOf(id));
setTenantId(buUser.getTenantId());
updateTenantInfo(buUser);
setCUserId(memId); setCUserId(memId);
setOrderId(refundOrder.getId()); setOrderId(refundOrder.getId());
setCreateTime(curDate); setCreateTime(curDate);
@@ -2360,7 +2415,7 @@ public class PosServiceImpl implements PosService {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Long orderId = idWorker.nextId(); Long orderId = idWorker.nextId();
setId(orderId); setId(orderId);
setTenantId(merchantBUser.getTenantId());
updateTenantInfo(merchantBUser);
setOrderNumber(orderId); setOrderNumber(orderId);
setType(EnumOrderType.POSPAY.getCode()); setType(EnumOrderType.POSPAY.getCode());
setProductId(merchantBUser.getId()); setProductId(merchantBUser.getId());
@@ -2439,7 +2494,7 @@ public class PosServiceImpl implements PosService {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Long orderId = idWorker.nextId(); Long orderId = idWorker.nextId();
setId(orderId); setId(orderId);
setTenantId(buUser.getTenantId());
updateTenantInfo(buUser);
setType(EnumOrderType.POSPAY.getCode()); setType(EnumOrderType.POSPAY.getCode());
setProductId(buUser.getId()); setProductId(buUser.getId());
setCUserId(memId); setCUserId(memId);


+ 1
- 1
mallinkPosApi/src/test/java/com/iformall/pos/test/PosAppTest.java Просмотреть файл

@@ -58,7 +58,7 @@ public class PosAppTest {
private static final String phone = "13120223636"; private static final String phone = "13120223636";
private static final String password = "drpos345"; private static final String password = "drpos345";


private static final String posSN = "1";
private static final String posSN = "WDPS0110GW175210001";


/* /*
可用的交易券, 支付可用(1, 2, 6), 核销可用(4, 6, 8, 9) 可用的交易券, 支付可用(1, 2, 6), 核销可用(4, 6, 8, 9)


+ 4
- 0
mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java Просмотреть файл

@@ -55,6 +55,7 @@ public class BillNotificationSchedule {
List<Map<String, Object>> oweBillList = wxBillAllMapper.getOweBill(); List<Map<String, Object>> oweBillList = wxBillAllMapper.getOweBill();
for (Map<String, Object> bill : oweBillList) { for (Map<String, Object> bill : oweBillList) {
String tenantId = bill.get("tenantId").toString(); String tenantId = bill.get("tenantId").toString();
String subTenantId = bill.get("subTenantId").toString();
logger.info("欠缴账单:" + JSONObject.toJSONString(bill)); logger.info("欠缴账单:" + JSONObject.toJSONString(bill));
BigDecimal owe = (BigDecimal) bill.get("owe"); BigDecimal owe = (BigDecimal) bill.get("owe");
BigDecimal price = owe.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN); BigDecimal price = owe.divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_EVEN);
@@ -69,6 +70,7 @@ public class BillNotificationSchedule {
wxMsgRecord.setReceiver(phone); wxMsgRecord.setReceiver(phone);
wxMsgRecord.updateTenantInfo(new TenantEntity(){{ wxMsgRecord.updateTenantInfo(new TenantEntity(){{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}); }});
Map<String, String> map = new HashedMap(); Map<String, String> map = new HashedMap();
map.put("price", price.toString()); map.put("price", price.toString());
@@ -84,6 +86,7 @@ public class BillNotificationSchedule {
List<Map<String, Object>> waitBillList = wxBillAllMapper.getWaitPayBill(); List<Map<String, Object>> waitBillList = wxBillAllMapper.getWaitPayBill();
for (Map<String, Object> bill : waitBillList) { for (Map<String, Object> bill : waitBillList) {
String tenantId = bill.get("tenantId").toString(); String tenantId = bill.get("tenantId").toString();
String subTenantId = bill.get("subTenantId").toString();
logger.info("待缴账单账单:" + JSONObject.toJSONString(bill)); logger.info("待缴账单账单:" + JSONObject.toJSONString(bill));


String receiveDate = bill.get("receiveDate").toString(); String receiveDate = bill.get("receiveDate").toString();
@@ -100,6 +103,7 @@ public class BillNotificationSchedule {
wxMsgRecord.setReceiver(phone); wxMsgRecord.setReceiver(phone);
wxMsgRecord.updateTenantInfo(new TenantEntity(){{ wxMsgRecord.updateTenantInfo(new TenantEntity(){{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}); }});
Map<String, String> map = new HashedMap(); Map<String, String> map = new HashedMap();
map.put("price", price.toString()); map.put("price", price.toString());


+ 10
- 0
mallinkSchedule/src/main/java/com/iformall/schedule/ChartDataSchedule.java Просмотреть файл

@@ -12,6 +12,7 @@ import com.iformall.enums.EnumCarCmd;
import com.iformall.enums.EnumChartType; import com.iformall.enums.EnumChartType;
import com.iformall.mapper.*; import com.iformall.mapper.*;
import com.iformall.utils.DateUtils; import com.iformall.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -80,6 +81,9 @@ public class ChartDataSchedule {
for (WxMall wxMall : wxMalls) { for (WxMall wxMall : wxMalls) {
TenantEntity tenantEntity = wxMall.getTenantInfo(); TenantEntity tenantEntity = wxMall.getTenantInfo();
params.put("tenantId", tenantEntity.getTenantId()); params.put("tenantId", tenantEntity.getTenantId());
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
params.put("subTenantId", wxMall.getTenantId());
}
wxChartDataEntity.updateTenantInfo(tenantEntity); wxChartDataEntity.updateTenantInfo(tenantEntity);
wxChartDataEntity.setType(EnumChartType.CAR_OUT.getCode()); wxChartDataEntity.setType(EnumChartType.CAR_OUT.getCode());
int count = wxChartDataMapper.selectCount(new QueryWrapper(wxChartDataEntity)); int count = wxChartDataMapper.selectCount(new QueryWrapper(wxChartDataEntity));
@@ -139,6 +143,9 @@ public class ChartDataSchedule {
for (WxMall wxMall : wxMalls) { for (WxMall wxMall : wxMalls) {
TenantEntity tenantEntity = wxMall.getTenantInfo(); TenantEntity tenantEntity = wxMall.getTenantInfo();
params.put("tenantId", tenantEntity.getTenantId()); params.put("tenantId", tenantEntity.getTenantId());
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
params.put("subTenantId", tenantEntity.getSubTenantId());
}
wxChartDataEntity.updateTenantInfo(tenantEntity); wxChartDataEntity.updateTenantInfo(tenantEntity);
wxChartDataEntity.setType(EnumChartType.SALE_COUPON_PRICE.getCode()); wxChartDataEntity.setType(EnumChartType.SALE_COUPON_PRICE.getCode());
int count = wxChartDataMapper.selectCount(new QueryWrapper(wxChartDataEntity)); int count = wxChartDataMapper.selectCount(new QueryWrapper(wxChartDataEntity));
@@ -170,6 +177,9 @@ public class ChartDataSchedule {
for (WxMall wxMall : wxMalls) { for (WxMall wxMall : wxMalls) {
TenantEntity tenantEntity = wxMall.getTenantInfo(); TenantEntity tenantEntity = wxMall.getTenantInfo();
params.put("tenantId", tenantEntity.getTenantId()); params.put("tenantId", tenantEntity.getTenantId());
if (StringUtils.isNotBlank(tenantEntity.getSubTenantId())) {
params.put("subTenantId", tenantEntity.getSubTenantId());
}


wxChartDataEntity.updateTenantInfo(tenantEntity); wxChartDataEntity.updateTenantInfo(tenantEntity);
wxChartDataEntity.setType(EnumChartType.MERCHANT_TRADE.getCode()); wxChartDataEntity.setType(EnumChartType.MERCHANT_TRADE.getCode());


+ 5
- 1
mallinkSchedule/src/main/java/com/iformall/schedule/CouponSendSchedule.java Просмотреть файл

@@ -12,6 +12,7 @@ import com.iformall.mq.MqBaseProducer;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.utils.CreditUtil; import com.iformall.utils.CreditUtil;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -96,12 +97,12 @@ public class CouponSendSchedule {
//查找所有couponSendConfig //查找所有couponSendConfig
Map<String, Integer> mallConfigMap = getAllCouponSendConfig(EnumCouponSendSendType.TIMED.getCode()); Map<String, Integer> mallConfigMap = getAllCouponSendConfig(EnumCouponSendSendType.TIMED.getCode());
mallList.stream().forEach(mall -> { mallList.stream().forEach(mall -> {
TenantEntity tenantEntity = mall.getTenantInfo();
//判断启用状态,状态为关闭时跳过不执行 //判断启用状态,状态为关闭时跳过不执行
if (isCouponSendDisable(mallConfigMap, mall)) { if (isCouponSendDisable(mallConfigMap, mall)) {
logger.info("定时发券: {}发券状态关闭, 任务跳过不执行", mall.getName()); logger.info("定时发券: {}发券状态关闭, 任务跳过不执行", mall.getName());
return; return;
} }
TenantEntity tenantEntity = mall.getTenantInfo();
WxLevelConfig wxLevelConfig = new WxLevelConfig(); WxLevelConfig wxLevelConfig = new WxLevelConfig();
wxLevelConfig.updateTenantInfo(tenantEntity); wxLevelConfig.updateTenantInfo(tenantEntity);
List<WxLevelConfig> levelConfigList = WxLevelConfigMapper.findList(wxLevelConfig); List<WxLevelConfig> levelConfigList = WxLevelConfigMapper.findList(wxLevelConfig);
@@ -160,6 +161,9 @@ public class CouponSendSchedule {
int sentCount = couponSendList.stream().map(cs -> { int sentCount = couponSendList.stream().map(cs -> {
Map params = new HashMap<String, Object>(); Map params = new HashMap<String, Object>();
params.put("tenantId", cs.getTenantId()); params.put("tenantId", cs.getTenantId());
if (StringUtils.isNotBlank(cs.getSubTenantId())) {
params.put("subTenantId", cs.getSubTenantId());
}
params.put("cUserId", cu.getId()); params.put("cUserId", cu.getId());
params.put("couponId", cs.getCouponId()); params.put("couponId", cs.getCouponId());
params.put("startTime", startTime); params.put("startTime", startTime);


+ 1
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Просмотреть файл

@@ -293,6 +293,7 @@ public enum ErrorCode{
REFUND_ORDER_BUSER_IS_NULL(12015, "B端用户不存在"), REFUND_ORDER_BUSER_IS_NULL(12015, "B端用户不存在"),
REFUND_ORDER_BUSER_NOT_EQUAL(12016, "B端用户无操作权限"), REFUND_ORDER_BUSER_NOT_EQUAL(12016, "B端用户无操作权限"),


APP_ID_NOT_ENABLE(12019, "APP未启用"),
APP_ID_NOT_FOUND(12020, "APPID没找到"), APP_ID_NOT_FOUND(12020, "APPID没找到"),
MCH_INFO_NOT_FOUND(12021, "微信商户平台信息没找到"), MCH_INFO_NOT_FOUND(12021, "微信商户平台信息没找到"),
MCH_INFO_NOT_EQUAL(12022, "微信商户平台信息不对应"), MCH_INFO_NOT_EQUAL(12022, "微信商户平台信息不对应"),


+ 15
- 1
mallinkService/src/main/java/com/iformall/domain/po/MallUserInfo.java Просмотреть файл

@@ -133,6 +133,20 @@ public class MallUserInfo extends TenantEntity {
} }
return false; return false;
} }

/**
* 是否集团管理员
* @return
*/
public boolean checkGroupAdmin() {
if(StringUtils.isBlank(getTenantId())) {
return false;
}
if(StringUtils.isBlank(getSubTenantId()) &&
isAdmin.equals(EnumUserAdmin.ADMIN.getCode())) {
return true;
}
return false;
}


} }

+ 4
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxAppinfo.java Просмотреть файл

@@ -40,5 +40,9 @@ public class WxAppinfo extends BaseTenantEntity {
private Integer type; private Integer type;
@io.swagger.annotations.ApiModelProperty(value="支付ID,参看wx_pay_account_bill",name="payBillId") @io.swagger.annotations.ApiModelProperty(value="支付ID,参看wx_pay_account_bill",name="payBillId")
private Long payBillId; private Long payBillId;
@io.swagger.annotations.ApiModelProperty(value="集团支持(0:不支持,1支持)",name="groupSupport")
private Integer groupSupport;
@io.swagger.annotations.ApiModelProperty(value="是否启用(0:启用,1禁用)",name="enable")
private Integer enable;


} }

+ 4
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxAuthorizerInfo.java Просмотреть файл

@@ -69,5 +69,9 @@ public class WxAuthorizerInfo extends BaseTenantEntity {
private String accessToken; private String accessToken;
@io.swagger.annotations.ApiModelProperty(value="accessToken过期时间",name="accessTokenExpire") @io.swagger.annotations.ApiModelProperty(value="accessToken过期时间",name="accessTokenExpire")
private Date accessTokenExpire; private Date accessTokenExpire;
@io.swagger.annotations.ApiModelProperty(value="集团支持(0:不支持,1支持)",name="groupSupport")
private Integer groupSupport;
@io.swagger.annotations.ApiModelProperty(value="是否启用(0:启用,1禁用)",name="enable")
private Integer enable;
} }

+ 21
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxCarCmdLog.java Просмотреть файл

@@ -1,5 +1,6 @@
package com.iformall.domain.po; package com.iformall.domain.po;


import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import lombok.Data; import lombok.Data;
@@ -24,5 +25,25 @@ public class WxCarCmdLog extends TenantEntity {
private Date updateDate; private Date updateDate;
@io.swagger.annotations.ApiModelProperty(value="命令请求或者结果及相应花费的时间",name="cmdJson") @io.swagger.annotations.ApiModelProperty(value="命令请求或者结果及相应花费的时间",name="cmdJson")
private String cmdJson; private String cmdJson;

@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="synId",name="synId")
private String synId;

@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="车牌",name="plateNumber")
private String plateNumber;

@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="停车费",name="fee")
private String fee;

@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="orderId",name="orderId")
private String orderId;

@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="feeTime",name="feeTime")
private String feeTime;
} }

+ 3
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxChartDataEntity.java Просмотреть файл

@@ -24,6 +24,9 @@ public class WxChartDataEntity extends TenantEntity {
sb.append("WxChartDataEntity{") sb.append("WxChartDataEntity{")
.append("id=").append(id) .append("id=").append(id)
.append(", tenantId='").append(getTenantId()).append('\''); .append(", tenantId='").append(getTenantId()).append('\'');
if (getSubTenantId() != null) {
sb.append(", subTenantId='").append(getSubTenantId()).append('\'');
}
sb.append(", type=").append(type) sb.append(", type=").append(type)
.append(", result='").append(result).append('\'') .append(", result='").append(result).append('\'')
.append(", querytime=").append(querytime) .append(", querytime=").append(querytime)


+ 30
- 4
mallinkService/src/main/java/com/iformall/domain/po/WxMall.java Просмотреть файл

@@ -1,5 +1,6 @@
package com.iformall.domain.po; package com.iformall.domain.po;


import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
@@ -7,6 +8,7 @@ import com.iformall.domain.po.base.BaseEntity;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;


import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@@ -21,6 +23,8 @@ public class WxMall extends BaseEntity {


@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
private String tenantId; private String tenantId;
@io.swagger.annotations.ApiModelProperty(value="父租户ID",name="parentTenantId")
private String parentTenantId;
@io.swagger.annotations.ApiModelProperty(value="商场名",name="name") @io.swagger.annotations.ApiModelProperty(value="商场名",name="name")
private String name; private String name;
@TableField(value = "`group`") @TableField(value = "`group`")
@@ -73,12 +77,22 @@ public class WxMall extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value = "启用结束时间", name = "validEnd") @io.swagger.annotations.ApiModelProperty(value = "启用结束时间", name = "validEnd")
private Date validEnd; private Date validEnd;


@io.swagger.annotations.ApiModelProperty(value="集团支持(0:不支持,1支持)",name="groupSupport")
private Integer groupSupport;
@io.swagger.annotations.ApiModelProperty(value="经度",name="longitude")
private BigDecimal longitude;
@io.swagger.annotations.ApiModelProperty(value="纬度",name="latitude")
private BigDecimal latitude;

@TableField(exist = false) @TableField(exist = false)
protected List<WxMallBuilding> buildings; protected List<WxMallBuilding> buildings;


@TableField(exist = false) @TableField(exist = false)
private boolean valid; private boolean valid;


@TableField(exist = false)
protected List<WxMall> subMalls;

public boolean isValid() { public boolean isValid() {
if(saleType != null) { if(saleType != null) {
if(validStart != null && validEnd != null) { if(validStart != null && validEnd != null) {
@@ -109,13 +123,25 @@ public class WxMall extends BaseEntity {
private String tenantInfo; private String tenantInfo;


public TenantEntity getTenantInfo() { public TenantEntity getTenantInfo() {
TenantEntity mul = new TenantEntity();
mul.setTenantId(getTenantId());
return mul;
if (StringUtils.isBlank(getParentTenantId())) {
TenantEntity single = new TenantEntity();
single.setTenantId(getTenantId());
return single;
} else {
TenantEntity mul = new TenantEntity();
mul.setTenantId(getParentTenantId());
mul.setSubTenantId(getTenantId());
return mul;
}
} }


public void setTenantInfo(TenantEntity tenantInfo) { public void setTenantInfo(TenantEntity tenantInfo) {
setTenantId(tenantInfo.getTenantId());
if (StringUtils.isBlank(tenantInfo.getSubTenantId())) {
setTenantId(tenantInfo.getTenantId());
} else {
setTenantId(tenantInfo.getSubTenantId());
setParentTenantId(tenantInfo.getTenantId());
}
} }


} }

+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/po/base/BaseTenantEntity.java Просмотреть файл

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;


/** /**
* @author Stormeye * @author Stormeye
@@ -15,16 +16,26 @@ public class BaseTenantEntity extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
private String tenantId; private String tenantId;


@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="子租户ID",name="subTenantId")
private String subTenantId;
@TableField(exist = false) @TableField(exist = false)
@JsonProperty(access = JsonProperty.Access.READ_ONLY) @JsonProperty(access = JsonProperty.Access.READ_ONLY)
private TenantEntity tenantInfo; private TenantEntity tenantInfo;


public void updateTenantInfo(TenantEntity info) { public void updateTenantInfo(TenantEntity info) {
setTenantId(info.getTenantId()); setTenantId(info.getTenantId());
if (StringUtils.isNotBlank(info.getSubTenantId())) {
setSubTenantId(info.getSubTenantId());
}
} }


public void updateTenantInfo(BaseTenantEntity info) { public void updateTenantInfo(BaseTenantEntity info) {
setTenantId(info.getTenantId()); setTenantId(info.getTenantId());
if (StringUtils.isNotBlank(info.getSubTenantId())) {
setSubTenantId(info.getSubTenantId());
}
} }


public TenantEntity getTenantInfo() { public TenantEntity getTenantInfo() {


+ 10
- 0
mallinkService/src/main/java/com/iformall/domain/po/base/TenantEntity.java Просмотреть файл

@@ -2,6 +2,7 @@ package com.iformall.domain.po.base;


import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;


/** /**
* @author Stormeye * @author Stormeye
@@ -13,11 +14,20 @@ public class TenantEntity extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId") @io.swagger.annotations.ApiModelProperty(value="租户ID",name="tenantId")
private String tenantId; private String tenantId;


@io.swagger.annotations.ApiModelProperty(value="子租户ID",name="subTenantId")
private String subTenantId;

public void updateTenantInfo(TenantEntity info) { public void updateTenantInfo(TenantEntity info) {
setTenantId(info.getTenantId()); setTenantId(info.getTenantId());
if (StringUtils.isNotBlank(info.getSubTenantId())) {
setSubTenantId(info.getSubTenantId());
}
} }


public void updateTenantInfo(BaseTenantEntity info) { public void updateTenantInfo(BaseTenantEntity info) {
setTenantId(info.getTenantId()); setTenantId(info.getTenantId());
if (StringUtils.isNotBlank(info.getSubTenantId())) {
setSubTenantId(info.getSubTenantId());
}
} }
} }

+ 7
- 0
mallinkService/src/main/java/com/iformall/domain/po/invest/InvestBaseEntity.java Просмотреть файл

@@ -33,6 +33,13 @@ public class InvestBaseEntity extends TenantEntity {
@JsonProperty(access = JsonProperty.Access.READ_ONLY) @JsonProperty(access = JsonProperty.Access.READ_ONLY)
private String tenantId; private String tenantId;


/**
* 子租户ID
*/
@io.swagger.annotations.ApiModelProperty(value = "子租户ID", name = "subTenantId")
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private String subTenantId;

/** /**
* 创建时间 * 创建时间
*/ */


+ 7
- 0
mallinkService/src/main/java/com/iformall/domain/po/msg/BaseMsg.java Просмотреть файл

@@ -27,6 +27,10 @@ public class BaseMsg extends BaseEntity {
@io.swagger.annotations.ApiModelProperty(value="租户id",name="tenantId") @io.swagger.annotations.ApiModelProperty(value="租户id",name="tenantId")
private String tenantId; private String tenantId;


@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="子租户id",name="subTenantId")
private String subTenantId;

@io.swagger.annotations.ApiModelProperty(value="唯一标识",name="uuid") @io.swagger.annotations.ApiModelProperty(value="唯一标识",name="uuid")
@TableField(exist = false) @TableField(exist = false)
private String uuid; private String uuid;
@@ -53,15 +57,18 @@ public class BaseMsg extends BaseEntity {


public void updateTenantInfo(TenantEntity tenantEntity) { public void updateTenantInfo(TenantEntity tenantEntity) {
setTenantId(tenantEntity.getTenantId()); setTenantId(tenantEntity.getTenantId());
setSubTenantId(tenantEntity.getSubTenantId());
} }


public void updateTenantInfo(BaseTenantEntity tenantEntity) { public void updateTenantInfo(BaseTenantEntity tenantEntity) {
setTenantId(tenantEntity.getTenantId()); setTenantId(tenantEntity.getTenantId());
setSubTenantId(tenantEntity.getSubTenantId());
} }


public TenantEntity getTenantInfo() { public TenantEntity getTenantInfo() {
return new TenantEntity() {{ return new TenantEntity() {{
setTenantId(tenantId); setTenantId(tenantId);
setSubTenantId(subTenantId);
}}; }};
} }




+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCLoginMsg.java Просмотреть файл

@@ -12,6 +12,8 @@ public class FmInsideCLoginMsg extends BaseMsg{


@io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId") @io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId")
private String tenantId; private String tenantId;
@io.swagger.annotations.ApiModelProperty(value="子租户id",name="subTenantId")
private String subTenantId;
@io.swagger.annotations.ApiModelProperty(value = "用户ID", name = "cUserId") @io.swagger.annotations.ApiModelProperty(value = "用户ID", name = "cUserId")
private Long cUserId; private Long cUserId;




+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCouponVerifyMsg.java Просмотреть файл

@@ -12,6 +12,8 @@ public class FmInsideCouponVerifyMsg extends BaseMsg{


@io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId") @io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId")
private String tenantId; private String tenantId;
@io.swagger.annotations.ApiModelProperty(value="子租户id",name="subTenantId")
private String subTenantId;
@io.swagger.annotations.ApiModelProperty(value = "券包ID", name = "couponOrderId") @io.swagger.annotations.ApiModelProperty(value = "券包ID", name = "couponOrderId")
private Long couponOrderId; private Long couponOrderId;
@io.swagger.annotations.ApiModelProperty(value = "B端用户ID", name = "bUserId") @io.swagger.annotations.ApiModelProperty(value = "B端用户ID", name = "bUserId")


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideOrderSuccessMsg.java Просмотреть файл

@@ -11,6 +11,8 @@ public class FmInsideOrderSuccessMsg extends BaseMsg{


@io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId") @io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId")
private String tenantId; private String tenantId;
@io.swagger.annotations.ApiModelProperty(value="子租户id",name="subTenantId")
private String subTenantId;
@io.swagger.annotations.ApiModelProperty(value = "成功订单ID", name = "orderId") @io.swagger.annotations.ApiModelProperty(value = "成功订单ID", name = "orderId")
private Long orderId; private Long orderId;
@io.swagger.annotations.ApiModelProperty(value = "券ID", name = "couponId") @io.swagger.annotations.ApiModelProperty(value = "券ID", name = "couponId")


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/msg/WxMsg.java Просмотреть файл

@@ -22,6 +22,8 @@ public class WxMsg extends BaseMsg {


@io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId") @io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId")
private String tenantId; private String tenantId;
@io.swagger.annotations.ApiModelProperty(value="子租户ID",name="subTenantId")
private String subTenantId;
@io.swagger.annotations.ApiModelProperty(value = "模板id", name = "modelId") @io.swagger.annotations.ApiModelProperty(value = "模板id", name = "modelId")
private Long modelId; private Long modelId;
@io.swagger.annotations.ApiModelProperty(value = "内容", name = "msg") @io.swagger.annotations.ApiModelProperty(value = "内容", name = "msg")


+ 26
- 0
mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantBuInfoVo.java Просмотреть файл

@@ -0,0 +1,26 @@
package com.iformall.domain.vo;

import com.iformall.domain.po.base.TenantEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
public class WxMerchantBuInfoVo extends TenantEntity {

@ApiModelProperty(value="广场名",name="tenantName")
private String tenantName;

@ApiModelProperty(value="商户ID",name="merchantId")
private Long merchantId;

@ApiModelProperty(value="商户名",name="merchantName")
private String merchantName;

@ApiModelProperty(value="商户图片",name="imgUrl")
private String imgUrl;

@ApiModelProperty(value="b端用户ID",name="buUserId")
private Long buUserId;
}

+ 36
- 0
mallinkService/src/main/java/com/iformall/enums/EnumGroupSupport.java Просмотреть файл

@@ -0,0 +1,36 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2019/09/21
*/
public enum EnumGroupSupport {

NOT_SUPPORT(0, "不支持"),
SUPPORT(1, "支持"),
;

public static EnumGroupSupport getEnum(Integer code) {
for (EnumGroupSupport value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumGroupSupport(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 1
- 1
mallinkService/src/main/java/com/iformall/mapper/KwMerchantMeterMapper.java Просмотреть файл

@@ -28,6 +28,6 @@ public interface KwMerchantMeterMapper extends CommonMapper<KwMerchantMeter, Lon
int unbindBatch(@Param("merchantId")Long merchantId); int unbindBatch(@Param("merchantId")Long merchantId);
int unbind(@Param("meterId")Long meterId); int unbind(@Param("meterId")Long meterId);


List<MerchantMeterVo> getMerchantMeter(@Param("tenantId") String tenantId);
List<MerchantMeterVo> getMerchantMeter(@Param("tenantId") String tenantId, @Param("subTenantId") String subTenantId);


} }

+ 2
- 1
mallinkService/src/main/java/com/iformall/mapper/PosMallConfigMapper.java Просмотреть файл

@@ -8,9 +8,10 @@ public interface PosMallConfigMapper extends CommonMapper<PosMallConfig, Long> {


List<PosMallConfig> findList(PosMallConfig posMallConfig); List<PosMallConfig> findList(PosMallConfig posMallConfig);


@Deprecated
PosMallConfig getByTenantId(String tenantId); PosMallConfig getByTenantId(String tenantId);


PosMallConfig getByTenantInfo(String tenantId);
PosMallConfig getByTenantInfo(String tenantId, String subTenantId);




+ 2
- 2
mallinkService/src/main/java/com/iformall/mapper/WxBusinessMapper.java Просмотреть файл

@@ -11,8 +11,8 @@ public interface WxBusinessMapper extends CommonMapper<WxBusiness, String> {
List<WxBusiness> findList(WxBusiness wxBusiness); List<WxBusiness> findList(WxBusiness wxBusiness);


List<WxBusiness> findListAll(); List<WxBusiness> findListAll();
List<WxBusiness> findListForMerchant(@Param("tenantId") String tenantId);
List<WxBusiness> findListForCoupon(@Param("tenantId") String tenantId);
List<WxBusiness> findListForMerchant(@Param("tenantId") String tenantId, @Param("subTenantId") String subTenantId);
List<WxBusiness> findListForCoupon(@Param("tenantId") String tenantId, @Param("subTenantId") String subTenantId);




List<Map<String,Object>> businessDataList(WxBusiness wxBusiness); List<Map<String,Object>> businessDataList(WxBusiness wxBusiness);


+ 1
- 2
mallinkService/src/main/java/com/iformall/mapper/WxCampaignMapper.java Просмотреть файл

@@ -2,7 +2,6 @@ package com.iformall.mapper;


import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxCampaign; import com.iformall.domain.po.WxCampaign;
import com.iformall.domain.po.base.TenantEntity;


import java.util.List; import java.util.List;


@@ -15,7 +14,7 @@ public interface WxCampaignMapper extends CommonMapper<WxCampaign, Long> {


List<WxCampaign> findCList(WxCampaign wxCampaign); List<WxCampaign> findCList(WxCampaign wxCampaign);


int getMaxSortNum(String tenantId);
int getMaxSortNum(String tenantId, String subTenantId);


List<WxCampaign> queryNotify(WxCampaign wxCampaign); List<WxCampaign> queryNotify(WxCampaign wxCampaign);




+ 2
- 2
mallinkService/src/main/java/com/iformall/mapper/WxCarCmdLogMapper.java Просмотреть файл

@@ -24,11 +24,11 @@ public interface WxCarCmdLogMapper extends CommonMapper<WxCarCmdLog, Long> {


List<Map<String,Object>> queryPlateNumberList(Map<String,Object> carParams); List<Map<String,Object>> queryPlateNumberList(Map<String,Object> carParams);


List<String> queryTenantIdBySynId(HashMap<String,String> params);
List<WxCarCmdLog> queryTenantInfoBySynId(WxCarCmdLog wxCarCmdLog);


Long queryWeekCarPayCount(HashMap<String,Object> params); Long queryWeekCarPayCount(HashMap<String,Object> params);


WxCarCmdLog queryByOrderId(HashMap<String,String> params);
WxCarCmdLog queryByOrderId(WxCarCmdLog carCmdLog);


WxCarCmdLog queryBySynId(HashMap<String,Object> params); WxCarCmdLog queryBySynId(HashMap<String,Object> params);
} }

+ 2
- 2
mallinkService/src/main/java/com/iformall/mapper/WxCouponActionLogMapper.java Просмотреть файл

@@ -33,10 +33,10 @@ public interface WxCouponActionLogMapper extends CommonMapper<WxCouponActionLog,
* @param endTime * @param endTime
* @return * @return
*/ */
int getCountByDateLimit(@Param("tenantId")String tenantId,@Param("startTime") Date startTime,@Param("endTime")Date endTime);
int getCountByDateLimit(@Param("tenantId")String tenantId,@Param("subTenantId")String subTenantId,@Param("startTime") Date startTime,@Param("endTime")Date endTime);




int getCountByChannelId(@Param("tenantId")String tenantId,@Param("channelType") int channelType,@Param("channelId")Long channelId);
int getCountByChannelId(@Param("tenantId")String tenantId,@Param("subTenantId")String subTenantId,@Param("channelType") int channelType,@Param("channelId")Long channelId);


/** /**
* 每人每天最多可接收多少张券 * 每人每天最多可接收多少张券


+ 1
- 1
mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java Просмотреть файл

@@ -60,7 +60,7 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> {
* @param endTime * @param endTime
* @return * @return
*/ */
List<CUserDateAmountVo> queryPriceTotalGroup(@Param("tenantId")String tenantId, @Param("startTime") Date startTime, @Param("endTime")Date endTime);
List<CUserDateAmountVo> queryPriceTotalGroup(@Param("tenantId")String tenantId, @Param("subTenantId")String subTenantId, @Param("startTime") Date startTime, @Param("endTime")Date endTime);




List<MarkingSceneDataVo> queryForSceneRepotyHistoryVerified(HashMap<String,Object> params); List<MarkingSceneDataVo> queryForSceneRepotyHistoryVerified(HashMap<String,Object> params);


+ 4
- 0
mallinkService/src/main/java/com/iformall/mapper/WxMallMapper.java Просмотреть файл

@@ -11,6 +11,10 @@ public interface WxMallMapper extends CommonMapper<WxMall, Long> {


WxMall getByTenantId(String tenantId); WxMall getByTenantId(String tenantId);


WxMall getByTenantInfo(WxMall wxMall);

String queryMenusByTenantId(String tenantId); String queryMenusByTenantId(String tenantId);


String queryMenusByTenantInfo(WxMall wxMall);

} }

+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java Просмотреть файл

@@ -3,11 +3,13 @@ package com.iformall.mapper;
import java.util.*; import java.util.*;
import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxMerchantBUser;
import com.iformall.domain.vo.WxMerchantBuInfoVo;


public interface WxMerchantBUserMapper extends CommonMapper<WxMerchantBUser, Long> { public interface WxMerchantBUserMapper extends CommonMapper<WxMerchantBUser, Long> {


List<WxMerchantBUser> findList(WxMerchantBUser wxMerchantBUser); List<WxMerchantBUser> findList(WxMerchantBUser wxMerchantBUser);


List<WxMerchantBuInfoVo> findSelMerchantList(WxMerchantBUser wxMerchantBUser);


WxMerchantBUser findByToken(String token); WxMerchantBUser findByToken(String token);


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java Просмотреть файл

@@ -192,5 +192,5 @@ public interface MallUserInfoService {
* @param record * @param record
* @return * @return
*/ */
Set<String> getUserPermissions(MallUserInfo record);
Set<String> getUserPermissions(MallUserInfo record, boolean boolNav);
} }

+ 3
- 3
mallinkService/src/main/java/com/iformall/service/WxCarCmdLogService.java Просмотреть файл

@@ -45,12 +45,12 @@ public interface WxCarCmdLogService {


/** /**
* 根据synId获取tenantId * 根据synId获取tenantId
* @param params
* @param carCmdLog
* @return * @return
*/ */
String getTenantIdBySynId(HashMap<String, String> params);
WxCarCmdLog getTenantInfoBySynId(WxCarCmdLog carCmdLog);


WxCarCmdLog getByOrderId(HashMap<String, String> params);
WxCarCmdLog getByOrderId(WxCarCmdLog carCmdLog);


WxCarCmdLog getBySynId(HashMap<String, Object> params); WxCarCmdLog getBySynId(HashMap<String, Object> params);




Некоторые файлы не были показаны из-за большого количества измененных файлов

Загрузка…
Отмена
Сохранить