| @@ -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[] { | |||
| "wx_mall", | |||
| "wx_mall_dispose", | |||
| "wx_appinfo", | |||
| "mall_permission", | |||
| "mall_sale_type", | |||
| @@ -78,6 +79,7 @@ public class TenantInfoImpl implements TenantInfo { | |||
| private static String[] filterSubTables = new String[] { | |||
| "wx_mall", | |||
| "wx_mall_dispose", | |||
| "wx_appinfo", | |||
| "wx_authorizer_info", | |||
| "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[] { | |||
| "wx_mall", | |||
| "wx_mall_dispose", | |||
| "wx_appinfo", | |||
| "mall_permission", | |||
| "mall_sale_type", | |||
| @@ -65,6 +66,7 @@ public class TenantInfoImpl implements TenantInfo { | |||
| private static String[] filterSubTables = new String[] { | |||
| "wx_mall", | |||
| "wx_mall_dispose", | |||
| "wx_appinfo", | |||
| "wx_authorizer_info", | |||
| "wx_brand", | |||
| @@ -19,6 +19,7 @@ public class TenantInfoImpl implements TenantInfo { | |||
| private static String[] filterTables = new String[] { | |||
| "wx_mall", | |||
| "wx_mall_dispose", | |||
| "wx_appinfo", | |||
| "mall_permission", | |||
| "mall_sale_type", | |||
| @@ -70,6 +71,7 @@ public class TenantInfoImpl implements TenantInfo { | |||
| private static String[] filterSubTables = new String[] { | |||
| "wx_mall", | |||
| "wx_mall_dispose", | |||
| "wx_appinfo", | |||
| "wx_authorizer_info", | |||
| "wx_brand", | |||
| @@ -19,6 +19,7 @@ public class TenantInfoImpl implements TenantInfo { | |||
| private static String[] filterTables = new String[] { | |||
| "wx_mall", | |||
| "wx_mall_dispose", | |||
| "wx_appinfo", | |||
| "mall_permission", | |||
| "mall_sale_type", | |||
| @@ -70,6 +71,7 @@ public class TenantInfoImpl implements TenantInfo { | |||
| private static String[] filterSubTables = new String[] { | |||
| "wx_mall", | |||
| "wx_mall_dispose", | |||
| "wx_appinfo", | |||
| "wx_authorizer_info", | |||
| "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 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()); | |||
| WxAppinfo appinfo = wxAppinfoService.getCAppInfo(couponOrder,EnumPayWay.PAY_WAY_TT.getPlat()); | |||
| @@ -136,8 +136,8 @@ public class FmInsideOrderPushDeliveryMsgServiceImpl implements MsgSendService { | |||
| request.setItemOrderList(itemOrderList); | |||
| JSONObject poiInfo = new JSONObject(); | |||
| poiInfo.put("shop_name",shop_name); | |||
| poiInfo.put("ext_valid_shop_id",ext_valid_shop_id); | |||
| if(poi != null){ | |||
| poiInfo.put("ext_valid_shop_id",poi.getSupplierExtId()); | |||
| poiInfo.put("valid_poi_id_str",poi.getPoiId()); | |||
| } | |||
| 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> | |||