Sfoglia il codice sorgente

标签

release_toaliyun_real
xhxu 4 anni fa
parent
commit
f3aaaa5eda
9 ha cambiato i file con 133 aggiunte e 5 eliminazioni
  1. +6
    -0
      mallinkAdmin/src/main/resources/db/migration/V202108190003__add_tag.sql
  2. +46
    -0
      mallinkAdmin/src/main/resources/db/migration/V202108190004__add_jm_sport_order.sql
  3. +9
    -0
      mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/JmSportOrder.java
  5. +4
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumTag.java
  6. +2
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumTagType.java
  7. +1
    -0
      mallinkService/src/main/java/com/iformall/mapper/JmSportOrderMapper.java
  8. +31
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java
  9. +32
    -1
      mallinkService/src/main/resources/mapper/JmSportOrderMapper.xml

+ 6
- 0
mallinkAdmin/src/main/resources/db/migration/V202108190003__add_tag.sql Vedi File

@@ -10,3 +10,9 @@ INSERT INTO `mallink`.`wx_tags_type`(`id`, `name`, `group_id`, `group_name`, `fl
INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (176, '运动频率低', 4, '行为偏好', 31, '运动频率'); INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (176, '运动频率低', 4, '行为偏好', 31, '运动频率');
INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (177, '运动频率中', 4, '行为偏好', 31, '运动频率'); INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (177, '运动频率中', 4, '行为偏好', 31, '运动频率');
INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (178, '运动频率高', 4, '行为偏好', 31, '运动频率'); INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (178, '运动频率高', 4, '行为偏好', 31, '运动频率');

INSERT INTO `mallink`.`wx_tags_type`(`id`, `name`, `group_id`, `group_name`, `flag`) VALUES (32, '购买力', 4, '行为偏好', 1);

INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (179, '购买力弱', 4, '行为偏好', 32, '购买力');
INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (180, '购买力中', 4, '行为偏好', 32, '购买力');
INSERT INTO `mallink`.`wx_tags`(`id`, `name`, `group_id`, `group_name`, `type_id`, `type_name`) VALUES (181, '购买力强', 4, '行为偏好', 32, '购买力');

+ 46
- 0
mallinkAdmin/src/main/resources/db/migration/V202108190004__add_jm_sport_order.sql Vedi File

@@ -0,0 +1,46 @@
/*
Navicat Premium Data Transfer

Source Server : 101.200.130.134
Source Server Type : MySQL
Source Server Version : 50728
Source Host : 101.200.130.134:3306
Source Schema : mallink

Target Server Type : MySQL
Target Server Version : 50728
File Encoding : 65001

Date: 20/08/2021 15:37:07
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for jm_sport_order
-- ----------------------------
DROP TABLE IF EXISTS `jm_sport_order`;
CREATE TABLE `jm_sport_order` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`order_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
`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 '' COMMENT '父租户ID',
`user_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`user_id` bigint(20) DEFAULT NULL COMMENT 'c端用户id',
`product_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`num` int(11) DEFAULT NULL COMMENT '数量',
`price` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '支付金额',
`payment` int(11) NOT NULL COMMENT '分',
`payment_time` datetime(0) DEFAULT NULL COMMENT '支付时间',
`pay_way` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '支付途径',
`gym_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '消费的场馆',
`create_date` datetime(0) NOT NULL COMMENT '创建时间',
`update_date` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `id_UNIQUE`(`id`) USING BTREE,
UNIQUE INDEX `order_id`(`order_id`) USING BTREE,
INDEX `idx_user`(`user_id`) USING BTREE COMMENT '订单索引-用户'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单正反向交易各产生一个单独订单,用order_number保持正反向交易一致。' ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

+ 9
- 0
mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java Vedi File

@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
@@ -137,6 +139,12 @@ public class JinMaoController extends BaseController {
logger.info("dfh order:"+param); logger.info("dfh order:"+param);
try { try {
String price = param.get("price")==null?"":param.get("price").toString(); String price = param.get("price")==null?"":param.get("price").toString();
Integer payment = 0;
if(StringUtils.isNotBlank(price)) {
payment = new BigDecimal(price)
.multiply(new BigDecimal(100))
.intValue();
}
Integer num = param.get("num")==null?1:Integer.parseInt(param.get("num").toString()); Integer num = param.get("num")==null?1:Integer.parseInt(param.get("num").toString());
String userPhone = param.get("userPhone")==null?"":param.get("userPhone").toString(); String userPhone = param.get("userPhone")==null?"":param.get("userPhone").toString();
String gymName = param.get("gymName")==null?"":param.get("gymName").toString(); String gymName = param.get("gymName")==null?"":param.get("gymName").toString();
@@ -162,6 +170,7 @@ public class JinMaoController extends BaseController {
order.setProductName(productName); order.setProductName(productName);
order.setNum(num); order.setNum(num);
order.setPrice(price); order.setPrice(price);
order.setPayment(payment);
order.setPaymentTime(paymentTime); order.setPaymentTime(paymentTime);
order.setPayWay(payWay); order.setPayWay(payWay);
order.setGymName(gymName); order.setGymName(gymName);


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/JmSportOrder.java Vedi File

@@ -28,6 +28,8 @@ public class JmSportOrder extends TenantEntity {


@io.swagger.annotations.ApiModelProperty(value="支付金额",name="price") @io.swagger.annotations.ApiModelProperty(value="支付金额",name="price")
private String price; private String price;

private Integer payment;//分
@io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime") @io.swagger.annotations.ApiModelProperty(value="支付时间",name="paymentTime")
private Date paymentTime; private Date paymentTime;




+ 4
- 0
mallinkService/src/main/java/com/iformall/enums/EnumTag.java Vedi File

@@ -220,6 +220,10 @@ public enum EnumTag {
ID_177(177L, EnumTagType.ID_31,"运动频率中"), ID_177(177L, EnumTagType.ID_31,"运动频率中"),
ID_178(178L, EnumTagType.ID_31,"运动频率高"), ID_178(178L, EnumTagType.ID_31,"运动频率高"),


ID_179(179L, EnumTagType.ID_32,"购买力低"),
ID_180(180L, EnumTagType.ID_32,"购买力中"),
ID_181(181L, EnumTagType.ID_32,"购买力强"),

ID_1000(1000L, EnumTagType.ID_50,"一天以内"), ID_1000(1000L, EnumTagType.ID_50,"一天以内"),
ID_1001(1001L, EnumTagType.ID_50,"一周以内"), ID_1001(1001L, EnumTagType.ID_50,"一周以内"),
ID_1002(1002L, EnumTagType.ID_50,"一月以内"), ID_1002(1002L, EnumTagType.ID_50,"一月以内"),


+ 2
- 0
mallinkService/src/main/java/com/iformall/enums/EnumTagType.java Vedi File

@@ -44,6 +44,8 @@ public enum EnumTagType {


ID_31(31L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_4, "运动频率"), ID_31(31L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_4, "运动频率"),


ID_32(32L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_4, "购买力"),

ID_0(0L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员手机"), ID_0(0L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员手机"),
ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"), ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"),
ID_51(51L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员等级"), ID_51(51L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员等级"),


+ 1
- 0
mallinkService/src/main/java/com/iformall/mapper/JmSportOrderMapper.java Vedi File

@@ -11,4 +11,5 @@ public interface JmSportOrderMapper extends CommonMapper<JmSportOrder, Long> {


Integer findCount(JmSportOrder record); Integer findCount(JmSportOrder record);


Integer findAvgPayment(JmSportOrder jmSportOrder);
} }

+ 31
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java Vedi File

@@ -735,18 +735,42 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
jmSportOrder.updateTenantInfo(tenantEntity); jmSportOrder.updateTenantInfo(tenantEntity);


int count = jmSportOrderMapper.findCount(jmSportOrder); int count = jmSportOrderMapper.findCount(jmSportOrder);

// 平均30天订单数>3     高
// 3>平均30天订单数>1.5 中
// 1.5>平均30天订单数>0  低
float verifiedRate = (float)count/30; float verifiedRate = (float)count/30;
if (verifiedRate > 1F/4)
if (verifiedRate > 1F/10)
resList = assign(user, EnumTag.ID_178); resList = assign(user, EnumTag.ID_178);
else if (verifiedRate > 1F/7)
else if (verifiedRate > 1F/20)
resList = assign(user, EnumTag.ID_177); resList = assign(user, EnumTag.ID_177);
else if (verifiedRate > 1F/30)
else
resList = assign(user, EnumTag.ID_176); resList = assign(user, EnumTag.ID_176);


return resList; return resList;
} }


private List<WxTags> assignTypeId32(WxCUserBasicInfo user,TenantEntity tenantEntity) {
List<WxTags> resList = null;

JmSportOrder jmSportOrder = new JmSportOrder();
jmSportOrder.setUserId(user.getId());
jmSportOrder.updateTenantInfo(tenantEntity);
Integer avgPayment = jmSportOrderMapper.findAvgPayment(jmSportOrder);
// 30>平均订单金额>50   强购买力
// 30>平均订单金额>10   中购买力
// 10>平均订单金额>0    弱购买力
if(avgPayment != null){
if (avgPayment.intValue() >= 30)
resList = assign(user, EnumTag.ID_181);
else if (avgPayment.intValue() >= 10)
resList = assign(user, EnumTag.ID_180);
else
resList = assign(user, EnumTag.ID_179);
}

return resList;
}

//打标接口 //打标接口
@Override @Override
public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) { public List<WxTags> assignTags(List<Long> tagIdList, WxCUserBasicInfo user) {
@@ -947,7 +971,10 @@ public class WxCUserTagsServiceImpl implements WxCUserTagsService {
WxCUserBasicInfo param = (WxCUserBasicInfo) obj; WxCUserBasicInfo param = (WxCUserBasicInfo) obj;
WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId(),param.getFinalTenantId()); WxCUserBasicInfo user = wxCUserBasicInfoMapper.selectById(param.getId(),param.getFinalTenantId());
if (user != null) { if (user != null) {
//运动频次
resList = assignTypeId31(user,tenantEntity); resList = assignTypeId31(user,tenantEntity);
//购买力
resList = assignTypeId32(user,tenantEntity);
} }
} }
break; break;


+ 32
- 1
mallinkService/src/main/resources/mapper/JmSportOrderMapper.xml Vedi File

@@ -12,6 +12,7 @@
<result column="num" jdbcType="INTEGER" property="num"/> <result column="num" jdbcType="INTEGER" property="num"/>


<result column="price" jdbcType="VARCHAR" property="price"/> <result column="price" jdbcType="VARCHAR" property="price"/>
<result column="payment" jdbcType="INTEGER" property="payment"/>
<result column="payment_time" jdbcType="TIMESTAMP" property="paymentTime"/> <result column="payment_time" jdbcType="TIMESTAMP" property="paymentTime"/>
<result column="pay_way" jdbcType="VARCHAR" property="payWay"/> <result column="pay_way" jdbcType="VARCHAR" property="payWay"/>


@@ -23,7 +24,7 @@


<sql id="allColumns"> <sql id="allColumns">
`id`,`order_id`,`tenant_id`,`parent_tenant_id`,`user_phone`,`user_id`, `id`,`order_id`,`tenant_id`,`parent_tenant_id`,`user_phone`,`user_id`,
`product_name`,`num`,`price`,`payment_time`,`pay_way`,
`product_name`,`num`,`price`,`payment`,`payment_time`,`pay_way`,
`gym_name`, `gym_name`,
`create_date`,`update_date` `create_date`,`update_date`
</sql> </sql>
@@ -99,6 +100,36 @@
<if test=" null != userId "> <if test=" null != userId ">
and `user_id` = #{userId} and `user_id` = #{userId}
</if> </if>
<if test="startDate != null">
and `payment_time` &gt;= #{startDate}
</if>
<if test="endDate != null">
and `payment_time` &lt;= #{endDate}
</if>
</select>


<select id="findAvgPayment" parameterType="com.iformall.domain.po.JmSportOrder" resultType="Integer">
select TRUNCATE(Avg(payment),0)
from jm_sport_order
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 != userId ">
and `user_id` = #{userId}
</if>

<if test="startDate != null">
and `payment_time` &gt;= #{startDate}
</if>
<if test="endDate != null">
and `payment_time` &lt;= #{endDate}
</if>
</select> </select>


</mapper> </mapper>

Caricamento…
Annulla
Salva