facade-vip/src/main/java/com/ks/vip/pojo/DO/VipCenterRecord.java
@@ -1,5 +1,6 @@ package com.ks.vip.pojo.DO; import org.springframework.data.annotation.Transient; import org.yeshi.utils.generater.mybatis.Column; import org.yeshi.utils.generater.mybatis.Table; @@ -43,6 +44,11 @@ @Column(name = "r_update_time") private Date updateTime; //临时采用 @Transient private VipOrder vipOrder; public Long getId() { return id; @@ -131,4 +137,12 @@ public void setOrderId(Long orderId) { this.orderId = orderId; } public VipOrder getVipOrder() { return vipOrder; } public void setVipOrder(VipOrder vipOrder) { this.vipOrder = vipOrder; } } facade-vip/src/main/java/com/ks/vip/service/VipCenterRecordService.java
@@ -3,8 +3,14 @@ import com.ks.vip.pojo.DO.VipCenterRecord; import java.util.List; public interface VipCenterRecordService { public void insertSelective(VipCenterRecord t); public List<VipCenterRecord> list(String uid, int page, int pageSize); public long count(String uid); } service-vip/src/main/java/com/ks/vip/mapper/VipCenterRecordMapper.java
@@ -13,6 +13,9 @@ public List<VipCenterRecord> list(@Param("query") DaoQuery daoQuery); public long count(@Param("query") DaoQuery daoQuery); public class DaoQuery extends BaseDaoQuery { public String uid; public Date date; service-vip/src/main/java/com/ks/vip/mapper/VipOrderMapper.java
@@ -14,8 +14,12 @@ long count(@Param("query")VipOrderQuery query); List<VipOrder> listByPrimaryKeys(@Param("ids") List<Long> ids); /** * 根据三方订单号查询 * * @param threeOrderId * @return */ @@ -23,6 +27,7 @@ /** * 统计根据类型 uid * * @param uid * @param type * @return service-vip/src/main/java/com/ks/vip/service/remote/VipCenterRecordServiceImpl.java
@@ -2,12 +2,18 @@ import com.ks.vip.mapper.VipCenterRecordMapper; import com.ks.vip.mapper.VipOrderMapper; import com.ks.vip.pojo.DO.VipCenter; import com.ks.vip.pojo.DO.VipCenterRecord; import com.ks.vip.pojo.DO.VipOrder; import com.ks.vip.service.VipCenterRecordService; import org.apache.dubbo.config.annotation.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service(version = "1.0") public class VipCenterRecordServiceImpl implements VipCenterRecordService { @@ -15,11 +21,48 @@ @Resource private VipCenterRecordMapper vipCenterRecordMapper; @Resource private VipOrderMapper vipOrderMapper; @Override public void insertSelective(VipCenterRecord t){ vipCenterRecordMapper.insertSelective(t); } @Override public List<VipCenterRecord> list(String uid, int page, int pageSize) { VipCenterRecordMapper.DaoQuery daoQuery = new VipCenterRecordMapper.DaoQuery(); daoQuery.uid = uid; daoQuery.start = (page - 1) * pageSize; daoQuery.count = pageSize; List<VipCenterRecord> list = vipCenterRecordMapper.list(daoQuery); if (list == null || list.size() == 0) return new ArrayList<>(); List<Long> orderIds = new ArrayList<>(); for (VipCenterRecord record : list) { orderIds.add(record.getOrderId()); } //填充订单详情 List<VipOrder> orders = vipOrderMapper.listByPrimaryKeys(orderIds); Map<Long, VipOrder> orderMap = new HashMap<>(); for (VipOrder vipOrder : orders) { orderMap.put(vipOrder.getId(), vipOrder); } for (VipCenterRecord record : list) { record.setVipOrder(orderMap.get(record.getOrderId())); } return list; } @Override public long count(String uid) { VipCenterRecordMapper.DaoQuery daoQuery = new VipCenterRecordMapper.DaoQuery(); daoQuery.uid = uid; return vipCenterRecordMapper.count(daoQuery); } } service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java
@@ -84,6 +84,7 @@ VipCenter vipCenter = vipCenterMapper.selectForUpdate(uid); if (vipCenter == null) { vipCenter=new VipCenter(); Date startTime = new Date(); Date endTime = new Date(startTime.getTime() + 1000 * 60 * 60L * validHours); @@ -104,9 +105,11 @@ long nowTime = java.lang.System.currentTimeMillis(); if (gradeId.longValue() == oldGradeId.longValue() && vipCenter.getEndTime().getTime() > nowTime) { // 上次会员还未已结束 record.setStartTime(endTime); endTime = new Date(vipCenter.getEndTime().getTime() + 1000 * 60 * 60L * validHours); } else { startTime = new Date(); record.setStartTime(startTime); endTime = new Date(startTime.getTime() + 1000 * 60 * 60L * validHours); } vipCenter.setStartTime(startTime); @@ -115,7 +118,6 @@ vipCenter.setUpdateTime(new Date()); vipCenterMapper.updateByPrimaryKeySelective(vipCenter); record.setStartTime(new Date()); record.setEndTime(endTime); } @@ -123,6 +125,7 @@ record.setUid(uid); record.setGradeId(gradeId); record.setCreateTime(new Date()); record.setState(1); vipCenterRecordService.insertSelective(record); } service-vip/src/main/resources/mapper/VipCenterRecordMapper.xml
@@ -21,10 +21,7 @@ </select> <select id="list" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/>from vip_center_record where 1=1 <sql id="listWhere"> <if test="query.uid!=null"> AND r_uid= #{query.uid} </if> @@ -32,6 +29,27 @@ <if test="query.date!=null"> AND #{query.date}>=r_start_time AND r_end_time>#{query.date}; </if> </sql> <select id="list" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/>from vip_center_record where 1=1 <include refid="listWhere"></include> order by r_create_time desc limit #{query.start}, #{query.count} </select> <select id="count" resultType="java.lang.Long"> select <include refid="Base_Column_List"/>from vip_center_record where 1=1 <include refid="listWhere"></include> </select> service-vip/src/main/resources/mapper/VipOrderMapper.xml
@@ -114,6 +114,19 @@ limit #{query.start},#{query.count} </select> <select id="listByPrimaryKeys" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from vip_order where <foreach collection="ids" item="item" open="(" separator=" or " close=")" > o_id=#{item} </foreach> </select> <select id="count" resultType="java.lang.Long"> select count(*) from vip_order where 1=1