Commit d43f4416 by huluobin

update

parent cceb7ef0
package com.gogirl.application.store.career;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.store.career.TechScoreRules;
import com.gogirl.dto.TechScore;
/**
* <p>
* 服务类
* </p>
*
* @author robbendev
* @since 2020-03-12
*/
public interface ITechScoreRulesService extends IService<TechScoreRules> {
/**
* 查询美甲师技术评分
*
* @return
*/
TechScore getTechScore();
}
package com.gogirl.application.store.career.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.store.career.ITechScoreRulesService;
import com.gogirl.domain.store.career.Career;
import com.gogirl.domain.store.career.TechScoreRules;
import com.gogirl.dto.TechScore;
import com.gogirl.infrastructure.mapper.store.career.CareerMapper;
import com.gogirl.infrastructure.mapper.store.career.TechScoreRulesMapper;
import com.gogirl.infrastructure.util.SessionUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author robbendev
* @since 2020-03-12
*/
@Service
@AllArgsConstructor
public class TechScoreRulesServiceImpl extends ServiceImpl<TechScoreRulesMapper, TechScoreRules> implements ITechScoreRulesService {
private final CareerMapper careerMapper;
@Override
public TechScore getTechScore() {
Integer technicianId = SessionUtils.getTechnicianId();
List<TechScoreRules> techScoreRulesList = this.list();
Career career = careerMapper.selectOne(new LambdaQueryWrapper<Career>()
.eq(Career::getTechnicianId, technicianId));
TechScore techScore = new TechScore();
techScore.setTechScoreRulesList(techScoreRulesList);
techScore.setTechScore(career.getTechScore());
return techScore;
}
}
package com.gogirl.application.store.store;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.store.store.StoreData;
public interface StoreDataService extends IService<StoreData> {
/**
* 门店数据
*
* @param month
* @return
*/
StoreData storeData(String month);
}
package com.gogirl.application.store.store.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.store.store.StoreDataService;
import com.gogirl.domain.store.store.StoreData;
import com.gogirl.domain.store.store.StoreTechnicianAchieve;
import com.gogirl.domain.store.store.StoreTechnicianTotalAchieve;
import com.gogirl.domain.store.store.StoreTradeAmount;
import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.infrastructure.mapper.store.store.StoreDataMapper;
import com.gogirl.infrastructure.util.SessionUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@Service
@AllArgsConstructor
public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData> implements StoreDataService {
private final StoreDataMapper storeDataMapper;
@Override
public StoreData storeData(String month) {
Integer technicianId = SessionUtils.getTechnicianId();
GogirlToken gogirlToken = SessionUtils.getTechnicianToken();
StoreData storeData = storeDataMapper.selectOne(new LambdaQueryWrapper<StoreData>().eq(StoreData::getDepartmentId, gogirlToken.getDepartmentId()));
//总订单业绩
List<StoreTradeAmount> storeTradeAmountList = storeDataMapper.storeTradeAmount(month);
//总开卡业绩
StoreTradeAmount storeTradeAmount = new StoreTradeAmount();
storeTradeAmount.setAmount(storeDataMapper.chargeAchieve(month));
storeTradeAmount.setServeType("开卡");
storeTradeAmountList.add(storeTradeAmount);
//个人业绩
List<StoreTechnicianAchieve> storeTechnicianAchieveList = storeDataMapper.storeTechnicianAchieve(month);
storeData.setStoreTradeAmountList(storeTradeAmountList);
storeData.setStoreTechnicianAchieveList(storeTechnicianAchieveList);
//总业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalAchieveList = storeTechnicianAchieveList.stream().collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
.values().stream().map(list -> {
StoreTechnicianTotalAchieve storeTechnicianTotalAchieve = new StoreTechnicianTotalAchieve();
storeTechnicianTotalAchieve.setAchievement(list.stream().map(StoreTechnicianAchieve::getAchievement).reduce(BigDecimal.ZERO, BigDecimal::add));
storeTechnicianTotalAchieve.setTechnicianId(list.stream().map(StoreTechnicianAchieve::getTechnicianId).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianName(list.stream().map(StoreTechnicianAchieve::getTechnicianName).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianPicture(list.stream().findAny().get().getTechnicianPicture());
return storeTechnicianTotalAchieve;
})
.sorted(Comparator.comparing(StoreTechnicianTotalAchieve::getAchievement).reversed())
.collect(Collectors.toList());
storeData.setStoreTechnicianTotalAchieveList(storeTechnicianTotalAchieveList);
//总订单业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalOrderAchieveList = storeTechnicianAchieveList.stream()
.filter(storeTechnicianAchieve -> !storeTechnicianAchieve.getServeType().equals("开卡"))
.collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
.values().stream().map(list -> {
StoreTechnicianTotalAchieve storeTechnicianTotalAchieve = new StoreTechnicianTotalAchieve();
storeTechnicianTotalAchieve.setAchievement(list.stream().map(StoreTechnicianAchieve::getAchievement).reduce(BigDecimal.ZERO, BigDecimal::add));
storeTechnicianTotalAchieve.setTechnicianId(list.stream().map(StoreTechnicianAchieve::getTechnicianId).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianName(list.stream().map(StoreTechnicianAchieve::getTechnicianName).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianPicture(list.stream().findAny().get().getTechnicianPicture());
return storeTechnicianTotalAchieve;
})
.sorted(Comparator.comparing(StoreTechnicianTotalAchieve::getAchievement).reversed())
.collect(Collectors.toList());
storeData.setStoreTechnicianTotalOrderAchieveList(storeTechnicianTotalOrderAchieveList);
//总充值业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalChargeAchieveList = storeTechnicianAchieveList.stream()
.filter(storeTechnicianAchieve -> storeTechnicianAchieve.getServeType().equals("开卡"))
.collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
.values().stream().map(list -> {
StoreTechnicianTotalAchieve storeTechnicianTotalAchieve = new StoreTechnicianTotalAchieve();
storeTechnicianTotalAchieve.setAchievement(list.stream().map(StoreTechnicianAchieve::getAchievement).reduce(BigDecimal.ZERO, BigDecimal::add));
storeTechnicianTotalAchieve.setTechnicianId(list.stream().map(StoreTechnicianAchieve::getTechnicianId).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianName(list.stream().map(StoreTechnicianAchieve::getTechnicianName).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianPicture(list.stream().findAny().get().getTechnicianPicture());
return storeTechnicianTotalAchieve;
})
.sorted(Comparator.comparing(StoreTechnicianTotalAchieve::getAchievement).reversed())
.collect(Collectors.toList());
storeData.setStoreTechnicianTotalChargeAchieveList((storeTechnicianTotalChargeAchieveList));
return storeData;
}
}
package com.gogirl.application.store.training;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.store.training.TrainingStartClass;
public interface TrainingStartClassService extends IService<TrainingStartClass> {
}
......@@ -84,4 +84,5 @@ public class Career {
private Double totalAttendancePercent;
private Integer techScore;
}
package com.gogirl.domain.store.career;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020-03-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="TechScoreRules对象", description="")
public class TechScoreRules implements Serializable {
private static final long serialVersionUID = 1L;
private Integer sort;
private String techScoreRules;
}
package com.gogirl.dto;
import com.gogirl.domain.store.career.TechScoreRules;
import lombok.Data;
import java.util.List;
@Data
public class TechScore {
private List<TechScoreRules> techScoreRulesList;
private Integer techScore;
}
package com.gogirl.infrastructure.mapper.store.career;
import com.gogirl.domain.store.career.TechScoreRules;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-03-12
*/
public interface TechScoreRulesMapper extends BaseMapper<TechScoreRules> {
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gogirl.application.store.store.CareerCmdService;
import com.gogirl.application.store.store.StoreDataService;
import com.gogirl.application.xcx.GogirlTokenService;
import com.gogirl.assembler.CareerDTOAssembler;
import com.gogirl.assembler.TrainingStartClassDTOAssembler;
......@@ -37,6 +38,7 @@ import com.gogirl.shared.store.query.dto.TrainingStartClassDTO;
import com.gogirl.shared.store.query.dto.WorksDTO;
import com.gogirl.shared.store.query.qry.TrainingStartClassQuery;
import com.gogirl.shared.store.query.qry.WorksQuery;
import com.google.gson.internal.$Gson$Preconditions;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
......@@ -121,6 +123,8 @@ public class CareerController {
public JsonResult<IPage<TrainingStartClassLogTechnician>> queryPageStartClassLog(@RequestParam Integer pageNum,
@RequestParam Integer pageSize,
@RequestHeader String token) {
Integer technicianId = SessionUtils.getTechnicianId();
IPage<TrainingStartClassLogTechnician> pageRequest = new Page<>(pageNum, pageSize);
IPage<TrainingStartClassLogTechnician> page = trainingStartClassLogTechnicianMapper.selectPage(pageRequest, new LambdaQueryWrapper<TrainingStartClassLogTechnician>().eq(TrainingStartClassLogTechnician::getTechnicianId, technicianId));
......@@ -139,84 +143,16 @@ public class CareerController {
@ApiOperation("成长历程")
@GetMapping("/technician/career/career")
public JsonResult<CareerDTO> career(@RequestHeader String token) {
Integer technicianId = SessionUtils.getTechnicianId();
Career career = careerCmdService.career(technicianId);
Career career = careerCmdService.career(SessionUtils.getTechnicianId());
return JsonResult.success(careerDTOAssembler.apply(career));
}
private final StoreDataService storeDataService;
@ApiOperation("门店数据")
@GetMapping("/technician/career/storeData")
public JsonResult<StoreData> storeData(@RequestHeader String token,
@RequestParam String month) {
Integer technicianId = SessionUtils.getTechnicianId();
GogirlToken gogirlToken = SessionUtils.getTechnicianToken();
StoreData storeData = storeDataMapper.selectOne(new LambdaQueryWrapper<StoreData>().eq(StoreData::getDepartmentId, gogirlToken.getDepartmentId()));
//总订单业绩
List<StoreTradeAmount> storeTradeAmountList = storeDataMapper.storeTradeAmount(month);
//总开卡业绩
StoreTradeAmount storeTradeAmount = new StoreTradeAmount();
storeTradeAmount.setAmount(storeDataMapper.chargeAchieve(month));
storeTradeAmount.setServeType("开卡");
storeTradeAmountList.add(storeTradeAmount);
//个人业绩
List<StoreTechnicianAchieve> storeTechnicianAchieveList = storeDataMapper.storeTechnicianAchieve(month);
storeData.setStoreTradeAmountList(storeTradeAmountList);
storeData.setStoreTechnicianAchieveList(storeTechnicianAchieveList);
//总业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalAchieveList = storeTechnicianAchieveList.stream().collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
.values().stream().map(list -> {
StoreTechnicianTotalAchieve storeTechnicianTotalAchieve = new StoreTechnicianTotalAchieve();
storeTechnicianTotalAchieve.setAchievement(list.stream().map(StoreTechnicianAchieve::getAchievement).reduce(BigDecimal.ZERO, BigDecimal::add));
storeTechnicianTotalAchieve.setTechnicianId(list.stream().map(StoreTechnicianAchieve::getTechnicianId).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianName(list.stream().map(StoreTechnicianAchieve::getTechnicianName).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianPicture(list.stream().findAny().get().getTechnicianPicture());
return storeTechnicianTotalAchieve;
})
.sorted(Comparator.comparing(StoreTechnicianTotalAchieve::getAchievement).reversed())
.collect(Collectors.toList());
storeData.setStoreTechnicianTotalAchieveList(storeTechnicianTotalAchieveList);
//总订单业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalOrderAchieveList = storeTechnicianAchieveList.stream()
.filter(storeTechnicianAchieve -> !storeTechnicianAchieve.getServeType().equals("开卡"))
.collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
.values().stream().map(list -> {
StoreTechnicianTotalAchieve storeTechnicianTotalAchieve = new StoreTechnicianTotalAchieve();
storeTechnicianTotalAchieve.setAchievement(list.stream().map(StoreTechnicianAchieve::getAchievement).reduce(BigDecimal.ZERO, BigDecimal::add));
storeTechnicianTotalAchieve.setTechnicianId(list.stream().map(StoreTechnicianAchieve::getTechnicianId).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianName(list.stream().map(StoreTechnicianAchieve::getTechnicianName).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianPicture(list.stream().findAny().get().getTechnicianPicture());
return storeTechnicianTotalAchieve;
})
.sorted(Comparator.comparing(StoreTechnicianTotalAchieve::getAchievement).reversed())
.collect(Collectors.toList());
storeData.setStoreTechnicianTotalOrderAchieveList(storeTechnicianTotalOrderAchieveList);
//总充值业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalChargeAchieveList = storeTechnicianAchieveList.stream()
.filter(storeTechnicianAchieve -> storeTechnicianAchieve.getServeType().equals("开卡"))
.collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
.values().stream().map(list -> {
StoreTechnicianTotalAchieve storeTechnicianTotalAchieve = new StoreTechnicianTotalAchieve();
storeTechnicianTotalAchieve.setAchievement(list.stream().map(StoreTechnicianAchieve::getAchievement).reduce(BigDecimal.ZERO, BigDecimal::add));
storeTechnicianTotalAchieve.setTechnicianId(list.stream().map(StoreTechnicianAchieve::getTechnicianId).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianName(list.stream().map(StoreTechnicianAchieve::getTechnicianName).findAny().orElse(null));
storeTechnicianTotalAchieve.setTechnicianPicture(list.stream().findAny().get().getTechnicianPicture());
return storeTechnicianTotalAchieve;
})
.sorted(Comparator.comparing(StoreTechnicianTotalAchieve::getAchievement).reversed())
.collect(Collectors.toList());
storeData.setStoreTechnicianTotalChargeAchieveList((storeTechnicianTotalChargeAchieveList));
StoreData storeData=storeDataService.storeData(month);
return JsonResult.success(storeData);
}
......
package com.gogirl.interfaces.store.career;
import com.gogirl.application.store.career.ITechScoreRulesService;
import com.gogirl.dto.TechScore;
import com.gogirl.infrastructure.common.base.JsonResult;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author robbendev
* @since 2020-03-12
*/
@RestController
@AllArgsConstructor
public class TechScoreRulesController {
private final ITechScoreRulesService techScoreRulesService;
@ApiOperation("美甲师评分")
@GetMapping("/technician/getTechScore")
public JsonResult<TechScore> getTechScore() {
TechScore techScore = techScoreRulesService.getTechScore();
return JsonResult.success(techScore);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gogirl.infrastructure.mapper.store.career.TechScoreRulesMapper">
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment