Merge remote-tracking branch 'origin/zcc'

This commit is contained in:
wangjinlei
2024-05-24 16:37:07 +08:00
11 changed files with 313 additions and 53 deletions

View File

@@ -15,11 +15,13 @@ public class DataMigrationUtil extends Thread {
Map map;
int i;
Connection yljkconn;
Connection fzdsconn;
public DataMigrationUtil(Map map,int i,Connection fzdsconn){
public DataMigrationUtil(Map map,int i,Connection yljkconn,Connection fzdsconn){
this.map = map;
this.i = i;
this.yljkconn = yljkconn;
this.fzdsconn = fzdsconn;
}
@@ -29,8 +31,8 @@ public class DataMigrationUtil extends Thread {
// courseCatalogue();
// courseCatalogueChapter();
// courseCatalogueChapterVideo();
// user();//用的都是copy表里的数据
//TRUNCATE
user();//用的都是copy表里的数据
// truncate();
}
@@ -337,7 +339,27 @@ public class DataMigrationUtil extends Thread {
}
}
public static void truncate(){
try {
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
PreparedStatement statement = fzdsconn.prepareStatement("TRUNCATE table user_copy1;");
statement.execute();
PreparedStatement statement2 = fzdsconn.prepareStatement("TRUNCATE table user_vip_copy1;");
statement2.execute();
PreparedStatement statement3 = fzdsconn.prepareStatement("TRUNCATE table transaction_details_copy1;");
statement3.execute();
PreparedStatement statement4 = fzdsconn.prepareStatement("TRUNCATE table user_contribution;");
statement4.execute();
System.out.println("清空完成");
}catch (SQLException e) {
System.out.println(e.getMessage());
}
}
public static void user(){
truncate();
try {
long startTime = System.currentTimeMillis();
Connection yljkconn = DriverManager.getConnection(
@@ -362,15 +384,13 @@ public class DataMigrationUtil extends Thread {
list.add(map);
}
resultSet.close();
statement.close();
yljkconn.close();
Connection fzdsconn = DriverManager.getConnection(
"jdbc:mysql://rm-2zev4157t67trxuu3yo.mysql.rds.aliyuncs.com:3306/e_book_test?rewriteBatchedStatements=true",
"nuttyreading", "Wu751019!");
// 1、创建服务创建线程池
ExecutorService service = Executors.newFixedThreadPool(50);
for (int i=0;i<list.size(); i++){
DataMigrationUtil d1 = new DataMigrationUtil(list.get(i),i+1,fzdsconn);
DataMigrationUtil d1 = new DataMigrationUtil(list.get(i),i+1,yljkconn,fzdsconn);
service.execute(d1);
}
System.out.println("---开始");
@@ -424,7 +444,7 @@ public class DataMigrationUtil extends Thread {
//没有关联,直接导入
PreparedStatement telInsertStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_copy1 (name,avatar,nickname,tel,vip,peanut_coin,jf,yljk_oid) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)",PreparedStatement.RETURN_GENERATED_KEYS);
telInsertStatement.setString(1,map.get("nameCN")==null?"":map.get("nameCN").toString());
telInsertStatement.setString(2,map.get("icons")==null?"":map.get("icons").toString());
telInsertStatement.setString(3,map.get("nickName")==null?"":map.get("nickName").toString());
@@ -488,19 +508,32 @@ public class DataMigrationUtil extends Thread {
jfTransactionDetailStatement.execute();
jfTransactionDetailStatement.close();
}
//湖分明细
PreparedStatement contributionStatements = yljkconn.prepareStatement("" +
"select * from t_customer_contribution where valid = 1 and customerOid = '"+map.get("oid")+"' ");
ResultSet contributionResultSet = contributionStatements.executeQuery();
if (contributionResultSet.next()){
//添加湖分记录
PreparedStatement contributionStatement = fzdsconn.prepareStatement(
"INSERT ignore INTO user_contribution (user_id,score,detail,type,conversion_flag,create_time) " +
"VALUES (?, ?, ?, ?, ?, ?)");
contributionStatement.setString(1,userId);
contributionStatement.setDouble(2,contributionResultSet.getDouble("score"));
contributionStatement.setString(3,contributionResultSet.getString("detail"));
contributionStatement.setString(4,contributionResultSet.getString("type"));
contributionStatement.setInt(5,contributionResultSet.getInt("conversionFlg"));
contributionStatement.setTimestamp(6,contributionResultSet.getTimestamp("createDate"));
contributionStatement.execute();
contributionStatement.close();
}
}catch (Exception ee){
System.out.println(map.get("nameCN")+"--"+ee.getMessage());
}
}
}

View File

@@ -0,0 +1,58 @@
package com.peanut.modules.common.controller;
import com.github.yulichang.base.MPJBaseMapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.R;
import com.peanut.common.utils.ShiroUtils;
import com.peanut.modules.common.entity.UserContribution;
import com.peanut.modules.master.service.UserContributionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* 湖分
*/
@Slf4j
@RestController("commonUserContribution")
@RequestMapping("common/userContribution")
public class UserContributionController {
@Autowired
private UserContributionService contributionService;
//获取我的湖分列表
@RequestMapping("/getUserContribution")
public R getUserContribution(){
Integer userId = ShiroUtils.getUId();
//各分类总分
MPJLambdaWrapper wrapper = new MPJLambdaWrapper();
wrapper.eq("user_id",userId);
wrapper.select("type");
wrapper.select("sum(score) as score");
wrapper.groupBy("type");
List contributions = contributionService.listMaps(wrapper);
//统计总分
MPJLambdaWrapper totalWrapper = new MPJLambdaWrapper();
totalWrapper.eq("user_id",userId);
totalWrapper.select("sum(score) as score");
Map map = contributionService.getMap(totalWrapper);
return R.ok().put("list",contributions).put("total",map.get("score"));
}
//分类下湖分明细
@RequestMapping("/getUserContributionByType")
public R getUserContributionByType(String type){
Integer userId = 785;
MPJLambdaWrapper wrapper = new MPJLambdaWrapper();
wrapper.eq("user_id",userId);
wrapper.eq("type",type);
wrapper.orderByDesc("create_time");
List contributions = contributionService.listMaps(wrapper);
return R.ok().put("list",contributions);
}
}

View File

@@ -0,0 +1,9 @@
package com.peanut.modules.common.dao;
import com.github.yulichang.base.MPJBaseMapper;
import com.peanut.modules.common.entity.UserContribution;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserContributionDao extends MPJBaseMapper<UserContribution> {
}

View File

@@ -0,0 +1,38 @@
package com.peanut.modules.common.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
@Data
@TableName("user_contribution")
public class UserContribution {
@TableId
private Integer id;
private Integer userId;
//分数
private Double score;
//明细
private String detail;
//类型 在线教学 01 学术期刊 03 太湖讲堂 05 创作技术 07 注册邀请 11 课程邀请 13
private String type;
//兑换标志 未兑换0 兑换完毕1
private Integer conversionFlag;
private Date createTime;
@TableLogic
private Integer delFlag;
@TableField(exist = false)
private MyUserEntity user;
}

View File

@@ -0,0 +1,7 @@
package com.peanut.modules.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.modules.common.entity.UserContribution;
public interface UserContributionService extends IService<UserContribution> {
}

View File

@@ -0,0 +1,13 @@
package com.peanut.modules.common.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.peanut.modules.common.dao.UserContributionDao;
import com.peanut.modules.common.entity.UserContribution;
import com.peanut.modules.common.service.UserContributionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service("commonUserContributionService")
public class UserContributionServiceImpl extends ServiceImpl<UserContributionDao, UserContribution> implements UserContributionService {
}

View File

@@ -27,20 +27,18 @@ public class MessageController {
@RequestMapping("/listByPage")
public R listByPage(@RequestBody Map<String, Object> params) {
LambdaQueryWrapper<Message> wrapper = new LambdaQueryWrapper();
if (params.containsKey("title")&& StringUtils.isNotEmpty(params.get("title").toString())) {
if (StringUtils.isNotEmpty(params.get("title").toString())) {
wrapper.like(Message::getTitle,params.get("title"));
}
if (params.containsKey("type")&& StringUtils.isNotEmpty(params.get("type").toString())) {
if (StringUtils.isNotEmpty(params.get("type").toString())) {
wrapper.eq(Message::getType,params.get("type"));
}
if (params.containsKey("isBook")&& StringUtils.isNotEmpty(params.get("isBook").toString())) {
wrapper.eq(Message::getIsBook,params.get("isBook"));
}
if (params.containsKey("isMedical")&& StringUtils.isNotEmpty(params.get("isMedical").toString())) {
wrapper.eq(Message::getIsBook,params.get("isMedical"));
}
if (params.containsKey("isSociology")&& StringUtils.isNotEmpty(params.get("isSociology").toString())) {
wrapper.eq(Message::getIsBook,params.get("isSociology"));
if (StringUtils.isNotEmpty(params.get("isBook").toString())||
StringUtils.isNotEmpty(params.get("isMedical").toString())||
StringUtils.isNotEmpty(params.get("isSociology").toString())) {
wrapper.and(t->t.eq("1".equals(params.get("isBook").toString()),Message::getIsBook,params.get("isBook"))
.or().eq("1".equals(params.get("isMedical").toString()),Message::getIsMedical,params.get("isMedical"))
.or().eq("1".equals(params.get("isSociology").toString()),Message::getIsSociology,params.get("isSociology")));
}
wrapper.orderByDesc(Message::getCreateTime);
Page<Message> page = messageService.page(new Page<>(

View File

@@ -0,0 +1,75 @@
package com.peanut.modules.master.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.R;
import com.peanut.modules.common.entity.MyUserEntity;
import com.peanut.modules.common.entity.UserContribution;
import com.peanut.modules.master.service.MyUserService;
import com.peanut.modules.master.service.UserContributionService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* 湖分管理
*/
@Slf4j
@RestController("masterUserContribution")
@RequestMapping("master/userContribution")
public class UserContributionController {
@Autowired
private UserContributionService contributionService;
@Autowired
private MyUserService userService;
@RequestMapping("/listByPage")
public R listByPage(@RequestBody Map<String, Object> params) {
MPJLambdaWrapper<UserContribution> wrapper = new MPJLambdaWrapper();
wrapper.selectAll(UserContribution.class);
wrapper.leftJoin(MyUserEntity.class, MyUserEntity::getId, UserContribution::getUserId);
if (params.containsKey("userName")&& StringUtils.isNotEmpty(params.get("userName").toString())) {
wrapper.like(MyUserEntity::getName,params.get("userName"));
wrapper.like(MyUserEntity::getNickname,params.get("userName"));
}
if (params.containsKey("tel")&& StringUtils.isNotEmpty(params.get("tel").toString())) {
wrapper.like(MyUserEntity::getTel,params.get("tel"));
}
if (params.containsKey("email")&& StringUtils.isNotEmpty(params.get("email").toString())) {
wrapper.like(MyUserEntity::getEmail,params.get("email"));
}
if (params.containsKey("type")&& StringUtils.isNotEmpty(params.get("type").toString())) {
wrapper.eq(UserContribution::getType,params.get("type"));
}
wrapper.orderByDesc(UserContribution::getCreateTime);
Page<UserContribution> page = contributionService.page(new Page<>(
Long.parseLong(params.get("current").toString()), Long.parseLong(params.get("limit").toString())), wrapper);
List<UserContribution> userContributions = page.getRecords();
if (userContributions.size() > 0){
for (UserContribution contribution : userContributions) {
contribution.setUser(userService.getById(contribution.getUserId()));
}
}
return R.ok().put("result", page);
}
@RequestMapping("/saveUserContribution")
public R saveUserContribution(@RequestBody UserContribution contribution) {
contributionService.save(contribution);
return R.ok();
}
@RequestMapping("/delUserContribution")
public R delMessage(String id) {
contributionService.removeById(id);
return R.ok();
}
}

View File

@@ -0,0 +1,7 @@
package com.peanut.modules.master.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.modules.common.entity.UserContribution;
public interface UserContributionService extends IService<UserContribution> {
}

View File

@@ -15,7 +15,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -126,34 +128,41 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, CourseEntity> impl
continue;
}
CourseEntity one = this.getOne(new LambdaQueryWrapper<CourseEntity>().eq(CourseEntity::getId, c.getCourseId()));
ShopProduct shopProduct = new ShopProduct();
shopProduct.setProductName(one.getTitle()+"."+c.getTitle()+"(半年)");
shopProduct.setPrice(c.getHalfFee());
shopProduct.setGoodsType("05");
shopProduct.setProductStock(2000);
shopProductDao.insert(shopProduct);
//添加半年期的商品课程对应关系
ShopProductCourseEntity shopProductCourseEntity = new ShopProductCourseEntity();
shopProductCourseEntity.setProductId(shopProduct.getProductId());
shopProductCourseEntity.setCourseId(c.getCourseId());
shopProductCourseEntity.setCatalogueId(c.getId());
shopProductCourseEntity.setDays(180);
shopProductCourseDao.insert(shopProductCourseEntity);
//添加一年期商品
ShopProduct shopProduct1 = new ShopProduct();
shopProduct1.setProductName(one.getTitle()+"."+c.getTitle()+"(一年)");
shopProduct1.setPrice(c.getFee());
shopProduct1.setGoodsType("05");
shopProduct1.setProductStock(2000);
shopProductDao.insert(shopProduct1);
//添加一年期的商品课程对应关系
ShopProductCourseEntity shopProductCourseEntity1 = new ShopProductCourseEntity();
shopProductCourseEntity1.setProductId(shopProduct1.getProductId());
shopProductCourseEntity1.setCourseId(c.getCourseId());
shopProductCourseEntity1.setCatalogueId(c.getId());
shopProductCourseEntity1.setDays(365);
shopProductCourseDao.insert(shopProductCourseEntity1);
if (c.getHalfFee().compareTo(new BigDecimal(0))==1) {
ShopProduct shopProduct = new ShopProduct();
shopProduct.setProductName(one.getTitle() + "." + c.getTitle() + "(半年)");
shopProduct.setPrice(c.getHalfFee());
shopProduct.setGoodsType("05");
shopProduct.setProductStock(2000);
shopProduct.setCreateTime(new Date());
shopProduct.setProductImages(one.getImage());
shopProductDao.insert(shopProduct);
//添加半年期的商品课程对应关系
ShopProductCourseEntity shopProductCourseEntity = new ShopProductCourseEntity();
shopProductCourseEntity.setProductId(shopProduct.getProductId());
shopProductCourseEntity.setCourseId(c.getCourseId());
shopProductCourseEntity.setCatalogueId(c.getId());
shopProductCourseEntity.setDays(180);
shopProductCourseDao.insert(shopProductCourseEntity);
}
if (c.getFee().compareTo(new BigDecimal(0))==1){
//添加一年期商品
ShopProduct shopProduct1 = new ShopProduct();
shopProduct1.setProductName(one.getTitle()+"."+c.getTitle()+"(一年)");
shopProduct1.setPrice(c.getFee());
shopProduct1.setGoodsType("05");
shopProduct1.setProductStock(2000);
shopProduct1.setCreateTime(new Date());
shopProduct1.setProductImages(one.getImage());
shopProductDao.insert(shopProduct1);
//添加一年期的商品课程对应关系
ShopProductCourseEntity shopProductCourseEntity1 = new ShopProductCourseEntity();
shopProductCourseEntity1.setProductId(shopProduct1.getProductId());
shopProductCourseEntity1.setCourseId(c.getCourseId());
shopProductCourseEntity1.setCatalogueId(c.getId());
shopProductCourseEntity1.setDays(365);
shopProductCourseDao.insert(shopProductCourseEntity1);
}
}
}

View File

@@ -0,0 +1,13 @@
package com.peanut.modules.master.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.peanut.modules.common.dao.UserContributionDao;
import com.peanut.modules.common.entity.UserContribution;
import com.peanut.modules.master.service.UserContributionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service("masterUserContributionService")
public class UserContributionServiceImpl extends ServiceImpl<UserContributionDao, UserContribution> implements UserContributionService {
}