diff --git a/mallinkAdmin/src/main/resources/db/migration/V202108190003__add_tag.sql b/mallinkAdmin/src/main/resources/db/migration/V202108190003__add_tag.sql index 018cff737..4198edea0 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202108190003__add_tag.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202108190003__add_tag.sql @@ -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, '购买力'); diff --git a/mallinkAdmin/src/main/resources/db/migration/V202108190004__add_jm_sport_order.sql b/mallinkAdmin/src/main/resources/db/migration/V202108190004__add_jm_sport_order.sql new file mode 100644 index 000000000..c4131a6f4 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202108190004__add_jm_sport_order.sql @@ -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; diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java index 3dda39d55..4061bcb61 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/JinMaoController.java @@ -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); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/JmSportOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/JmSportOrder.java index 937db31b5..1fc4650db 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/JmSportOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/JmSportOrder.java @@ -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; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTag.java b/mallinkService/src/main/java/com/iformall/enums/EnumTag.java index a69736e3e..f0ab10e98 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTag.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTag.java @@ -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,"一月以内"), diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java b/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java index b1fcc1c00..4f402c0fc 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java @@ -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, "会员等级"), diff --git a/mallinkService/src/main/java/com/iformall/mapper/JmSportOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/JmSportOrderMapper.java index 04158e600..95521a421 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/JmSportOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/JmSportOrderMapper.java @@ -11,4 +11,5 @@ public interface JmSportOrderMapper extends CommonMapper { Integer findCount(JmSportOrder record); + Integer findAvgPayment(JmSportOrder jmSportOrder); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java index c05543f72..7603b8b08 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserTagsServiceImpl.java @@ -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 assignTypeId32(WxCUserBasicInfo user,TenantEntity tenantEntity) { + List 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 assignTags(List 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; diff --git a/mallinkService/src/main/resources/mapper/JmSportOrderMapper.xml b/mallinkService/src/main/resources/mapper/JmSportOrderMapper.xml index 35ee25b88..3e0cf2b74 100644 --- a/mallinkService/src/main/resources/mapper/JmSportOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/JmSportOrderMapper.xml @@ -12,6 +12,7 @@ + @@ -23,7 +24,7 @@ `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` @@ -99,6 +100,36 @@ and `user_id` = #{userId} + + and `payment_time` >= #{startDate} + + + and `payment_time` <= #{endDate} + + + + +