| @@ -0,0 +1,81 @@ | |||||
| package com.iformall.controller.basic; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.annotation.SystemControllerLog; | |||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.ResultData; | |||||
| import com.iformall.controller.base.BaseController; | |||||
| import com.iformall.domain.po.MallUserInfo; | |||||
| import com.iformall.domain.po.WxMallDispose; | |||||
| import com.iformall.domain.po.WxPropertyContract; | |||||
| import com.iformall.domain.vo.WxMallDisposeVo; | |||||
| import com.iformall.enums.EnumContractType; | |||||
| import com.iformall.enums.EnumMallDispose; | |||||
| import com.iformall.enums.EnumRentStartType; | |||||
| import com.iformall.service.WxMallDisposeService; | |||||
| import com.iformall.service.WxMallService; | |||||
| import io.swagger.annotations.ApiImplicitParam; | |||||
| import io.swagger.annotations.ApiImplicitParams; | |||||
| import io.swagger.annotations.ApiOperation; | |||||
| import org.apache.commons.lang3.StringUtils; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.web.bind.annotation.*; | |||||
| @RestController | |||||
| @RequestMapping("wxMallDispose") | |||||
| public class WxMallDisposeController extends BaseController { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||||
| @Autowired | |||||
| private WxMallService wxMallService; | |||||
| @Autowired | |||||
| private WxMallDisposeService wxMallDisposeService; | |||||
| @ApiOperation("分页列表接口") | |||||
| @GetMapping("listVo") | |||||
| @ApiImplicitParams({ | |||||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||||
| @SystemControllerLog(description = "列表") | |||||
| public ResultData listVo(@ModelAttribute WxMallDisposeVo disposeVo, Integer pageNum, Integer pageSize) { | |||||
| logger.debug("[" + getIpAddr() + "] WxMallDisposeController::listVo"); | |||||
| if (null == disposeVo) disposeVo = new WxMallDisposeVo(); | |||||
| if(!wxMallService.isgroupSupport(getTenantInfo())){ | |||||
| return new ResultData(ErrorCode.SYS_AUTH_ERROR); | |||||
| } | |||||
| disposeVo.setParentTenantId(getTenantInfo().getTenantId()); | |||||
| final PageInfo<WxMallDisposeVo> page = wxMallDisposeService.listVoAsPage(disposeVo, pageNum, pageSize); | |||||
| return new ResultData(page); | |||||
| } | |||||
| @ApiOperation("分页列表接口") | |||||
| @GetMapping("getMallDispose") | |||||
| @SystemControllerLog(description = "列表") | |||||
| public ResultData getMallDispose() { | |||||
| logger.debug("[" + getIpAddr() + "] WxMallDisposeController::getMallDispose"); | |||||
| WxMallDispose mallDispose = wxMallDisposeService.getMallDispose(getTenantInfo()); | |||||
| return new ResultData(mallDispose); | |||||
| } | |||||
| @PostMapping("saveOrUpdate") | |||||
| @SystemControllerLog(description = "配置权限") | |||||
| public ResultData saveOrUpdate(@RequestBody WxMallDispose mallDispose) { | |||||
| logger.debug("[" + getIpAddr() + "] WxMallDisposeController::saveOrUpdate"); | |||||
| if(!wxMallService.isgroupSupport(getTenantInfo())){ | |||||
| return new ResultData(ErrorCode.SYS_AUTH_ERROR); | |||||
| } | |||||
| mallDispose.updateTenantInfo(getTenantInfo()); | |||||
| if(mallDispose.getPointsDispose() == null){ | |||||
| mallDispose.setPointsDispose(EnumMallDispose.MALL_GROUP.getCode()); | |||||
| } | |||||
| if(mallDispose.getGrowthValueDispose() == null){ | |||||
| mallDispose.setGrowthValueDispose(EnumMallDispose.MALL_GROUP.getCode()); | |||||
| } | |||||
| wxMallDisposeService.saveOrUpdate(mallDispose); | |||||
| return new ResultData(); | |||||
| } | |||||
| } | |||||
| @@ -18,6 +18,7 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| private static String[] filterTables = new String[] { | private static String[] filterTables = new String[] { | ||||
| "wx_mall", | "wx_mall", | ||||
| "wx_mall_dispose", | |||||
| "wx_appinfo", | "wx_appinfo", | ||||
| "mall_permission", | "mall_permission", | ||||
| "mall_sale_type", | "mall_sale_type", | ||||
| @@ -78,6 +79,7 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| private static String[] filterSubTables = new String[] { | private static String[] filterSubTables = new String[] { | ||||
| "wx_mall", | "wx_mall", | ||||
| "wx_mall_dispose", | |||||
| "wx_appinfo", | "wx_appinfo", | ||||
| "wx_authorizer_info", | "wx_authorizer_info", | ||||
| "wx_brand", | "wx_brand", | ||||
| @@ -0,0 +1,8 @@ | |||||
| CREATE TABLE `wx_mall_dispose` ( | |||||
| `tenant_id` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户ID', | |||||
| `parent_tenant_id` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '父租户ID', | |||||
| `points_dispose` smallint(2) DEFAULT 0 COMMENT '积分配置', | |||||
| `growth_value_dispose` smallint(2) DEFAULT NULL COMMENT '成长值配置', | |||||
| PRIMARY KEY (`tenant_id`) USING BTREE | |||||
| ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '商场' ROW_FORMAT = Dynamic; | |||||
| @@ -19,6 +19,7 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| private static String[] filterTables = new String[] { | private static String[] filterTables = new String[] { | ||||
| "wx_mall", | "wx_mall", | ||||
| "wx_mall_dispose", | |||||
| "wx_appinfo", | "wx_appinfo", | ||||
| "mall_permission", | "mall_permission", | ||||
| "mall_sale_type", | "mall_sale_type", | ||||
| @@ -65,6 +66,7 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| private static String[] filterSubTables = new String[] { | private static String[] filterSubTables = new String[] { | ||||
| "wx_mall", | "wx_mall", | ||||
| "wx_mall_dispose", | |||||
| "wx_appinfo", | "wx_appinfo", | ||||
| "wx_authorizer_info", | "wx_authorizer_info", | ||||
| "wx_brand", | "wx_brand", | ||||
| @@ -19,6 +19,7 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| private static String[] filterTables = new String[] { | private static String[] filterTables = new String[] { | ||||
| "wx_mall", | "wx_mall", | ||||
| "wx_mall_dispose", | |||||
| "wx_appinfo", | "wx_appinfo", | ||||
| "mall_permission", | "mall_permission", | ||||
| "mall_sale_type", | "mall_sale_type", | ||||
| @@ -70,6 +71,7 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| private static String[] filterSubTables = new String[] { | private static String[] filterSubTables = new String[] { | ||||
| "wx_mall", | "wx_mall", | ||||
| "wx_mall_dispose", | |||||
| "wx_appinfo", | "wx_appinfo", | ||||
| "wx_authorizer_info", | "wx_authorizer_info", | ||||
| "wx_brand", | "wx_brand", | ||||
| @@ -19,6 +19,7 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| private static String[] filterTables = new String[] { | private static String[] filterTables = new String[] { | ||||
| "wx_mall", | "wx_mall", | ||||
| "wx_mall_dispose", | |||||
| "wx_appinfo", | "wx_appinfo", | ||||
| "mall_permission", | "mall_permission", | ||||
| "mall_sale_type", | "mall_sale_type", | ||||
| @@ -70,6 +71,7 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| private static String[] filterSubTables = new String[] { | private static String[] filterSubTables = new String[] { | ||||
| "wx_mall", | "wx_mall", | ||||
| "wx_mall_dispose", | |||||
| "wx_appinfo", | "wx_appinfo", | ||||
| "wx_authorizer_info", | "wx_authorizer_info", | ||||
| "wx_brand", | "wx_brand", | ||||
| @@ -0,0 +1,22 @@ | |||||
| package com.iformall.domain.po; | |||||
| import com.baomidou.mybatisplus.annotation.TableName; | |||||
| import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | |||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import lombok.Data; | |||||
| import lombok.EqualsAndHashCode; | |||||
| @JsonIgnoreProperties(value = {"handler"}) | |||||
| @TableName(value = "wx_mall_dispose") | |||||
| @Data | |||||
| @EqualsAndHashCode(callSuper = true) | |||||
| public class WxMallDispose extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="积分配置 EnumMallDispose",name="pointsDispose") | |||||
| private Integer pointsDispose; | |||||
| @io.swagger.annotations.ApiModelProperty(value="成长值配置 EnumMallDispose",name="growthValueDispose") | |||||
| private Integer growthValueDispose; | |||||
| } | |||||
| @@ -0,0 +1,23 @@ | |||||
| package com.iformall.domain.vo; | |||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import lombok.Data; | |||||
| import lombok.EqualsAndHashCode; | |||||
| import lombok.ToString; | |||||
| @Data | |||||
| @ToString(callSuper = true) | |||||
| @EqualsAndHashCode(callSuper = true) | |||||
| public class WxMallDisposeVo extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="商场名",name="mallName") | |||||
| private String mallName; | |||||
| @io.swagger.annotations.ApiModelProperty(value="积分配置 EnumMallDispose",name="pointsDispose") | |||||
| private Integer pointsDispose; | |||||
| @io.swagger.annotations.ApiModelProperty(value="成长值配置 EnumMallDispose",name="growthValueDispose") | |||||
| private Integer growthValueDispose; | |||||
| } | |||||
| @@ -0,0 +1,33 @@ | |||||
| package com.iformall.enums; | |||||
| public enum EnumMallDispose { | |||||
| MALL(0, "可配置"),//广场/集团自己配置 | |||||
| MALL_GROUP(1, "不可配置"),//自己不能配置,集团才能配置 | |||||
| ; | |||||
| public static EnumMallDispose getEnum(Integer code) { | |||||
| for (EnumMallDispose value : values()) { | |||||
| if (value.getCode().equals(code)) { | |||||
| return value; | |||||
| } | |||||
| } | |||||
| return null; | |||||
| } | |||||
| private Integer code; | |||||
| private String message; | |||||
| EnumMallDispose(Integer code, String message) { | |||||
| this.code = code; | |||||
| this.message = message; | |||||
| } | |||||
| public Integer getCode() { | |||||
| return code; | |||||
| } | |||||
| public String getMessage() { | |||||
| return message; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,22 @@ | |||||
| package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | |||||
| import com.iformall.domain.po.WxMall; | |||||
| import com.iformall.domain.po.WxMallDispose; | |||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxMallDisposeVo; | |||||
| import org.apache.ibatis.annotations.Param; | |||||
| import java.util.List; | |||||
| public interface WxMallDisposeMapper extends CommonMapper<WxMallDispose, Long> { | |||||
| List<WxMallDispose> findList(WxMallDispose wxMallDispose); | |||||
| List<WxMallDisposeVo> findListVo(WxMallDisposeVo disposeVo); | |||||
| WxMallDispose selectByTenantId(@Param(value = "tenantId")String tenantId); | |||||
| int updateByTenantId(WxMallDispose mallDispose); | |||||
| } | |||||
| @@ -0,0 +1,17 @@ | |||||
| package com.iformall.service; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.domain.po.WxMallDispose; | |||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxMallDisposeVo; | |||||
| public interface WxMallDisposeService { | |||||
| PageInfo<WxMallDisposeVo> listVoAsPage(WxMallDisposeVo disposeVo, Integer pageNum, Integer pageSize); | |||||
| WxMallDispose getMallDispose(TenantEntity tenantEntity); | |||||
| int saveOrUpdate(WxMallDispose mallDispose); | |||||
| } | |||||
| @@ -0,0 +1,89 @@ | |||||
| package com.iformall.service.impl; | |||||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||||
| import com.github.pagehelper.PageHelper; | |||||
| import com.github.pagehelper.PageInfo; | |||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.ResultData; | |||||
| import com.iformall.domain.po.*; | |||||
| import com.iformall.domain.po.base.TenantEntity; | |||||
| import com.iformall.domain.vo.WxMallDisposeVo; | |||||
| import com.iformall.enums.*; | |||||
| import com.iformall.mapper.WxMallBuildingMapper; | |||||
| import com.iformall.mapper.WxMallDisposeMapper; | |||||
| import com.iformall.mapper.WxMallFloorMapper; | |||||
| import com.iformall.mapper.WxMallMapper; | |||||
| import com.iformall.service.MallUserInfoService; | |||||
| import com.iformall.service.WxMallDisposeService; | |||||
| import com.iformall.service.WxMallService; | |||||
| import com.iformall.utils.Constant; | |||||
| import com.iformall.utils.PasswordHelper; | |||||
| import com.iformall.utils.RedisCacheUtils; | |||||
| import org.apache.commons.lang3.StringUtils; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.beans.factory.annotation.Qualifier; | |||||
| import org.springframework.data.redis.core.RedisTemplate; | |||||
| import org.springframework.data.redis.core.ValueOperations; | |||||
| import org.springframework.stereotype.Service; | |||||
| import org.springframework.transaction.annotation.Transactional; | |||||
| import org.springframework.util.Assert; | |||||
| import java.util.*; | |||||
| import java.util.concurrent.TimeUnit; | |||||
| import java.util.function.Function; | |||||
| import java.util.stream.Collectors; | |||||
| @Service | |||||
| public class WxMallDisposeServiceImpl implements WxMallDisposeService { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||||
| @Autowired | |||||
| WxMallDisposeMapper wxMallDisposeMapper; | |||||
| @Autowired | |||||
| private WxMallService wxMallService; | |||||
| @Override | |||||
| public PageInfo<WxMallDisposeVo> listVoAsPage(WxMallDisposeVo disposeVo, Integer pageNum, Integer pageSize) { | |||||
| return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxMallDisposeMapper.findListVo(disposeVo)); | |||||
| } | |||||
| @Override | |||||
| public WxMallDispose getMallDispose(TenantEntity tenantEntity) { | |||||
| WxMallDispose mallDispose = wxMallDisposeMapper.selectByTenantId(tenantEntity.getTenantId()); | |||||
| if(mallDispose == null){ | |||||
| mallDispose = new WxMallDispose(); | |||||
| mallDispose.updateTenantInfo(tenantEntity); | |||||
| } | |||||
| if(wxMallService.isgroupSupport(tenantEntity)){ | |||||
| //如果是集团,都可以配置 | |||||
| mallDispose.setPointsDispose(EnumMallDispose.MALL.getCode()); | |||||
| mallDispose.setGrowthValueDispose(EnumMallDispose.MALL.getCode()); | |||||
| }else{ | |||||
| if(mallDispose.getPointsDispose() == null){ | |||||
| mallDispose.setPointsDispose(EnumMallDispose.MALL_GROUP.getCode()); | |||||
| } | |||||
| if(mallDispose.getGrowthValueDispose() == null){ | |||||
| mallDispose.setGrowthValueDispose(EnumMallDispose.MALL_GROUP.getCode()); | |||||
| } | |||||
| } | |||||
| return mallDispose; | |||||
| } | |||||
| @Override | |||||
| public int saveOrUpdate(WxMallDispose mallDispose) { | |||||
| WxMallDispose record = wxMallDisposeMapper.selectByTenantId(mallDispose.getTenantId()); | |||||
| if(record != null){ | |||||
| record.setPointsDispose(mallDispose.getPointsDispose()); | |||||
| record.setGrowthValueDispose(mallDispose.getGrowthValueDispose()); | |||||
| return wxMallDisposeMapper.updateByTenantId(mallDispose); | |||||
| }else{ | |||||
| return wxMallDisposeMapper.insert(mallDispose); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -120,7 +120,7 @@ public class FmInsideOrderPushDeliveryMsgServiceImpl implements MsgSendService { | |||||
| String itemOrderId = (String) order.getExpParamValue("itemOrderId"); | String itemOrderId = (String) order.getExpParamValue("itemOrderId"); | ||||
| String shop_name = merchant.getName(); | String shop_name = merchant.getName(); | ||||
| String ext_valid_shop_id = couponOrder.getBMerchantId().toString(); | |||||
| // String ext_valid_shop_id = couponOrder.getBMerchantId().toString(); | |||||
| TtMerchantPoi poi = ttMerchantPoiService.getById(couponOrder.getBMerchantId()); | TtMerchantPoi poi = ttMerchantPoiService.getById(couponOrder.getBMerchantId()); | ||||
| WxAppinfo appinfo = wxAppinfoService.getCAppInfo(couponOrder,EnumPayWay.PAY_WAY_TT.getPlat()); | WxAppinfo appinfo = wxAppinfoService.getCAppInfo(couponOrder,EnumPayWay.PAY_WAY_TT.getPlat()); | ||||
| @@ -136,8 +136,8 @@ public class FmInsideOrderPushDeliveryMsgServiceImpl implements MsgSendService { | |||||
| request.setItemOrderList(itemOrderList); | request.setItemOrderList(itemOrderList); | ||||
| JSONObject poiInfo = new JSONObject(); | JSONObject poiInfo = new JSONObject(); | ||||
| poiInfo.put("shop_name",shop_name); | poiInfo.put("shop_name",shop_name); | ||||
| poiInfo.put("ext_valid_shop_id",ext_valid_shop_id); | |||||
| if(poi != null){ | if(poi != null){ | ||||
| poiInfo.put("ext_valid_shop_id",poi.getSupplierExtId()); | |||||
| poiInfo.put("valid_poi_id_str",poi.getPoiId()); | poiInfo.put("valid_poi_id_str",poi.getPoiId()); | ||||
| } | } | ||||
| request.setPoiInfo(poiInfo.toJSONString()); | request.setPoiInfo(poiInfo.toJSONString()); | ||||
| @@ -0,0 +1,74 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
| <mapper namespace="com.iformall.mapper.WxMallDisposeMapper"> | |||||
| <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxMallDispose"> | |||||
| <id column="tenant_id" jdbcType="VARCHAR" property="tenantId"/> | |||||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId"/> | |||||
| <result column="points_dispose" jdbcType="INTEGER" property="pointsDispose"/> | |||||
| <result column="growth_value_dispose" jdbcType="INTEGER" property="growthValueDispose"/> | |||||
| </resultMap> | |||||
| <sql id="allColumns"> | |||||
| `tenant_id`,`parent_tenant_id`, | |||||
| `points_dispose`,`growth_value_dispose` | |||||
| </sql> | |||||
| <sql id="dynamicWhereConditions"> | |||||
| where 1 = 1 | |||||
| <if test=" null != tenantId and '' != tenantId"> | |||||
| and `tenant_id` = #{tenantId} | |||||
| </if> | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| </if> | |||||
| <if test=" null != pointsDispose "> | |||||
| and `points_dispose` = #{pointsDispose} | |||||
| </if> | |||||
| <if test=" null != growthValueDispose "> | |||||
| and `growth_value_dispose` = #{growthValueDispose} | |||||
| </if> | |||||
| </sql> | |||||
| <select id="findList" parameterType="com.iformall.domain.po.WxMallDispose" resultMap="BaseResultMap"> | |||||
| select | |||||
| <include refid="allColumns"/> | |||||
| from wx_mall_dispose | |||||
| <include refid="dynamicWhereConditions"/> | |||||
| </select> | |||||
| <resultMap id="BaseVoResultMap" type="com.iformall.domain.vo.WxMallDisposeVo"> | |||||
| <result column="mall_name" jdbcType="VARCHAR" property="mallName"/> | |||||
| <result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/> | |||||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId"/> | |||||
| <result column="points_dispose" jdbcType="INTEGER" property="pointsDispose"/> | |||||
| <result column="growth_value_dispose" jdbcType="INTEGER" property="growthValueDispose"/> | |||||
| </resultMap> | |||||
| <select id="findListVo" parameterType="com.iformall.domain.vo.WxMallDisposeVo" resultMap="BaseVoResultMap"> | |||||
| select | |||||
| m.name mall_name,m.tenant_id,m.parent_tenant_id,md.points_dispose,md.growth_value_dispose | |||||
| from wx_mall m | |||||
| left join wx_mall_dispose md on md.tenant_id = m.tenant_id | |||||
| where m.`parent_tenant_id` = #{parentTenantId} | |||||
| </select> | |||||
| <select id="selectByTenantId" parameterType="string" resultMap="BaseResultMap"> | |||||
| select | |||||
| <include refid="allColumns"/> | |||||
| from wx_mall_dispose | |||||
| where `tenant_id` = #{tenantId} | |||||
| </select> | |||||
| <update id="updateByTenantId" parameterType="com.iformall.domain.po.WxMallDispose"> | |||||
| update wx_mall_dispose | |||||
| set `points_dispose` = #{pointsDispose},`growth_value_dispose` = #{growthValueDispose} | |||||
| where `tenant_id` = #{tenantId} | |||||
| </update> | |||||
| </mapper> | |||||