Просмотр исходного кода

[会员列表][新增]:会员导入导出优化

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
7cfc33fe55
2 измененных файлов: 52 добавлений и 27 удалений
  1. +14
    -25
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  2. +38
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java

+ 14
- 25
mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java Просмотреть файл

@@ -12,7 +12,6 @@ import com.iformall.domain.vo.CUserBaseInfoT;
import com.iformall.domain.vo.CUserBaseVo; import com.iformall.domain.vo.CUserBaseVo;
import com.iformall.domain.vo.CUserTagVo; import com.iformall.domain.vo.CUserTagVo;
import com.iformall.domain.vo.WxCUserBasicInfoVo; import com.iformall.domain.vo.WxCUserBasicInfoVo;
import com.iformall.enums.EnumAssignTagsTrigger;
import com.iformall.enums.EnumScoreType; import com.iformall.enums.EnumScoreType;
import com.iformall.mapper.WxCUserBasicInfoMapper; import com.iformall.mapper.WxCUserBasicInfoMapper;
import com.iformall.mapper.WxCUserMapper; import com.iformall.mapper.WxCUserMapper;
@@ -26,8 +25,8 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -152,7 +151,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
public void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) { public void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) {
List<WxCUserBasicInfoVo> memberlist = wxCUserBasicInfoMapper.findVoList(basicInfo); List<WxCUserBasicInfoVo> memberlist = wxCUserBasicInfoMapper.findVoList(basicInfo);


XSSFWorkbook workbook;
SXSSFWorkbook workbook;
String filepath = Constant.fileDirectory; String filepath = Constant.fileDirectory;
File savefile = new File(filepath); File savefile = new File(filepath);
if (!savefile.exists()) { if (!savefile.exists()) {
@@ -166,10 +165,12 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
WxTags wxTagsQ = new WxTags(); WxTags wxTagsQ = new WxTags();
List<WxTags> tagList = wxTagsMapper.findList(wxTagsQ); List<WxTags> tagList = wxTagsMapper.findList(wxTagsQ);


List<Long> tagIdList = new ArrayList<Long>();

try { try {
File file = new File(filepath); File file = new File(filepath);
workbook = new XSSFWorkbook();
XSSFSheet sheetTwo = workbook.createSheet("会员信息");
workbook = new SXSSFWorkbook(100);
SXSSFSheet sheetTwo = workbook.createSheet("会员信息");
Row rowtwo = sheetTwo.createRow(0); Row rowtwo = sheetTwo.createRow(0);
Cell nameCellTwo = rowtwo.createCell(0); Cell nameCellTwo = rowtwo.createCell(0);
Cell sexCellTwo = rowtwo.createCell(1); Cell sexCellTwo = rowtwo.createCell(1);
@@ -233,7 +234,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
if (!ids.isEmpty()) { if (!ids.isEmpty()) {
String tagNames = ""; String tagNames = "";
String tagIds = ""; String tagIds = "";
List<Long> tagIdList = new ArrayList<>();
tagIdList.clear();
for(Long id: ids) { for(Long id: ids) {
for(WxTags tag: tagList) { for(WxTags tag: tagList) {
if(id.equals(tag.getId())) { if(id.equals(tag.getId())) {
@@ -306,7 +307,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
@Override @Override
public void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId) { public void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId) {


XSSFWorkbook workbook;
SXSSFWorkbook workbook;
String filepath = Constant.fileDirectory; String filepath = Constant.fileDirectory;
File savefile = new File(filepath); File savefile = new File(filepath);
if (!savefile.exists()) { if (!savefile.exists()) {
@@ -316,9 +317,9 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
filepath = filepath + filename; filepath = filepath + filename;
try { try {
File file = new File(filepath); File file = new File(filepath);
workbook = new XSSFWorkbook();
workbook = new SXSSFWorkbook(100);


XSSFSheet sheetTwo = workbook.createSheet("会员信息");
SXSSFSheet sheetTwo = workbook.createSheet("会员信息");


Row rowtwo = sheetTwo.createRow(0); Row rowtwo = sheetTwo.createRow(0);


@@ -432,20 +433,6 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
} }





/*
private class UserVerifyHandler implements IExcelVerifyHandler<CUserBaseInfoT> {
@Override
public ExcelVerifyHandlerResult verifyHandler(CUserBaseInfoT cUserBaseInfoT) {
if (StringUtils.isBlank(cUserBaseInfoT.getPhone())) {
return new ExcelVerifyHandlerResult(cUserBaseInfoT);
}
return null;
}
}
*/


public WxCUserBasicInfo InitUserBaseInfo(CUserBaseInfoT uBase, String tenantId) { public WxCUserBasicInfo InitUserBaseInfo(CUserBaseInfoT uBase, String tenantId) {
if (StringUtils.isBlank(uBase.getPhone())) { if (StringUtils.isBlank(uBase.getPhone())) {
return null; return null;
@@ -591,13 +578,15 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
} }
} }


//触发自动打标签
//触发自动打标签, 晚上会自动打标签,所以去掉导入打标签
/*
if (oldUserBase != null) { if (oldUserBase != null) {
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,oldUserBase); wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,oldUserBase);
} }
else{ else{
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,userBase); wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_IMPORT,userBase);
} }
*/


// 成长值 // 成长值
if (StringUtils.isNotBlank(uBase.getPoins())) { if (StringUtils.isNotBlank(uBase.getPoins())) {


+ 38
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java Просмотреть файл

@@ -148,6 +148,30 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
} }
} }


private void resetBasicUserScore(WxCUserBasicInfo user, int scoreNumber) {
// 1. basicUser
if(user == null) {
return;
}

// 2. update score/ 修改basic表积分
user.setPoins(scoreNumber);
wxCUserBasicInfoMapper.updateScore(user);

// 3. 修改 c_user表积分 score
if (user.getPhone() != null) {
WxCUser wxCUser = new WxCUser();
wxCUser.setTenantId(user.getTenantId());
wxCUser.setPhone(user.getPhone());
List<WxCUser> list = wxCUserMapper.findList(wxCUser);
if (!list.isEmpty()) {
wxCUser = list.get(0);
wxCUser.setScore(scoreNumber);
wxCUserMapper.updateByPrimaryKeySelective(wxCUser);
}
}
}

private int checkTodayLoginScoreCount(WxCUser cUser) { private int checkTodayLoginScoreCount(WxCUser cUser) {
WxScoreHistory scoreHistory = new WxScoreHistory(); WxScoreHistory scoreHistory = new WxScoreHistory();
scoreHistory.setTenantId(cUser.getTenantId()); scoreHistory.setTenantId(cUser.getTenantId());
@@ -311,10 +335,10 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
private int memResetScore(WxCUserBasicInfo userInfo, Integer score) { private int memResetScore(WxCUserBasicInfo userInfo, Integer score) {


// 1. 导入成长值 // 1. 导入成长值
resetBasicUserScore(userInfo.getId(), score);
resetBasicUserScore(userInfo, score);


// 2. 记录历史 // 2. 记录历史
recordScoreHistory(score, userInfo.getTenantId(), userInfo.getId(), EnumScoreType.MEM_IMPORT);
recordScoreHistory(userInfo, score, EnumScoreType.MEM_IMPORT);
return score; return score;
} }


@@ -340,6 +364,18 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
return score; return score;
} }


private void recordScoreHistory(WxCUserBasicInfo userInfo, int addScoreNumber, EnumScoreType wechatPhone) {
final IdWorker idWorker = IdWorker.get();
WxScoreHistory history = new WxScoreHistory();
history.setId(idWorker.nextId());
history.setTenantId(userInfo.getTenantId());
history.setCUserId(userInfo.getId());
history.setCreateDate(new Date());
history.setScoreType(wechatPhone.getCode());
history.setScoreAmount(addScoreNumber);
wxScoreHistoryMapper.insert(history);
}

private void recordScoreHistory(int addScoreNumber, String tenantId, Long id, EnumScoreType wechatPhone) { private void recordScoreHistory(int addScoreNumber, String tenantId, Long id, EnumScoreType wechatPhone) {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
WxScoreHistory history = new WxScoreHistory(); WxScoreHistory history = new WxScoreHistory();


Загрузка…
Отмена
Сохранить