Explorar el Código

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

release_toaliyun_real
Stormeye Wu hace 7 años
padre
commit
24e292ad31
Se han modificado 2 ficheros con 52 adiciones y 27 borrados
  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 Ver fichero

@@ -12,7 +12,6 @@ import com.iformall.domain.vo.CUserBaseInfoT;
import com.iformall.domain.vo.CUserBaseVo;
import com.iformall.domain.vo.CUserTagVo;
import com.iformall.domain.vo.WxCUserBasicInfoVo;
import com.iformall.enums.EnumAssignTagsTrigger;
import com.iformall.enums.EnumScoreType;
import com.iformall.mapper.WxCUserBasicInfoMapper;
import com.iformall.mapper.WxCUserMapper;
@@ -26,8 +25,8 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
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.LoggerFactory;
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) {
List<WxCUserBasicInfoVo> memberlist = wxCUserBasicInfoMapper.findVoList(basicInfo);

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

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

try {
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);
Cell nameCellTwo = rowtwo.createCell(0);
Cell sexCellTwo = rowtwo.createCell(1);
@@ -233,7 +234,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
if (!ids.isEmpty()) {
String tagNames = "";
String tagIds = "";
List<Long> tagIdList = new ArrayList<>();
tagIdList.clear();
for(Long id: ids) {
for(WxTags tag: tagList) {
if(id.equals(tag.getId())) {
@@ -306,7 +307,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
@Override
public void exportTemplate(HttpServletRequest request, HttpServletResponse response, String tenantId) {

XSSFWorkbook workbook;
SXSSFWorkbook workbook;
String filepath = Constant.fileDirectory;
File savefile = new File(filepath);
if (!savefile.exists()) {
@@ -316,9 +317,9 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
filepath = filepath + filename;
try {
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);

@@ -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) {
if (StringUtils.isBlank(uBase.getPhone())) {
return null;
@@ -591,13 +578,15 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
}
}

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

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


+ 38
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java Ver fichero

@@ -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) {
WxScoreHistory scoreHistory = new WxScoreHistory();
scoreHistory.setTenantId(cUser.getTenantId());
@@ -311,10 +335,10 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
private int memResetScore(WxCUserBasicInfo userInfo, Integer score) {

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

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

@@ -340,6 +364,18 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService {
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) {
final IdWorker idWorker = IdWorker.get();
WxScoreHistory history = new WxScoreHistory();


Cargando…
Cancelar
Guardar