Explorar el Código

标签

release_toaliyun_real
xhxu hace 4 años
padre
commit
f3aaaa5eda
Se han modificado 9 ficheros con 133 adiciones y 5 borrados
  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 Ver fichero

@@ -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 (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_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 Ver fichero

@@ -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 Ver fichero

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


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/po/JmSportOrder.java Ver fichero

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

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

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



+ 4
- 0
mallinkService/src/main/java/com/iformall/enums/EnumTag.java Ver fichero

@@ -220,6 +220,10 @@ public enum EnumTag {
ID_177(177L, 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_1001(1001L, EnumTagType.ID_50,"一周以内"),
ID_1002(1002L, EnumTagType.ID_50,"一月以内"),


+ 2
- 0
mallinkService/src/main/java/com/iformall/enums/EnumTagType.java Ver fichero

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

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_50(50L, 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 Ver fichero

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

Integer findCount(JmSportOrder record);

Integer findAvgPayment(JmSportOrder jmSportOrder);
}

+ 31
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java Ver fichero

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

int count = jmSportOrderMapper.findCount(jmSportOrder);

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

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


+ 32
- 1
mallinkService/src/main/resources/mapper/JmSportOrderMapper.xml Ver fichero

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

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

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

<sql id="allColumns">
`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`,
`create_date`,`update_date`
</sql>
@@ -99,6 +100,36 @@
<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 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>

</mapper>

Cargando…
Cancelar
Guardar