Merge remote-tracking branch 'origin/api' into api
# Conflicts:
# zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
24 files added
39 files modified
| | |
| | | import com.matrix.component.redis.RedisClient; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.tools.UUIDUtil; |
| | | import com.matrix.system.app.authority.AppAuthorityManager; |
| | | import com.matrix.system.app.dto.LoginDto; |
| | | import com.matrix.system.app.vo.UserInfoVo; |
| | | import com.matrix.system.common.authority.DefaultAuthorityManager; |
| | |
| | | import com.matrix.system.common.authority.strategy.LoginStrategy; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.common.service.SysUsersService; |
| | | import com.matrix.system.hive.bean.SysShopInfo; |
| | | import com.matrix.system.hive.service.SysShopInfoService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | import io.swagger.annotations.ApiResponses; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | private SysShopInfoService sysShopInfoService; |
| | | |
| | | @Autowired |
| | | private AppAuthorityManager authorityManager; |
| | | private DefaultAuthorityManager authorityManager; |
| | | |
| | | @Autowired |
| | | private RedisClient redisClient; |
| | |
| | | LoginStrategy apLogin = new AccountPasswordLogin(user, sysUsersService); |
| | | user = authorityManager.login(apLogin); |
| | | |
| | | UserInfoVo userInfoVo = new UserInfoVo(); |
| | | if(user.getShopId()!=null){ |
| | | user.setShopName(sysShopInfoService.findById(user.getShopId()).getShopName()); |
| | | SysShopInfo shopInfo = sysShopInfoService.findById(user.getShopId()); |
| | | user.setShopName(shopInfo.getShopName()); |
| | | userInfoVo.setShopName(shopInfo.getShopShortName()); |
| | | } |
| | | user.setSuPassword(null); |
| | | |
| | |
| | | redisClient.saveValueForever(token, JSONObject.toJSONString(user)); |
| | | redisClient.saveValueForever(user.getSuId().toString(), token); |
| | | |
| | | UserInfoVo userInfoVo = new UserInfoVo(); |
| | | userInfoVo.setId(user.getSuId()); |
| | | userInfoVo.setName(user.getSuName()); |
| | | userInfoVo.setRoleName(user.getRoleName()); |
| | |
| | | result.putInMap("token", token); |
| | | return result; |
| | | } |
| | | |
| | | } |
| | |
| | | package com.matrix.system.app.action; |
| | | |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.system.app.dto.ArticleListDto; |
| | | import com.matrix.system.hive.action.BaseController; |
| | | import com.matrix.system.hive.bean.Article; |
| | | import com.matrix.system.hive.bean.ArticleType; |
| | | import com.matrix.system.hive.service.ArticleService; |
| | | import com.matrix.system.hive.service.ArticleTypeService; |
| | | import io.swagger.annotations.Api; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | @Api(value = "ApiKnowledgeAction", tags = "知识库接口类") |
| | | @RestController |
| | | @RequestMapping(value = "/api/know") |
| | | public class ApiKnowledgeAction { |
| | | public class ApiKnowledgeAction extends BaseController { |
| | | |
| | | @Autowired |
| | | private ArticleTypeService articleTypeService; |
| | | |
| | | @Autowired |
| | | private ArticleService articleService; |
| | | |
| | | @ApiOperation(value = "获取知识库分类", notes = "获取知识库分类") |
| | | @GetMapping(value = "/findKnowledgeType") |
| | | public AjaxResult findKnowledgeType() { |
| | | ArticleType type = new ArticleType(); |
| | | type.setShopId(getMe().getShopId()); |
| | | type.setParentId(0L); |
| | | return AjaxResult.buildSuccessInstance(articleTypeService.findByModel(type)); |
| | | } |
| | | |
| | | @ApiOperation(value = "根据分类获取文章列表", notes = "根据分类获取文章列表") |
| | | @PostMapping(value = "/findArticleList") |
| | | public AjaxResult findArticleList(@RequestBody ArticleListDto articleListDto) { |
| | | PaginationVO pageVo = new PaginationVO(); |
| | | pageVo.setOffset((articleListDto.getPageNum() - 1) * articleListDto.getPageSize()); |
| | | pageVo.setLimit(articleListDto.getPageSize()); |
| | | |
| | | Article article = new Article(); |
| | | article.setTypeId(articleListDto.getTypeId()); |
| | | return AjaxResult.buildSuccessInstance(articleService.findApiArticleListInPage(article, pageVo)); |
| | | } |
| | | |
| | | @ApiOperation(value = "获取文章详情页", notes = "获取文章详情页") |
| | | @GetMapping(value = "/findArticleDetail/{id}") |
| | | public AjaxResult findArticleDetail(@PathVariable("id") Long id) { |
| | | Article article = articleService.findById(id); |
| | | AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); |
| | | ajaxResult.putInMap("article", article); |
| | | return ajaxResult; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.action; |
| | | |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.app.dto.RankingDto; |
| | | import com.matrix.system.app.vo.RankingVo; |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.AchieveNew; |
| | | import com.matrix.system.hive.bean.SysOrder; |
| | | import com.matrix.system.hive.dao.AchieveNewDao; |
| | | import com.matrix.system.hive.service.AchieveNewService; |
| | | import com.matrix.system.hive.service.SysOrderService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiResponse; |
| | | import io.swagger.annotations.ApiResponses; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @Api(value = "ApiRankingAction", tags = "排行榜接口类") |
| | | @RestController |
| | | @RequestMapping(value ="/api/ranking") |
| | | public class ApiRankingAction { |
| | | |
| | | @Autowired |
| | | private SysOrderService sysOrderService; |
| | | |
| | | @Autowired |
| | | private AchieveNewDao achieveNewDao; |
| | | |
| | | @ApiOperation(value = "顾问业绩排行榜", notes = "顾问业绩排行榜") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = RankingVo.class) |
| | | }) |
| | | @PostMapping(value = "/findStaffAchieveRanking") |
| | | public AjaxResult findStaffAchieveRanking(@RequestBody RankingDto rankingDto) { |
| | | SysOrder sysOrder = new SysOrder(); |
| | | if (DataAuthUtil.hasAllShopAuth()) { |
| | | QueryUtil.setQueryLimitCom(sysOrder); |
| | | } else { |
| | | QueryUtil.setQueryLimit(sysOrder); |
| | | } |
| | | sysOrder.setOrderTime(new Date()); |
| | | sysOrder.setType(rankingDto.getType()); |
| | | return AjaxResult.buildSuccessInstance(sysOrderService.findStaffSaleAchieveRanking(sysOrder)); |
| | | } |
| | | |
| | | @ApiOperation(value = "门店业绩排行榜", notes = "门店业绩排行榜") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = RankingVo.class) |
| | | }) |
| | | @PostMapping(value = "/findShopAchieveRanking") |
| | | public AjaxResult findShopAchieveRanking(@RequestBody RankingDto rankingDto) { |
| | | AjaxResult ajaxResult = AjaxResult.buildSuccessInstance(""); |
| | | if (RankingDto.SALE.equals(rankingDto.getDataType())) { |
| | | SysOrder sysOrder = new SysOrder(); |
| | | QueryUtil.setQueryLimitCom(sysOrder); |
| | | sysOrder.setType(rankingDto.getType()); |
| | | sysOrder.setOrderTime(new Date()); |
| | | List<RankingVo> list = sysOrderService.findApiShopAchieveRanking(sysOrder); |
| | | ajaxResult.setRows(list); |
| | | } else { |
| | | AchieveNew achieveNew = new AchieveNew(); |
| | | QueryUtil.setQueryLimitCom(achieveNew); |
| | | achieveNew.setDatatime(new Date()); |
| | | achieveNew.setT1(rankingDto.getType()); |
| | | List<RankingVo> rankingVos = achieveNewDao.selectShopConsumeAchieveRanking(achieveNew); |
| | | ajaxResult.setRows(rankingVos); |
| | | } |
| | | return ajaxResult; |
| | | } |
| | | |
| | | @ApiOperation(value = "美疗师业绩排行榜", notes = "美疗师业绩排行榜") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = RankingVo.class) |
| | | }) |
| | | @PostMapping(value = "/findBeauticianAchieveRanking") |
| | | public AjaxResult findBeauticianAchieveRanking(@RequestBody RankingDto rankingDto) { |
| | | AchieveNew achieveNew = new AchieveNew(); |
| | | if (DataAuthUtil.hasAllShopAuth()) { |
| | | QueryUtil.setQueryLimitCom(achieveNew); |
| | | } else { |
| | | QueryUtil.setQueryLimit(achieveNew); |
| | | } |
| | | achieveNew.setDatatime(new Date()); |
| | | achieveNew.setT1(rankingDto.getType()); |
| | | return AjaxResult.buildSuccessInstance(achieveNewDao.selectBeauticianConsumeAchieveRanking(achieveNew)); |
| | | } |
| | | } |
| | |
| | | queryUse.setVipId(serviceVipProjDto.getVipId()); |
| | | queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_XM); |
| | | queryUse.setTaocanId(-1L); |
| | | switch (serviceVipProjDto.getType()) { |
| | | case "0" : |
| | | break; |
| | | case "1": |
| | | queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | break; |
| | | case "2": |
| | | queryUse.setStatus(Dictionary.TAOCAN_STATUS_WX); |
| | | queryUse.setIsOver(Dictionary.FLAG_YES_Y); |
| | | break; |
| | | case "3": |
| | | queryUse.setTargetFailTime(DateUtil.getDateAfterMonth(new Date(), 1)); |
| | | break; |
| | | default: |
| | | queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | break; |
| | | if (serviceVipProjDto.getType() != null) { |
| | | switch (serviceVipProjDto.getType()) { |
| | | case "0": |
| | | break; |
| | | case "1": |
| | | queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | break; |
| | | case "2": |
| | | queryUse.setStatus(Dictionary.TAOCAN_STATUS_WX); |
| | | queryUse.setIsOver(Dictionary.FLAG_YES_Y); |
| | | break; |
| | | case "3": |
| | | queryUse.setTargetFailTime(DateUtil.getDateAfterMonth(new Date(), 1)); |
| | | break; |
| | | default: |
| | | queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | break; |
| | | } |
| | | } else { |
| | | queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | } |
| | | |
| | | queryUse.setQueryKey(serviceVipProjDto.getQueryKey()); |
| | | List<SysProjUse> projList = projUseService.findInPage(queryUse, null); |
| | | List<ServiceProjVo> serviceProjVos = SysProjUseMapper.INSTANCE.entityListToProjVoList(projList); |
New file |
| | |
| | | package com.matrix.system.app.action; |
| | | |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.common.constance.AppConstance; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.SysShopInfo; |
| | | import com.matrix.system.hive.service.SysShopInfoService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-30 |
| | | **/ |
| | | @Api(value = "ApiShopInfoAction", tags = "店铺信息接口类") |
| | | @RestController |
| | | @RequestMapping(value = "/api/shop") |
| | | public class ApiShopInfoAction { |
| | | |
| | | @Autowired |
| | | private SysShopInfoService shopInfoService; |
| | | |
| | | @ApiOperation(value = "获取门店列表", notes = "获取门店列表") |
| | | @GetMapping(value = "/findAllShopList") |
| | | public AjaxResult findAllShopList() { |
| | | SysShopInfo shopInfo = new SysShopInfo(); |
| | | QueryUtil.setQueryLimitCom(shopInfo); |
| | | SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | if(!AppConstance.ZONGDIAN.equals(sysUsers.getShopName())){ |
| | | shopInfo.setId(sysUsers.getShopId()); |
| | | } |
| | | |
| | | return AjaxResult.buildSuccessInstance(shopInfoService.findByModel(shopInfo)); |
| | | } |
| | | } |
| | |
| | | package com.matrix.system.app.action; |
| | | |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.core.tools.StringUtils; |
| | | import com.matrix.system.app.dto.SkinCheckListDto; |
| | | import com.matrix.system.app.mapper.SysSkinCheckRecordMapper; |
| | | import com.matrix.system.app.vo.SkinCheckAnalysisItems; |
| | | import com.matrix.system.app.vo.SkinCheckDetailVo; |
| | | import com.matrix.system.app.vo.SkinCheckDiagnoseItemVo; |
| | | import com.matrix.system.app.vo.SkinCheckListVo; |
| | | import com.matrix.system.hive.bean.SysSkinCheckRecord; |
| | | import com.matrix.system.hive.dao.SysSkinCheckRecordDao; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.shopXcx.bean.ShopProduct; |
| | | import com.matrix.system.shopXcx.dao.ShopProductDao; |
| | | import io.swagger.annotations.Api; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiResponse; |
| | | import io.swagger.annotations.ApiResponses; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | @RequestMapping(value = "/api/skinCheck") |
| | | public class ApiSkinCheckAction { |
| | | |
| | | @Autowired |
| | | private SysSkinCheckRecordDao sysSkinCheckRecordDao; |
| | | |
| | | @Autowired |
| | | private ShopProductDao shopProductDao; |
| | | |
| | | @ApiOperation(value = "获取皮肤检测列表", notes = "获取皮肤检测列表") |
| | | @PostMapping(value = "/findSkinCheckList") |
| | | public AjaxResult findSkinCheckList(@RequestBody @Validated SkinCheckListDto skinCheckListDto) { |
| | | SysSkinCheckRecord sysSkinCheckRecord = new SysSkinCheckRecord(); |
| | | sysSkinCheckRecord.setUserId(skinCheckListDto.getVipId()); |
| | | |
| | | PaginationVO pageVo = new PaginationVO(); |
| | | pageVo.setOffset((skinCheckListDto.getPageNum() - 1) * skinCheckListDto.getPageSize()); |
| | | pageVo.setLimit(skinCheckListDto.getPageSize()); |
| | | pageVo.setSort("t1.create_time"); |
| | | pageVo.setOrder("desc"); |
| | | |
| | | List<SysSkinCheckRecord> dataList = sysSkinCheckRecordDao.selectInPage(sysSkinCheckRecord, pageVo); |
| | | List<SkinCheckListVo> list = SysSkinCheckRecordMapper.INSTANCE.entitiesToListVos(dataList); |
| | | AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, list, |
| | | sysSkinCheckRecordDao.selectTotalRecord(sysSkinCheckRecord)); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "获取皮肤检测详情", notes = "获取皮肤检测详情") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = SkinCheckDetailVo.class) |
| | | }) |
| | | @GetMapping(value = "/findSkinCheckDetail/{id}") |
| | | public AjaxResult findSkinCheckDetail(@PathVariable("id") Long id) { |
| | | |
| | | SysSkinCheckRecord sysSkinCheckRecord = sysSkinCheckRecordDao.selectById(id); |
| | | |
| | | SysSkinCheckRecordMapper instance = SysSkinCheckRecordMapper.INSTANCE; |
| | | SkinCheckDetailVo detail = instance.entityToDetailVo(sysSkinCheckRecord); |
| | | detail.setSex(sysSkinCheckRecord.getSex()); |
| | | List<SkinCheckDiagnoseItemVo> diagnoseItems = instance.entitiesToDiagnoseItems(sysSkinCheckRecord.getAnalysisDetail()); |
| | | List<SkinCheckAnalysisItems> analysisItems = instance.entitiesToAnalysisItems(sysSkinCheckRecord.getSkinDetails()); |
| | | |
| | | analysisItems.forEach(item -> { |
| | | List<Integer> ids = StringUtils.strToCollToInteger(item.getProductIds(), ","); |
| | | if(CollectionUtils.isNotEmpty(ids)){ |
| | | List<String> shopProducts = shopProductDao.selectProductNameByIds(ids); |
| | | item.setProducts(shopProducts); |
| | | } |
| | | }); |
| | | |
| | | detail.setDiagnoseItems(diagnoseItems); |
| | | detail.setAnalysisItems(analysisItems); |
| | | |
| | | AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); |
| | | ajaxResult.putInMap("detail", detail); |
| | | return ajaxResult; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.action; |
| | | |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.app.dto.BusinessesDto; |
| | | import com.matrix.system.app.dto.VipStatisticsParamDto; |
| | | import com.matrix.system.app.vo.BeauticianVo; |
| | | import com.matrix.system.app.vo.BusinessesDataShowVo; |
| | | import com.matrix.system.app.vo.VipAchieveDataShowVo; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.AchieveNew; |
| | | import com.matrix.system.hive.bean.SysBusinessData; |
| | | import com.matrix.system.hive.dao.SysBusinessDataDao; |
| | | import com.matrix.system.hive.service.imp.DataAnalysisCustomerServiceImpl; |
| | | import com.matrix.system.hiveErp.analysUtil.Caculate; |
| | | import com.matrix.system.hiveErp.analysUtil.SeriesVo; |
| | | import com.matrix.system.hiveErp.analysUtil.StatisticsParamVo; |
| | | import com.matrix.system.hiveErp.analysUtil.StatisticsTimeDaoParam; |
| | | import com.matrix.system.hiveErp.dao.TjVipSumDao; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiResponse; |
| | | import io.swagger.annotations.ApiResponses; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @Api(value = "ApiStatisticsAction", tags = "报表接口类") |
| | | @RestController |
| | | @RequestMapping(value = "/api/statistics") |
| | | public class ApiStatisticsAction { |
| | | |
| | | @Autowired |
| | | TjVipSumDao tjVipSumDao; |
| | | |
| | | @Autowired |
| | | private SysBusinessDataDao sysBusinessDataDao; |
| | | |
| | | @Autowired |
| | | private DataAnalysisCustomerServiceImpl dataAnalysisCustomerService; |
| | | |
| | | @ApiOperation(value = "公司经营报表/门店经营报表") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = BusinessesDataShowVo.class) |
| | | }) |
| | | @PostMapping(value = "/findShopBusinessesData") |
| | | public AjaxResult findShopBusinessesData(@RequestBody BusinessesDto businessesDto) { |
| | | SysBusinessData sysBusinessData = new SysBusinessData(); |
| | | // 若shopId为空,则查询门店经营报表 |
| | | if (businessesDto.getShopId() == null) { |
| | | sysBusinessData.setShopId(businessesDto.getShopId()); |
| | | } |
| | | QueryUtil.setQueryLimitCom(sysBusinessData); |
| | | |
| | | if (BusinessesDto.DAY.equals(businessesDto.getType())) { |
| | | sysBusinessData.setT1("%Y-%m-%d"); |
| | | } else { |
| | | sysBusinessData.setT1("%Y-%m"); |
| | | } |
| | | PaginationVO pageVo = new PaginationVO(); |
| | | pageVo.setOffset((businessesDto.getPageNum() - 1) * businessesDto.getPageSize()); |
| | | pageVo.setLimit(businessesDto.getPageSize()); |
| | | |
| | | return AjaxResult.buildSuccessInstance(sysBusinessDataDao.selectApiBusinessDataInPage(sysBusinessData, pageVo), sysBusinessDataDao.selectApiBusinessDataTotal(sysBusinessData)); |
| | | } |
| | | |
| | | @ApiOperation(value = "专项", notes = "专项") |
| | | @PostMapping(value = "/findBusinessInCome") |
| | | public AjaxResult findBusinessInCome(@RequestBody @Validated StatisticsParamVo statisticsParam) { |
| | | if (statisticsParam.getShopId() != null) { |
| | | AjaxResult ajaxResult = dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<BigDecimal>() { |
| | | @Override |
| | | public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { |
| | | switch (statisticsParam.getType()) { |
| | | case "1" : |
| | | return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null); |
| | | case "2" : |
| | | return tjVipSumDao.selectCashIncome(timeSpaceParam, shopId, null); |
| | | case "3" : |
| | | return tjVipSumDao.selectCardUse(timeSpaceParam, shopId, null); |
| | | case "4" : |
| | | return tjVipSumDao.selectHisConsume(timeSpaceParam, shopId, null); |
| | | case "5" : |
| | | return tjVipSumDao.selectFreeConsume(timeSpaceParam, shopId, null); |
| | | case "6" : |
| | | return tjVipSumDao.selectCashRefund(timeSpaceParam, shopId, null); |
| | | case "7" : |
| | | return tjVipSumDao.selectCardRefund(timeSpaceParam, shopId, null); |
| | | case "8" : |
| | | return tjVipSumDao.selectArrears(timeSpaceParam, shopId, null); |
| | | default : |
| | | return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null); |
| | | } |
| | | } |
| | | }); |
| | | return setDataList(ajaxResult); |
| | | } else { |
| | | AjaxResult ajaxResult = dataAnalysisCustomerService.getCompanyAnalysisResult(statisticsParam, new Caculate<BigDecimal>() { |
| | | @Override |
| | | public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { |
| | | switch (statisticsParam.getType()) { |
| | | case "1" : |
| | | return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId); |
| | | case "2" : |
| | | return tjVipSumDao.selectCashIncome(timeSpaceParam, null, companyId); |
| | | case "3" : |
| | | return tjVipSumDao.selectCardUse(timeSpaceParam, null, companyId); |
| | | case "4" : |
| | | return tjVipSumDao.selectHisConsume(timeSpaceParam, null, companyId); |
| | | case "5" : |
| | | return tjVipSumDao.selectFreeConsume(timeSpaceParam, null, companyId); |
| | | case "6" : |
| | | return tjVipSumDao.selectCashRefund(timeSpaceParam, null, companyId); |
| | | case "7" : |
| | | return tjVipSumDao.selectCardRefund(timeSpaceParam, null, companyId); |
| | | case "8" : |
| | | return tjVipSumDao.selectArrears(timeSpaceParam, null, companyId); |
| | | default : |
| | | return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId); |
| | | } |
| | | } |
| | | }); |
| | | return setDataList(ajaxResult); |
| | | } |
| | | } |
| | | |
| | | private AjaxResult setDataList(AjaxResult ajaxResult) { |
| | | List<SeriesVo> list = (List<SeriesVo>) ajaxResult.getMapInfo().get("series"); |
| | | String[] xAxis = (String[]) ajaxResult.getMapInfo().get("xAxis"); |
| | | String [] data = list.get(0).getData(); |
| | | if (data != null && data.length != 0) { |
| | | List<Map<String, String>> dataList = new ArrayList<>(); |
| | | for(int i = data.length - 1; i >= 0; i--) { |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put(xAxis[i], data[i]); |
| | | dataList.add(map); |
| | | } |
| | | ajaxResult.setRows(dataList); |
| | | } |
| | | |
| | | return ajaxResult; |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "查询员工业绩报表", notes = "查询员工业绩报表") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = VipAchieveDataShowVo.class) |
| | | }) |
| | | @PostMapping(value = "/findVipAchieve") |
| | | public AjaxResult findVipAchieve(@RequestBody BusinessesDto businessesDto) { |
| | | AchieveNew achieveNew = new AchieveNew(); |
| | | if (BusinessesDto.DAY.equals(businessesDto.getType())) { |
| | | achieveNew.setT1("%Y-%m-%d"); |
| | | } else { |
| | | achieveNew.setT1("%Y-%m"); |
| | | } |
| | | |
| | | SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | if (businessesDto.getStaffId() == null) { |
| | | |
| | | businessesDto.setStaffId(sysUsers.getSuId()); |
| | | } |
| | | achieveNew.setVipId(businessesDto.getStaffId()); |
| | | |
| | | PaginationVO pageVo = new PaginationVO(); |
| | | pageVo.setLimit(businessesDto.getPageSize()); |
| | | pageVo.setOffset((businessesDto.getPageNum() - 1) * businessesDto.getPageSize()); |
| | | return AjaxResult.buildSuccessInstance(tjVipSumDao.selectVipAchieveInPage(achieveNew, pageVo)); |
| | | } |
| | | |
| | | @ApiOperation(value = "员工专项", notes = "员工专项") |
| | | @PostMapping(value = "/findVipBusinessData") |
| | | public AjaxResult findVipBusinessData(@RequestBody @Validated VipStatisticsParamDto vipStatisticsParamDto) { |
| | | AjaxResult ajaxResult = dataAnalysisCustomerService.getStaffAnalysisResult(vipStatisticsParamDto, new Caculate<BigDecimal>() { |
| | | @Override |
| | | public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long staffId) { |
| | | switch (vipStatisticsParamDto.getType()) { |
| | | case "1" : |
| | | return tjVipSumDao.selectStaffOrderAchieve(timeSpaceParam, staffId); |
| | | case "2" : |
| | | return tjVipSumDao.selectStaffCashAchieve(timeSpaceParam, staffId); |
| | | case "3" : |
| | | return tjVipSumDao.selectStaffCardAchieve(timeSpaceParam, staffId); |
| | | case "4" : |
| | | return tjVipSumDao.selectStaffGoodsAchieve(timeSpaceParam, staffId); |
| | | case "5" : |
| | | return tjVipSumDao.selectStaffCardUseAchieve(timeSpaceParam, staffId); |
| | | case "6" : |
| | | return tjVipSumDao.selectStaffHisConsumeAchieve(timeSpaceParam, staffId); |
| | | case "7" : |
| | | return tjVipSumDao.selectStaffFreeConsumeAchieve(timeSpaceParam, staffId); |
| | | case "8" : |
| | | return tjVipSumDao.selectStaffCommissionAchieve(timeSpaceParam, staffId); |
| | | case "9" : |
| | | return tjVipSumDao.selectStaffPeopleNum(timeSpaceParam, staffId); |
| | | case "10" : |
| | | return tjVipSumDao.selectStaffProjNum(timeSpaceParam, staffId); |
| | | case "11" : |
| | | return tjVipSumDao.selectStaffProjTime(timeSpaceParam, staffId); |
| | | default: |
| | | return tjVipSumDao.selectStaffOrderAchieve(timeSpaceParam, staffId); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | return setDataList(ajaxResult); |
| | | } |
| | | |
| | | } |
| | |
| | | package com.matrix.system.app.action; |
| | | |
| | | import com.matrix.component.redis.RedisClient; |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.app.dto.BeauticianDto; |
| | | import com.matrix.system.app.dto.UsersQueryDto; |
| | | import com.matrix.system.app.mapper.SysBeauticianStateMapper; |
| | | import com.matrix.system.app.mapper.SysUsersMapper; |
| | | import com.matrix.system.app.mapper.SysWorkBeatuistaffMapper; |
| | |
| | | import com.matrix.system.app.vo.UserAchieveVo; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.common.service.SysUsersService; |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.hive.bean.SysBeauticianState; |
| | | import com.matrix.system.hive.bean.SysWorkBeatuistaff; |
| | | import com.matrix.system.hive.service.AchieveNewService; |
| | |
| | | @Autowired |
| | | private SysWorkBeatuistaffService sysWorkBeatuistaffService; |
| | | |
| | | @Autowired |
| | | private RedisClient redisClient; |
| | | |
| | | |
| | | @ApiOperation(value = "个人中心--获取用户业绩接口 type 1-今日 2-昨天 3-本月 4-上月") |
| | | @ApiResponses({ |
| | |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, SysWorkBeatuistaffMapper.INSTANCE.workBeautysToBeautyVos(workBeauty), 0); |
| | | } |
| | | |
| | | @ApiOperation(value = "退出登陆", notes = "退出登陆") |
| | | @GetMapping(value = "/loginOut") |
| | | public AjaxResult loginOut() { |
| | | SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | String token = redisClient.getCachedValue(sysUsers.getSuId().toString()); |
| | | |
| | | redisClient.removeObject(token); |
| | | redisClient.removeObject(sysUsers.getSuId().toString()); |
| | | return AjaxResult.buildSuccessInstance("退出成功"); |
| | | } |
| | | |
| | | @ApiOperation(value = "员工列表", notes = "员工列表") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = BeauticianVo.class) |
| | | }) |
| | | @PostMapping(value = "/findAllUsers") |
| | | public AjaxResult findAllUsers(@RequestBody UsersQueryDto usersQueryDto) { |
| | | SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | SysUsers query = new SysUsers(); |
| | | if (DataAuthUtil.hasAllShopAuth()) { |
| | | query.setCompanyId(sysUsers.getCompanyId()); |
| | | } else { |
| | | query.setCompanyId(sysUsers.getCompanyId()); |
| | | query.setShopId(sysUsers.getShopId()); |
| | | } |
| | | query.setSuName(usersQueryDto.getQueryKey()); |
| | | List<SysUsers> list = sysUsersService.findByModel(query); |
| | | List<BeauticianVo> dataList = SysUsersMapper.INSTANCE.usersListToBeautyList(list); |
| | | return AjaxResult.buildSuccessInstance(dataList); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.app.dto.AddVipDto; |
| | | import com.matrix.system.app.dto.ModifyVipDto; |
| | | import com.matrix.system.app.dto.QuestionAnswerDto; |
| | | import com.matrix.system.app.dto.VipInfoListDto; |
| | | import com.matrix.system.app.vo.VipInfoDetailVo; |
| | | import com.matrix.system.app.vo.VipInfoListVo; |
| | | import com.matrix.system.app.vo.VipInfoVo; |
| | | import com.matrix.system.app.mapper.MoneyCardUseMapper; |
| | | import com.matrix.system.app.mapper.QuestionMapper; |
| | | import com.matrix.system.app.vo.*; |
| | | import com.matrix.system.common.bean.CustomerDataDictionary; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.common.dao.CustomerDataDictionaryDao; |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.hive.action.BaseController; |
| | | import com.matrix.system.hive.bean.SysVipInfo; |
| | | import com.matrix.system.hive.bean.SysVipLevel; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.MoneyCardUseDao; |
| | | import com.matrix.system.hive.dao.VipAnswerDao; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.service.MoneyCardUseService; |
| | | import com.matrix.system.hive.service.QuestionSerivce; |
| | | import com.matrix.system.hive.service.SysVipInfoService; |
| | | import com.matrix.system.hive.service.SysVipLevelService; |
| | | import io.swagger.annotations.Api; |
| | |
| | | |
| | | @Autowired |
| | | private CustomerDataDictionaryDao customerDataDictionaryDao; |
| | | |
| | | @Autowired |
| | | private MoneyCardUseService moneyCardUseService; |
| | | |
| | | @Autowired |
| | | private QuestionSerivce questionSerivce; |
| | | |
| | | @Autowired |
| | | private VipAnswerDao vipAnswerDao; |
| | | |
| | | @ApiOperation(value = "获取会员通讯录列表", notes = "获取会员通讯录列表") |
| | | @ApiResponses({ |
| | |
| | | |
| | | return AjaxResult.buildSuccessInstance(sysVipInfoService.findAll(sysVipInfo)); |
| | | } |
| | | |
| | | @ApiOperation(value = "卡项 - 获取会员卡项列表", notes = "卡项 - 获取会员卡项列表") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = VipCardListVo.class) |
| | | }) |
| | | @GetMapping(value = "/findVipCardInfo/{vipId}") |
| | | public AjaxResult findVipCardInfo(@PathVariable("vipId") Long vipId) { |
| | | MoneyCardUse moneyCardUse = new MoneyCardUse(); |
| | | moneyCardUse.setVipId(vipId); |
| | | List<MoneyCardUse> list = moneyCardUseService.findVipCardUseInPage(moneyCardUse, null); |
| | | |
| | | List<VipCardListVo> dataList = MoneyCardUseMapper.INSTANCE.entitiesToCardListVos(list); |
| | | return AjaxResult.buildSuccessInstance(dataList); |
| | | } |
| | | |
| | | @ApiOperation(value = "会员档案 - 获取客户档案问题", notes = "会员档案 - 获取客户档案问题") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "ok", response = QuestionVo.class) |
| | | }) |
| | | @GetMapping(value = "/findVipQuestions/{vipId}") |
| | | public AjaxResult findVipQuestions(@PathVariable("vipId") Long vipId) { |
| | | // 获取会员所有的答案,分类型 |
| | | List<Question> questions = questionSerivce.findByVipId(vipId); |
| | | AjaxResult result = AjaxResult.buildSuccessInstance("获取成功"); |
| | | List<QuestionVo> list = QuestionMapper.INSTANCE.entitiesToVos(questions); |
| | | result.putInMap("questions", list); |
| | | return result; |
| | | } |
| | | |
| | | @ApiOperation(value = "会员档案 - 提交会员档案", notes = "会员档案 - 提交会员档案") |
| | | @PostMapping(value = "/saveVipQuestionsAnswer") |
| | | public AjaxResult saveVipQuestionsAnswer(@RequestBody QuestionAnswerDto questionAnswerDto) { |
| | | VipAnswer delAnswer = new VipAnswer(); |
| | | delAnswer.setVipId(questionAnswerDto.getVipId()); |
| | | vipAnswerDao.deleteByModel(delAnswer); |
| | | if (CollectionUtils.isNotEmpty(questionAnswerDto.getItems())) { |
| | | List<VipAnswer> vipAnswers = QuestionMapper.INSTANCE.dtosToVipAnswers(questionAnswerDto.getItems()); |
| | | vipAnswerDao.batchInsert(vipAnswers); |
| | | } |
| | | return AjaxResult.buildSuccessInstance("档案更新成功"); |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2021-01-05 |
| | | **/ |
| | | @ApiModel(value = "ArticleListDto", description = "文章列表接收参数类") |
| | | public class ArticleListDto extends BasePageDto { |
| | | |
| | | @NotNull |
| | | @ApiModelProperty(value = "分类ID") |
| | | private Long typeId; |
| | | |
| | | public Long getTypeId() { |
| | | return typeId; |
| | | } |
| | | |
| | | public void setTypeId(Long typeId) { |
| | | this.typeId = typeId; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | @ApiModel(value = "BusinessesDto", description = "门店/公司报表参数接受类") |
| | | public class BusinessesDto extends BasePageDto{ |
| | | |
| | | public static final String DAY = "1"; |
| | | |
| | | public static final String MONTH = "2"; |
| | | |
| | | @ApiModelProperty(value = "type 1-每日 2-每月", example = "1") |
| | | private String type; |
| | | |
| | | @ApiModelProperty(value = "门店ID", example = "34") |
| | | private Long shopId; |
| | | |
| | | @ApiModelProperty(value = "会员ID") |
| | | private Long staffId; |
| | | |
| | | public String getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public Long getShopId() { |
| | | return shopId; |
| | | } |
| | | |
| | | public void setShopId(Long shopId) { |
| | | this.shopId = shopId; |
| | | } |
| | | |
| | | public Long getStaffId() { |
| | | return staffId; |
| | | } |
| | | |
| | | public void setStaffId(Long staffId) { |
| | | this.staffId = staffId; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @ApiModel(value = "QuestionAnswerDto", description = "提交客户档案接口参数接收类") |
| | | public class QuestionAnswerDto { |
| | | |
| | | @NotNull(message = "参数错误") |
| | | @ApiModelProperty(value = "会员ID") |
| | | private Long vipId; |
| | | |
| | | @ApiModelProperty(value = "题目答案列表") |
| | | private List<QuestionAnswerItemDto> items; |
| | | |
| | | public Long getVipId() { |
| | | return vipId; |
| | | } |
| | | |
| | | public void setVipId(Long vipId) { |
| | | this.vipId = vipId; |
| | | } |
| | | |
| | | public List<QuestionAnswerItemDto> getItems() { |
| | | return items; |
| | | } |
| | | |
| | | public void setItems(List<QuestionAnswerItemDto> items) { |
| | | this.items = items; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @ApiModel(value = "QuestionAnswerItemDto", description = "问题答案接收类") |
| | | public class QuestionAnswerItemDto { |
| | | |
| | | @ApiModelProperty(value = "问题ID") |
| | | private Long questionId; |
| | | |
| | | @ApiModelProperty(value = "会员ID") |
| | | private Long vipId; |
| | | |
| | | @ApiModelProperty(value = "答案Ids,逗号隔开") |
| | | private String answerId; |
| | | |
| | | @ApiModelProperty(value = "文本答案") |
| | | private String answerText; |
| | | |
| | | public Long getVipId() { |
| | | return vipId; |
| | | } |
| | | |
| | | public void setVipId(Long vipId) { |
| | | this.vipId = vipId; |
| | | } |
| | | |
| | | public Long getQuestionId() { |
| | | return questionId; |
| | | } |
| | | |
| | | public void setQuestionId(Long questionId) { |
| | | this.questionId = questionId; |
| | | } |
| | | |
| | | public String getAnswerId() { |
| | | return answerId; |
| | | } |
| | | |
| | | public void setAnswerId(String answerId) { |
| | | this.answerId = answerId; |
| | | } |
| | | |
| | | public String getAnswerText() { |
| | | return answerText; |
| | | } |
| | | |
| | | public void setAnswerText(String answerText) { |
| | | this.answerText = answerText; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @ApiModel(value = "RankingDto", description = "排行榜参数接收类") |
| | | public class RankingDto { |
| | | |
| | | public static final String SALE = "1"; |
| | | public static final String CONSUME = "2"; |
| | | |
| | | public static final String DAY = "1"; |
| | | public static final String MONTH = "2"; |
| | | public static final String YEAR = "3"; |
| | | |
| | | @ApiModelProperty(value = "数据类型 1-销售 2-消耗", example = "1") |
| | | private String dataType; |
| | | |
| | | @ApiModelProperty(value = "排行榜类型 1-日榜 2-月榜 3-年榜", example = "1") |
| | | private String type; |
| | | |
| | | public String getDataType() { |
| | | return dataType; |
| | | } |
| | | |
| | | public void setDataType(String dataType) { |
| | | this.dataType = dataType; |
| | | } |
| | | |
| | | public String getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | @ApiModel(value = "SkinCheckListDto", description = "皮肤检测列表接收参数类") |
| | | public class SkinCheckListDto extends BasePageDto{ |
| | | |
| | | @NotNull(message = "参数错误") |
| | | @ApiModelProperty(value = "会员ID", example = "361") |
| | | private Long vipId; |
| | | |
| | | public Long getVipId() { |
| | | return vipId; |
| | | } |
| | | |
| | | public void setVipId(Long vipId) { |
| | | this.vipId = vipId; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2021-01-05 |
| | | **/ |
| | | @ApiModel(value = "UsersQueryDto", description = "员工列表接口参数类") |
| | | public class UsersQueryDto { |
| | | |
| | | @ApiModelProperty(value = "查询参数") |
| | | private String queryKey; |
| | | |
| | | public String getQueryKey() { |
| | | return queryKey; |
| | | } |
| | | |
| | | public void setQueryKey(String queryKey) { |
| | | this.queryKey = queryKey; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | |
| | | /** |
| | | * 统计查询条件 |
| | | * @author jyy |
| | | */ |
| | | @ApiModel(value = "VipStatisticsParamDto", description = "员工专项统计接收参数类") |
| | | public class VipStatisticsParamDto { |
| | | |
| | | public static final String COMPANY = "1"; |
| | | |
| | | public static final String SHOP = "2"; |
| | | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @NotBlank(message = "参数错误") |
| | | @ApiModelProperty(value = "开始时间", example = "2020-12-01") |
| | | private String beginTime; |
| | | |
| | | /** |
| | | *结束时间 |
| | | */ |
| | | @NotBlank(message = "参数错误") |
| | | @ApiModelProperty(value = "结束时间", example = "2020-12-31") |
| | | private String endTime; |
| | | /** |
| | | *统计单位 |
| | | */ |
| | | @NotBlank(message = "参数错误") |
| | | @ApiModelProperty(value = "统计单位", example = "日") |
| | | private String statisticsUnit; |
| | | |
| | | /** |
| | | *对比单位 |
| | | */ |
| | | @ApiModelProperty(hidden = true) |
| | | private String contrastUnit; |
| | | /** |
| | | * 门店id |
| | | */ |
| | | @ApiModelProperty(value = "员工, 不传默认当前登陆用户") |
| | | private Long staffId; |
| | | |
| | | @ApiModelProperty(value = "类型 1-订单业绩 2-现金业绩 3-售卡业绩 4-产品业绩 5-划扣业绩 6-本金消耗 7-赠送消耗 8-服务提成 9-人头数 10-项目数 11-服务时长", example = "1") |
| | | private String type; |
| | | |
| | | public String getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public String getBeginTime() { |
| | | return beginTime; |
| | | } |
| | | |
| | | public void setBeginTime(String beginTime) { |
| | | this.beginTime = beginTime; |
| | | } |
| | | |
| | | public String getEndTime() { |
| | | return endTime; |
| | | } |
| | | |
| | | public void setEndTime(String endTime) { |
| | | this.endTime = endTime; |
| | | } |
| | | |
| | | public String getStatisticsUnit() { |
| | | return statisticsUnit; |
| | | } |
| | | |
| | | public void setStatisticsUnit(String statisticsUnit) { |
| | | this.statisticsUnit = statisticsUnit; |
| | | } |
| | | |
| | | public String getContrastUnit() { |
| | | return contrastUnit; |
| | | } |
| | | |
| | | public void setContrastUnit(String contrastUnit) { |
| | | this.contrastUnit = contrastUnit; |
| | | } |
| | | |
| | | public Long getStaffId() { |
| | | return staffId; |
| | | } |
| | | |
| | | public void setStaffId(Long staffId) { |
| | | this.staffId = staffId; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.mapper; |
| | | |
| | | import com.matrix.system.app.vo.VipCardListVo; |
| | | import com.matrix.system.hive.bean.MoneyCardUse; |
| | | import org.mapstruct.Mapper; |
| | | import org.mapstruct.factory.Mappers; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @Mapper |
| | | public abstract class MoneyCardUseMapper { |
| | | public static final MoneyCardUseMapper INSTANCE = Mappers.getMapper(MoneyCardUseMapper.class); |
| | | |
| | | public abstract VipCardListVo entityToCardListVo(MoneyCardUse moneyCardUse); |
| | | |
| | | public abstract List<VipCardListVo> entitiesToCardListVos(List<MoneyCardUse> list); |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.mapper; |
| | | |
| | | import com.matrix.system.app.dto.QuestionAnswerDto; |
| | | import com.matrix.system.app.dto.QuestionAnswerItemDto; |
| | | import com.matrix.system.app.vo.QuestionVo; |
| | | import com.matrix.system.hive.bean.Question; |
| | | import com.matrix.system.hive.bean.VipAnswer; |
| | | import org.mapstruct.Mapper; |
| | | import org.mapstruct.Mapping; |
| | | import org.mapstruct.factory.Mappers; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @Mapper |
| | | public abstract class QuestionMapper { |
| | | public static final QuestionMapper INSTANCE = Mappers.getMapper(QuestionMapper.class); |
| | | |
| | | public abstract QuestionVo entityToVo(Question question); |
| | | |
| | | public abstract List<QuestionVo> entitiesToVos(List<Question> list); |
| | | |
| | | @Mapping(source = "questionId", target = "quesionId") |
| | | public abstract VipAnswer dtoToVipAnswer(QuestionAnswerItemDto questionAnswerDto); |
| | | |
| | | public abstract List<VipAnswer> dtosToVipAnswers(List<QuestionAnswerItemDto> list); |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.mapper; |
| | | |
| | | import com.matrix.system.app.vo.SkinCheckAnalysisItems; |
| | | import com.matrix.system.app.vo.SkinCheckDetailVo; |
| | | import com.matrix.system.app.vo.SkinCheckDiagnoseItemVo; |
| | | import com.matrix.system.app.vo.SkinCheckListVo; |
| | | import com.matrix.system.hive.bean.SysSkinCheckRecord; |
| | | import com.matrix.system.hive.bean.SysSkinDetail; |
| | | import org.mapstruct.Mapper; |
| | | import org.mapstruct.Mapping; |
| | | import org.mapstruct.factory.Mappers; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Mapper |
| | | public abstract class SysSkinCheckRecordMapper { |
| | | public static final SysSkinCheckRecordMapper INSTANCE = Mappers.getMapper(SysSkinCheckRecordMapper.class); |
| | | |
| | | public abstract SkinCheckListVo entityToSkinCheckListVo(SysSkinCheckRecord sysSkinCheckRecord); |
| | | |
| | | public abstract List<SkinCheckListVo> entitiesToListVos(List<SysSkinCheckRecord> list); |
| | | |
| | | @Mapping(target = "sex", source = "ext2") |
| | | @Mapping(target = "vipName", source = "userName") |
| | | public abstract SkinCheckDetailVo entityToDetailVo(SysSkinCheckRecord sysSkinCheckRecord); |
| | | |
| | | @Mapping(target = "title", source = "symptom") |
| | | public abstract SkinCheckDiagnoseItemVo entityToDiagnoseItem(SysSkinDetail sysSkinDetail); |
| | | |
| | | public abstract List<SkinCheckDiagnoseItemVo> entitiesToDiagnoseItems(List<SysSkinDetail> list); |
| | | |
| | | @Mapping(target = "title", source = "symptom") |
| | | public abstract SkinCheckAnalysisItems entityToAnalysisItem(SysSkinDetail sysSkinDetail); |
| | | |
| | | public abstract List<SkinCheckAnalysisItems> entitiesToAnalysisItems(List<SysSkinDetail> list); |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | @Mapping(source = "suId", target = "id") |
| | | @Mapping(source = "suName", target = "name") |
| | | @Mapping(source = "suPhoto", target = "photo") |
| | | @Mapping(source = "suTel", target = "telphone") |
| | | public abstract BeauticianVo sysUsersToBeauticianVo(SysUsers sysUsers); |
| | | |
| | | public abstract List<BeauticianVo> usersListToBeautyList(List<SysUsers> list); |
| | |
| | | |
| | | private String name; |
| | | |
| | | private String roleName; |
| | | |
| | | private String photo; |
| | | |
| | | private String telphone; |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getRoleName() { |
| | | return roleName; |
| | | } |
| | | |
| | | public void setRoleName(String roleName) { |
| | | this.roleName = roleName; |
| | | } |
| | | |
| | | public String getPhoto() { |
| | | return photo; |
| | | } |
| | | |
| | | public void setPhoto(String photo) { |
| | | this.photo = photo; |
| | | } |
| | | |
| | | public String getTelphone() { |
| | | return telphone; |
| | | } |
| | | |
| | | public void setTelphone(String telphone) { |
| | | this.telphone = telphone; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-29 |
| | | **/ |
| | | @ApiModel(value = "BusinessDataShowVo", description = "经营报表返回参数类") |
| | | public class BusinessesDataShowVo { |
| | | |
| | | @ApiModelProperty(value = "时间") |
| | | private String dataTime; |
| | | |
| | | @ApiModelProperty(value = "营业收入") |
| | | private String totalPay; |
| | | |
| | | @ApiModelProperty(value = "现金收入") |
| | | private String cashPay; |
| | | |
| | | @ApiModelProperty(value = "余额划扣") |
| | | private String cardPay; |
| | | |
| | | @ApiModelProperty(value = "欠款") |
| | | private String arrearsPay; |
| | | |
| | | @ApiModelProperty(value = "赠送消耗") |
| | | private String freeConsumePay; |
| | | |
| | | @ApiModelProperty(value = "本金消耗") |
| | | private String consumePay; |
| | | |
| | | @ApiModelProperty(value = "现金退款") |
| | | private String refundCashPay; |
| | | |
| | | @ApiModelProperty(value = "卡项退款") |
| | | private String refundCardPay; |
| | | |
| | | public String getDataTime() { |
| | | return dataTime; |
| | | } |
| | | |
| | | public void setDataTime(String dataTime) { |
| | | this.dataTime = dataTime; |
| | | } |
| | | |
| | | public String getTotalPay() { |
| | | return totalPay; |
| | | } |
| | | |
| | | public void setTotalPay(String totalPay) { |
| | | this.totalPay = totalPay; |
| | | } |
| | | |
| | | public String getCashPay() { |
| | | return cashPay; |
| | | } |
| | | |
| | | public void setCashPay(String cashPay) { |
| | | this.cashPay = cashPay; |
| | | } |
| | | |
| | | public String getCardPay() { |
| | | return cardPay; |
| | | } |
| | | |
| | | public void setCardPay(String cardPay) { |
| | | this.cardPay = cardPay; |
| | | } |
| | | |
| | | public String getArrearsPay() { |
| | | return arrearsPay; |
| | | } |
| | | |
| | | public void setArrearsPay(String arrearsPay) { |
| | | this.arrearsPay = arrearsPay; |
| | | } |
| | | |
| | | public String getFreeConsumePay() { |
| | | return freeConsumePay; |
| | | } |
| | | |
| | | public void setFreeConsumePay(String freeConsumePay) { |
| | | this.freeConsumePay = freeConsumePay; |
| | | } |
| | | |
| | | public String getConsumePay() { |
| | | return consumePay; |
| | | } |
| | | |
| | | public void setConsumePay(String consumePay) { |
| | | this.consumePay = consumePay; |
| | | } |
| | | |
| | | public String getRefundCashPay() { |
| | | return refundCashPay; |
| | | } |
| | | |
| | | public void setRefundCashPay(String refundCashPay) { |
| | | this.refundCashPay = refundCashPay; |
| | | } |
| | | |
| | | public String getRefundCardPay() { |
| | | return refundCardPay; |
| | | } |
| | | |
| | | public void setRefundCardPay(String refundCardPay) { |
| | | this.refundCardPay = refundCardPay; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import com.matrix.core.tools.StringUtils; |
| | | import com.matrix.system.hive.bean.Answer; |
| | | import com.matrix.system.hive.bean.VipAnswer; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @ApiModel(value = "QuestionVo", description = "会员档案返回参数类") |
| | | public class QuestionVo { |
| | | |
| | | @ApiModelProperty(value = "问题ID") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "问题") |
| | | private String question; |
| | | |
| | | @ApiModelProperty(value = "类型 1-文本 输入框 2-单选 下拉框 3-多选 多选框 4-长文本 文本域 5-标题 只显示即可") |
| | | private String type; |
| | | |
| | | @ApiModelProperty(value = "单选、多选的选项") |
| | | private List<Answer> answers; |
| | | |
| | | @ApiModelProperty(value = "回显答案") |
| | | private VipAnswer vipAnswer; |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getQuestion() { |
| | | return question; |
| | | } |
| | | |
| | | public void setQuestion(String question) { |
| | | this.question = question; |
| | | } |
| | | |
| | | public String getType() { |
| | | if (StringUtils.isNotBlank(type)) { |
| | | switch (type) { |
| | | case "文本" : |
| | | return "1"; |
| | | case "单选" : |
| | | return "2"; |
| | | case "多选" : |
| | | return "3"; |
| | | case "长文本" : |
| | | return "4"; |
| | | case "标题" : |
| | | return "5"; |
| | | default: |
| | | return "6"; |
| | | } |
| | | } |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public List<Answer> getAnswers() { |
| | | return answers; |
| | | } |
| | | |
| | | public void setAnswers(List<Answer> answers) { |
| | | this.answers = answers; |
| | | } |
| | | |
| | | public VipAnswer getVipAnswer() { |
| | | return vipAnswer; |
| | | } |
| | | |
| | | public void setVipAnswer(VipAnswer vipAnswer) { |
| | | this.vipAnswer = vipAnswer; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @ApiModel(value = "RankingVo", description = "排行榜返回参数类") |
| | | public class RankingVo { |
| | | |
| | | @ApiModelProperty(value = "姓名") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "头像") |
| | | private String photo; |
| | | |
| | | @ApiModelProperty(value = "金额") |
| | | private BigDecimal amount; |
| | | |
| | | @ApiModelProperty(value = "店铺名称") |
| | | private String shopName; |
| | | |
| | | @ApiModelProperty(value = "员工ID") |
| | | private Long id; |
| | | |
| | | public String getShopName() { |
| | | return shopName; |
| | | } |
| | | |
| | | public void setShopName(String shopName) { |
| | | this.shopName = shopName; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getPhoto() { |
| | | return photo; |
| | | } |
| | | |
| | | public void setPhoto(String photo) { |
| | | this.photo = photo; |
| | | } |
| | | |
| | | public BigDecimal getAmount() { |
| | | return amount == null ? amount : amount.setScale(BigDecimal.ROUND_DOWN, 2); |
| | | } |
| | | |
| | | public void setAmount(BigDecimal amount) { |
| | | this.amount = amount; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import com.matrix.system.shopXcx.bean.ShopProduct; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.util.List; |
| | | |
| | | @ApiModel(value = "SkinCheckAnalysisItems", description = "问题分析返回接口类") |
| | | public class SkinCheckAnalysisItems { |
| | | |
| | | @ApiModelProperty(value = "图片") |
| | | private String img; |
| | | |
| | | @ApiModelProperty(value = "标题") |
| | | private String title; |
| | | |
| | | @ApiModelProperty(value = "问题分析") |
| | | private String analysis; |
| | | |
| | | @ApiModelProperty(value = "解决办法") |
| | | private String solution; |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private String productIds; |
| | | |
| | | @ApiModelProperty(value = "产品列表") |
| | | private List<String> products; |
| | | |
| | | public String getProductIds() { |
| | | return productIds; |
| | | } |
| | | |
| | | public void setProductIds(String productIds) { |
| | | this.productIds = productIds; |
| | | } |
| | | |
| | | public String getImg() { |
| | | return img; |
| | | } |
| | | |
| | | public void setImg(String img) { |
| | | this.img = img; |
| | | } |
| | | |
| | | public String getTitle() { |
| | | return title; |
| | | } |
| | | |
| | | public void setTitle(String title) { |
| | | this.title = title; |
| | | } |
| | | |
| | | public String getAnalysis() { |
| | | return analysis; |
| | | } |
| | | |
| | | public void setAnalysis(String analysis) { |
| | | this.analysis = analysis; |
| | | } |
| | | |
| | | public String getSolution() { |
| | | return solution; |
| | | } |
| | | |
| | | public void setSolution(String solution) { |
| | | this.solution = solution; |
| | | } |
| | | |
| | | public List<String> getProducts() { |
| | | return products; |
| | | } |
| | | |
| | | public void setProducts(List<String> products) { |
| | | this.products = products; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @ApiModel(value = "SkinCheckDetailVo", description = "皮肤检测详情返回接口类") |
| | | public class SkinCheckDetailVo { |
| | | |
| | | @ApiModelProperty(value = "会员姓名") |
| | | private String vipName; |
| | | |
| | | @ApiModelProperty(value = "头像") |
| | | private String photo; |
| | | |
| | | @ApiModelProperty(value = "性别") |
| | | private String sex; |
| | | |
| | | @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8") |
| | | @ApiModelProperty(value = "检测时间") |
| | | private Date checkTime; |
| | | |
| | | @ApiModelProperty(value = "诊断结果") |
| | | List<SkinCheckDiagnoseItemVo> diagnoseItems; |
| | | |
| | | @ApiModelProperty(value = "问题分析") |
| | | List<SkinCheckAnalysisItems> analysisItems; |
| | | |
| | | public String getVipName() { |
| | | return vipName; |
| | | } |
| | | |
| | | public void setVipName(String vipName) { |
| | | this.vipName = vipName; |
| | | } |
| | | |
| | | public String getPhoto() { |
| | | return photo; |
| | | } |
| | | |
| | | public void setPhoto(String photo) { |
| | | this.photo = photo; |
| | | } |
| | | |
| | | public String getSex() { |
| | | return sex; |
| | | } |
| | | |
| | | public void setSex(String sex) { |
| | | this.sex = sex; |
| | | } |
| | | |
| | | public Date getCheckTime() { |
| | | return checkTime; |
| | | } |
| | | |
| | | public void setCheckTime(Date checkTime) { |
| | | this.checkTime = checkTime; |
| | | } |
| | | |
| | | public List<SkinCheckDiagnoseItemVo> getDiagnoseItems() { |
| | | return diagnoseItems; |
| | | } |
| | | |
| | | public void setDiagnoseItems(List<SkinCheckDiagnoseItemVo> diagnoseItems) { |
| | | this.diagnoseItems = diagnoseItems; |
| | | } |
| | | |
| | | public List<SkinCheckAnalysisItems> getAnalysisItems() { |
| | | return analysisItems; |
| | | } |
| | | |
| | | public void setAnalysisItems(List<SkinCheckAnalysisItems> analysisItems) { |
| | | this.analysisItems = analysisItems; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | @ApiModel(value = "SkinCheckDiagnoseItemVo", description = "诊断结果返回参数类") |
| | | public class SkinCheckDiagnoseItemVo { |
| | | |
| | | @ApiModelProperty(value = "标题") |
| | | private String title; |
| | | |
| | | @ApiModelProperty(value = "百分比") |
| | | private Double percentage; |
| | | |
| | | public String getTitle() { |
| | | return title; |
| | | } |
| | | |
| | | public void setTitle(String title) { |
| | | this.title = title; |
| | | } |
| | | |
| | | |
| | | public Double getPercentage() { |
| | | return percentage; |
| | | } |
| | | |
| | | public void setPercentage(Double percentage) { |
| | | this.percentage = percentage; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @ApiModel(value = "SkinCheckListVo", description = "皮肤检测列表返回参数类") |
| | | public class SkinCheckListVo { |
| | | |
| | | @ApiModelProperty(value = "id") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "标题") |
| | | private String title; |
| | | |
| | | @ApiModelProperty(value = "检测人员") |
| | | private String checkUserName; |
| | | |
| | | @ApiModelProperty(value = "检测门店") |
| | | private String shopName; |
| | | |
| | | @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8") |
| | | @ApiModelProperty(value = "检测时间") |
| | | private Date checkTime; |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | |
| | | public String getCheckUserName() { |
| | | return checkUserName; |
| | | } |
| | | |
| | | public void setCheckUserName(String checkUserName) { |
| | | this.checkUserName = checkUserName; |
| | | } |
| | | |
| | | public String getShopName() { |
| | | return shopName; |
| | | } |
| | | |
| | | public void setShopName(String shopName) { |
| | | this.shopName = shopName; |
| | | } |
| | | |
| | | public Date getCheckTime() { |
| | | return checkTime; |
| | | } |
| | | |
| | | public void setCheckTime(Date checkTime) { |
| | | this.checkTime = checkTime; |
| | | } |
| | | |
| | | public String getTitle() { |
| | | return title; |
| | | } |
| | | |
| | | public void setTitle(String title) { |
| | | this.title = title; |
| | | } |
| | | } |
| | |
| | | @ApiModelProperty(value = "头像", example = "--") |
| | | private String photo; |
| | | |
| | | @ApiModelProperty(value = "门店名称") |
| | | private String shopName; |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | |
| | | public void setPhoto(String photo) { |
| | | this.photo = photo; |
| | | } |
| | | |
| | | public String getShopName() { |
| | | return shopName; |
| | | } |
| | | |
| | | public void setShopName(String shopName) { |
| | | this.shopName = shopName; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-31 |
| | | **/ |
| | | @ApiModel(value = "VipAchieveDataShowVo", description = "员工业绩返回参数类") |
| | | public class VipAchieveDataShowVo { |
| | | |
| | | @ApiModelProperty(value = "时间") |
| | | private String time; |
| | | |
| | | @ApiModelProperty(value = "订单业绩") |
| | | private BigDecimal orderAmount; |
| | | |
| | | @ApiModelProperty(value = "现金业绩") |
| | | private BigDecimal cashAmount; |
| | | |
| | | @ApiModelProperty(value = "售卡业绩") |
| | | private BigDecimal cardAmount; |
| | | |
| | | @ApiModelProperty(value = "产品业绩") |
| | | private BigDecimal goodsAmount; |
| | | |
| | | @ApiModelProperty(value = "划扣业绩") |
| | | private BigDecimal cardUseAmount; |
| | | |
| | | @ApiModelProperty(value = "本金消耗") |
| | | private BigDecimal hisConsume; |
| | | |
| | | @ApiModelProperty(value = "赠送消耗") |
| | | private BigDecimal freeConsume; |
| | | |
| | | @ApiModelProperty(value = "提成") |
| | | private BigDecimal commission; |
| | | |
| | | @ApiModelProperty(value = "人头数") |
| | | private BigDecimal peopleNum; |
| | | |
| | | @ApiModelProperty(value = "项目数") |
| | | private Integer projNum; |
| | | |
| | | @ApiModelProperty(value = "服务时长") |
| | | private Integer serviceTime; |
| | | |
| | | |
| | | public String getTime() { |
| | | return time; |
| | | } |
| | | |
| | | public void setTime(String time) { |
| | | this.time = time; |
| | | } |
| | | |
| | | public BigDecimal getOrderAmount() { |
| | | return orderAmount; |
| | | } |
| | | |
| | | public void setOrderAmount(BigDecimal orderAmount) { |
| | | this.orderAmount = orderAmount; |
| | | } |
| | | |
| | | public BigDecimal getCashAmount() { |
| | | return cashAmount; |
| | | } |
| | | |
| | | public void setCashAmount(BigDecimal cashAmount) { |
| | | this.cashAmount = cashAmount; |
| | | } |
| | | |
| | | public BigDecimal getCardAmount() { |
| | | return cardAmount; |
| | | } |
| | | |
| | | public void setCardAmount(BigDecimal cardAmount) { |
| | | this.cardAmount = cardAmount; |
| | | } |
| | | |
| | | public BigDecimal getGoodsAmount() { |
| | | return goodsAmount; |
| | | } |
| | | |
| | | public void setGoodsAmount(BigDecimal goodsAmount) { |
| | | this.goodsAmount = goodsAmount; |
| | | } |
| | | |
| | | public BigDecimal getCardUseAmount() { |
| | | return cardUseAmount; |
| | | } |
| | | |
| | | public void setCardUseAmount(BigDecimal cardUseAmount) { |
| | | this.cardUseAmount = cardUseAmount; |
| | | } |
| | | |
| | | public BigDecimal getHisConsume() { |
| | | return hisConsume; |
| | | } |
| | | |
| | | public void setHisConsume(BigDecimal hisConsume) { |
| | | this.hisConsume = hisConsume; |
| | | } |
| | | |
| | | public BigDecimal getFreeConsume() { |
| | | return freeConsume; |
| | | } |
| | | |
| | | public void setFreeConsume(BigDecimal freeConsume) { |
| | | this.freeConsume = freeConsume; |
| | | } |
| | | |
| | | public BigDecimal getCommission() { |
| | | return commission; |
| | | } |
| | | |
| | | public void setCommission(BigDecimal commission) { |
| | | this.commission = commission; |
| | | } |
| | | |
| | | public BigDecimal getPeopleNum() { |
| | | return peopleNum; |
| | | } |
| | | |
| | | public void setPeopleNum(BigDecimal peopleNum) { |
| | | this.peopleNum = peopleNum; |
| | | } |
| | | |
| | | public Integer getProjNum() { |
| | | return projNum; |
| | | } |
| | | |
| | | public void setProjNum(Integer projNum) { |
| | | this.projNum = projNum; |
| | | } |
| | | |
| | | public Integer getServiceTime() { |
| | | return serviceTime; |
| | | } |
| | | |
| | | public void setServiceTime(Integer serviceTime) { |
| | | this.serviceTime = serviceTime; |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-28 |
| | | **/ |
| | | @ApiModel(value = "VipCardListVo", description = "会员卡项列表") |
| | | public class VipCardListVo { |
| | | |
| | | @ApiModelProperty(value = "卡项名称") |
| | | private String cardName; |
| | | |
| | | @ApiModelProperty(value = "现有金额") |
| | | private BigDecimal realMoney; |
| | | |
| | | @ApiModelProperty(value = "赠送金额") |
| | | private BigDecimal giftMoney; |
| | | |
| | | @ApiModelProperty(value = "状态 1-有效 2-无效") |
| | | private String status; |
| | | |
| | | @JsonFormat(pattern = DateUtil.DATE_FORMAT_DD, timezone = "GMT+8") |
| | | @ApiModelProperty(value = "有效时间") |
| | | private Date failTime; |
| | | |
| | | public String getCardName() { |
| | | return cardName; |
| | | } |
| | | |
| | | public void setCardName(String cardName) { |
| | | this.cardName = cardName; |
| | | } |
| | | |
| | | public BigDecimal getRealMoney() { |
| | | return realMoney; |
| | | } |
| | | |
| | | public void setRealMoney(BigDecimal realMoney) { |
| | | this.realMoney = realMoney; |
| | | } |
| | | |
| | | public BigDecimal getGiftMoney() { |
| | | return giftMoney; |
| | | } |
| | | |
| | | public void setGiftMoney(BigDecimal giftMoney) { |
| | | this.giftMoney = giftMoney; |
| | | } |
| | | |
| | | public String getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(String status) { |
| | | if (Dictionary.MONEYCARD_STATUS_YX.equals(status)) { |
| | | this.status = "1"; |
| | | } else { |
| | | this.status = "2"; |
| | | } |
| | | } |
| | | |
| | | public Date getFailTime() { |
| | | return failTime; |
| | | } |
| | | |
| | | public void setFailTime(Date failTime) { |
| | | this.failTime = failTime; |
| | | } |
| | | } |
| | |
| | | package com.matrix.system.app.vo; |
| | | |
| | | import com.matrix.system.hive.bean.SysVipLevel; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | |
| | | |
| | | @ApiModelProperty(value = "门店简称") |
| | | private String shopName; |
| | | |
| | | @ApiModelProperty(value = "会员等级对象") |
| | | private String vipLevel; |
| | | |
| | | public String getVipName() { |
| | | return vipName; |
| | |
| | | public void setShopName(String shopName) { |
| | | this.shopName = shopName; |
| | | } |
| | | |
| | | public String getVipLevel() { |
| | | return vipLevel; |
| | | } |
| | | |
| | | public void setVipLevel(String vipLevel) { |
| | | this.vipLevel = vipLevel; |
| | | } |
| | | } |
| | |
| | | package com.matrix.system.hive.action; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.core.tools.StringUtils; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.hive.bean.ArticleType; |
| | | import com.matrix.system.hive.plugin.message.StringUtil; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.service.ArticleTypeService; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | |
| | | articleType.setType(Dictionary.ARTICEL_TYPE_NAME_MDXY); |
| | | SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | articleType.setShopId(users.getShopId()); |
| | | |
| | | Long parentId = articleType.getParentId(); |
| | | List<Long> ids = new ArrayList<>(); |
| | | while (parentId != 0) { |
| | | ArticleType type = currentService.findById(parentId); |
| | | ids.add(type.getId()); |
| | | parentId = type.getParentId(); |
| | | } |
| | | |
| | | articleType.setParentIds(CollectionUtils.isNotEmpty(ids) ? StringUtils.collToStr(ids, ",") : null); |
| | | if (articleType.getId() != null) { |
| | | |
| | | return modify(currentService, articleType, "文章类型"); |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.tools.DateUtil; |
| | | |
| | | import java.util.Date; |
| | | import java.io.Serializable; |
| | | /** |
| | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @JsonFormat(pattern = DateUtil.DATE_FORMAT_SS, timezone = "GMT+8") |
| | | private Date createtiem; |
| | | |
| | | |
| | |
| | | private String type; |
| | | |
| | | private Long shopId; |
| | | |
| | | private String parentIds; |
| | | |
| | | /** |
| | | * 扩展属性 |
| | |
| | | this.type=type; |
| | | } |
| | | |
| | | public String getParentIds() { |
| | | return parentIds; |
| | | } |
| | | |
| | | public void setParentIds(String parentIds) { |
| | | this.parentIds = parentIds; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "ArticleType [id=" + id + ", articleTypeName=" + articleTypeName |
| | |
| | | */ |
| | | private Integer times; |
| | | |
| | | private String type; |
| | | |
| | | public String getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public Integer getTimes() { |
| | | return times; |
| | | } |
| | |
| | | private String userName; |
| | | |
| | | @Extend |
| | | private String sex; |
| | | |
| | | @Extend |
| | | private String shopName; |
| | | |
| | | @Extend |
| | | private String checkUserName; |
| | | |
| | | public String getSex() { |
| | | return sex; |
| | | } |
| | | |
| | | public void setSex(String sex) { |
| | | this.sex = sex; |
| | | } |
| | | |
| | | public Date getBeginTime() { |
| | | return beginTime; |
| | | } |
| | |
| | | |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.system.app.vo.OrderDetailAchieveItemVo; |
| | | import com.matrix.system.app.vo.RankingVo; |
| | | import com.matrix.system.app.vo.UserAchieveVo; |
| | | import com.matrix.system.hive.bean.AchieveNew; |
| | | import org.apache.ibatis.annotations.Param; |
| | |
| | | UserAchieveVo selectUserAchieveByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("userId") Long userId); |
| | | |
| | | List<OrderDetailAchieveItemVo> selectApiOrderItemAchieve(@Param("itemId") Long itemId); |
| | | |
| | | List<RankingVo> selectShopConsumeAchieveRanking(@Param("record") AchieveNew achieveNew); |
| | | |
| | | List<RankingVo> selectBeauticianConsumeAchieveRanking(@Param("record") AchieveNew achieveNew); |
| | | } |
| | |
| | | public int selectTotalRecord(@Param("record") Article article); |
| | | |
| | | public Article selectById(Long id); |
| | | |
| | | |
| | | public List<Article> selectApiArticleListInPage(@Param("record") Article article, @Param("pageVo") PaginationVO pageVo); |
| | | |
| | | } |
| | |
| | | package com.matrix.system.hive.dao; |
| | | |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.system.app.vo.BusinessesDataShowVo; |
| | | import com.matrix.system.hive.bean.SysBusinessData; |
| | | import com.matrix.system.hive.statistics.BusinessDataShowVo; |
| | | import org.apache.ibatis.annotations.Param; |
| | |
| | | public SysBusinessData selectById(Integer id); |
| | | |
| | | public SysBusinessData selectForUpdate(Integer id); |
| | | |
| | | List<BusinessesDataShowVo> selectApiBusinessDataInPage(@Param("record") SysBusinessData data,@Param("pageVo") PaginationVO pageVo); |
| | | |
| | | int selectApiBusinessDataTotal(@Param("record") SysBusinessData data); |
| | | |
| | | } |
| | |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.system.app.dto.OrderListDto; |
| | | import com.matrix.system.app.vo.OrderDetailVo; |
| | | import com.matrix.system.app.vo.RankingVo; |
| | | import com.matrix.system.hive.bean.SysOrder; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | |
| | | int selectApiOrderListTotal(@Param("record") OrderListDto orderListDto); |
| | | |
| | | OrderDetailVo selectApiOrderDetailById(@Param("orderId") Long orderId); |
| | | |
| | | List<RankingVo> selectShopAchieveRanking(@Param("record") SysOrder sysOrder); |
| | | |
| | | List<RankingVo> selectStaffSaleAchieveRanking(@Param("record") SysOrder sysOrder); |
| | | } |
| | |
| | | */ |
| | | public Article findById(Long id); |
| | | |
| | | public List<Article> findApiArticleListInPage(Article article, PaginationVO pageVo); |
| | | |
| | | |
| | | |
| | |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.system.app.dto.OrderListDto; |
| | | import com.matrix.system.app.vo.OrderDetailVo; |
| | | import com.matrix.system.app.vo.RankingVo; |
| | | import com.matrix.system.hive.bean.SysOrder; |
| | | import com.matrix.system.hive.plugin.util.BaseServices; |
| | | import com.matrix.system.hive.pojo.CzXkVo; |
| | |
| | | int findApiOrderListTotal(OrderListDto orderListDto); |
| | | |
| | | OrderDetailVo findApiOrderDetailByOrderId(Long orderId); |
| | | |
| | | List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder); |
| | | |
| | | List<RankingVo> findStaffSaleAchieveRanking(SysOrder sysOrder); |
| | | } |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<Article> findApiArticleListInPage(Article article, PaginationVO pageVo) { |
| | | return articleDao.selectApiArticleListInPage(article, pageVo); |
| | | } |
| | | } |
New file |
| | |
| | | package com.matrix.system.hive.service.imp; |
| | | |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.app.dto.VipStatisticsParamDto; |
| | | import com.matrix.system.common.bean.SysCompany; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.common.dao.SysCompanyDao; |
| | | import com.matrix.system.common.dao.SysUsersDao; |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.hive.bean.SysShopInfo; |
| | | import com.matrix.system.hive.dao.SysShopInfoDao; |
| | | import com.matrix.system.hiveErp.analysUtil.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2020-12-30 |
| | | **/ |
| | | @Service |
| | | public class DataAnalysisCustomerServiceImpl { |
| | | |
| | | @Autowired |
| | | private SysShopInfoDao shopInfoDao; |
| | | |
| | | @Autowired |
| | | private SysCompanyDao sysCompanyDao; |
| | | |
| | | @Autowired |
| | | private SysUsersDao sysUsersDao; |
| | | |
| | | /** |
| | | * 按店铺查询数据通用格式执行方法,支持时、日、月、年维度 |
| | | * 如: A店铺 B店铺 |
| | | * 2020-01-01 12 13 |
| | | * 2020-02-02 10 11 |
| | | * |
| | | * @param statisticsParam 时间条件 |
| | | * @param caculate 循环调用caculate计算该店的数据 |
| | | * 查询的数据需满足 只有一个门店只有一行 列名称为 t0,t1,t2 |
| | | * @return |
| | | */ |
| | | public AjaxResult getAnalysisResult(StatisticsParamVo statisticsParam, Caculate caculate) { |
| | | AjaxResult result = new AjaxResult(); |
| | | |
| | | //根据计算横坐标 |
| | | List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit()); |
| | | |
| | | //获取所有门店 |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | List<SysShopInfo> shops = null; |
| | | if (statisticsParam.getShopId() != null) { |
| | | shops = Arrays.asList(shopInfoDao.selectById(user.getShopId())); |
| | | } else { |
| | | if (DataAuthUtil.hasAllShopAuth()) { |
| | | shops = shopInfoDao.selectShopInfo(user.getCompanyId()); |
| | | } else { |
| | | shops = Arrays.asList(shopInfoDao.selectById(user.getShopId())); |
| | | } |
| | | } |
| | | //定义数据项内容 |
| | | List<SeriesVo> series = new ArrayList<>(); |
| | | |
| | | //定义数据主体 |
| | | String[] legendData = new String[shops.size()]; |
| | | |
| | | int i = 0; |
| | | |
| | | //按门店统计数据 |
| | | List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis); |
| | | for (SysShopInfo shop : shops) { |
| | | |
| | | legendData[i++] = shop.getShopName(); |
| | | //数据项内容 |
| | | SeriesVo storeInfoSeries = new SeriesVo(); |
| | | storeInfoSeries.setName(shop.getShopName()); |
| | | //调用计算器获取数据库统计的结果 |
| | | Map<String, Integer> yAxisMap = caculate.exec(timeSpaceParam, shop.getId(), null); |
| | | //把统计结果转成数组格式 |
| | | storeInfoSeries.setData(StatisticsTimeUtil.getSeries(yAxisMap)); |
| | | series.add(storeInfoSeries); |
| | | |
| | | } |
| | | //构造返回对象 |
| | | Map<Object, Object> data = new HashMap<>(); |
| | | data.put("legendData", legendData); |
| | | data.put("series", series); |
| | | String[] xData = StatisticsTimeUtil.getFormartDateList(xAxis, statisticsParam); |
| | | data.put("xAxis", Arrays.copyOf(xData, xData.length - 1)); |
| | | result.setMapInfo(data); |
| | | result.setStatus(AjaxResult.STATUS_SUCCESS); |
| | | return result; |
| | | } |
| | | |
| | | public AjaxResult getCompanyAnalysisResult(StatisticsParamVo statisticsParam, Caculate caculate) { |
| | | AjaxResult result = new AjaxResult(); |
| | | |
| | | //根据计算横坐标 |
| | | List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit()); |
| | | |
| | | //获取所有门店 |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | SysCompany company = sysCompanyDao.selectById(user.getCompanyId()); |
| | | |
| | | //定义数据项内容 |
| | | List<SeriesVo> series = new ArrayList<>(); |
| | | |
| | | //定义数据主体 |
| | | String[] legendData = new String[1]; |
| | | |
| | | int i = 0; |
| | | |
| | | //按门店统计数据 |
| | | List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis); |
| | | |
| | | legendData[0] = company.getComName(); |
| | | //数据项内容 |
| | | SeriesVo storeInfoSeries = new SeriesVo(); |
| | | storeInfoSeries.setName(company.getComName()); |
| | | //调用计算器获取数据库统计的结果 |
| | | Map<String, Integer> yAxisMap = caculate.exec(timeSpaceParam, null, company.getComId()); |
| | | //把统计结果转成数组格式 |
| | | storeInfoSeries.setData(StatisticsTimeUtil.getSeries(yAxisMap)); |
| | | series.add(storeInfoSeries); |
| | | |
| | | //构造返回对象 |
| | | Map<Object, Object> data = new HashMap<>(); |
| | | data.put("legendData", legendData); |
| | | data.put("series", series); |
| | | String[] xData = StatisticsTimeUtil.getFormartDateList(xAxis, statisticsParam); |
| | | data.put("xAxis", Arrays.copyOf(xData, xData.length - 1)); |
| | | result.setMapInfo(data); |
| | | result.setStatus(AjaxResult.STATUS_SUCCESS); |
| | | return result; |
| | | } |
| | | |
| | | public AjaxResult getStaffAnalysisResult(VipStatisticsParamDto statisticsParam, Caculate caculate) { |
| | | AjaxResult result = new AjaxResult(); |
| | | |
| | | //根据计算横坐标 |
| | | List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit()); |
| | | |
| | | //获取所有门店 |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | Long staffId = null; |
| | | if (statisticsParam.getStaffId() == null) { |
| | | staffId = user.getSuId(); |
| | | } else { |
| | | staffId = statisticsParam.getStaffId(); |
| | | } |
| | | SysUsers sysUsers = sysUsersDao.selectById(staffId); |
| | | |
| | | //定义数据项内容 |
| | | List<SeriesVo> series = new ArrayList<>(); |
| | | |
| | | //定义数据主体 |
| | | String[] legendData = new String[1]; |
| | | |
| | | int i = 0; |
| | | |
| | | //按门店统计数据 |
| | | List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis); |
| | | |
| | | legendData[0] = sysUsers.getSuName(); |
| | | //数据项内容 |
| | | SeriesVo storeInfoSeries = new SeriesVo(); |
| | | storeInfoSeries.setName(sysUsers.getSuName()); |
| | | //调用计算器获取数据库统计的结果 |
| | | Map<String, Integer> yAxisMap = caculate.exec(timeSpaceParam, null, sysUsers.getSuId()); |
| | | //把统计结果转成数组格式 |
| | | storeInfoSeries.setData(StatisticsTimeUtil.getSeries(yAxisMap)); |
| | | series.add(storeInfoSeries); |
| | | |
| | | //构造返回对象 |
| | | Map<Object, Object> data = new HashMap<>(); |
| | | data.put("legendData", legendData); |
| | | data.put("series", series); |
| | | StatisticsParamVo statisticsParam1 = new StatisticsParamVo(); |
| | | statisticsParam1.setStatisticsUnit(statisticsParam.getStatisticsUnit()); |
| | | String[] xData = StatisticsTimeUtil.getFormartDateList(xAxis, statisticsParam1); |
| | | data.put("xAxis", Arrays.copyOf(xData, xData.length - 1)); |
| | | result.setMapInfo(data); |
| | | result.setStatus(AjaxResult.STATUS_SUCCESS); |
| | | return result; |
| | | } |
| | | } |
| | |
| | | import com.matrix.system.app.vo.OrderDetailAchieveItemVo; |
| | | import com.matrix.system.app.vo.OrderDetailItemVo; |
| | | import com.matrix.system.app.vo.OrderDetailVo; |
| | | import com.matrix.system.app.vo.RankingVo; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.common.dao.BusParameterSettingsDao; |
| | | import com.matrix.system.common.dao.SysUsersDao; |
| | |
| | | orderDetail.setItems(items); |
| | | return orderDetail; |
| | | } |
| | | |
| | | @Override |
| | | public List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder) { |
| | | return sysOrderDao.selectShopAchieveRanking(sysOrder); |
| | | } |
| | | |
| | | @Override |
| | | public List<RankingVo> findStaffSaleAchieveRanking(SysOrder sysOrder) { |
| | | return sysOrderDao.selectStaffSaleAchieveRanking(sysOrder); |
| | | } |
| | | } |
| | |
| | | import com.matrix.system.common.tools.DataAuthUtil; |
| | | import com.matrix.system.hive.bean.SysShopInfo; |
| | | import com.matrix.system.hive.dao.SysShopInfoDao; |
| | | import com.matrix.system.hive.service.imp.DataAnalysisCustomerServiceImpl; |
| | | import com.matrix.system.hiveErp.analysUtil.*; |
| | | import com.matrix.system.hiveErp.dao.TjVipSumDao; |
| | | import org.jetbrains.annotations.NotNull; |
| | |
| | | @Autowired |
| | | SysShopInfoDao shopInfoDao; |
| | | |
| | | @Autowired |
| | | DataAnalysisCustomerServiceImpl dataAnalysisCustomerService; |
| | | |
| | | |
| | | /** |
| | |
| | | */ |
| | | @RequestMapping(value = "/customerHeadCompare") |
| | | public @ResponseBody AjaxResult customerHeadCompare(StatisticsParamVo statisticsParam) { |
| | | return getAnalysisResult(statisticsParam, new Caculate() { |
| | | return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<Integer>() { |
| | | @Override |
| | | public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId) { |
| | | public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { |
| | | //从员工业绩统计表中,按时间段,门店的维度统计人头数 |
| | | return tjVipSumDao.customerHeadCompare(timeSpaceParam,shopId); |
| | | } |
| | |
| | | */ |
| | | @RequestMapping(value = "/customerEnterCountCompare") |
| | | public @ResponseBody AjaxResult customerEnterCountCompare(StatisticsParamVo statisticsParam) { |
| | | return getAnalysisResult(statisticsParam, new Caculate() { |
| | | return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<Integer>() { |
| | | @Override |
| | | public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId) { |
| | | public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { |
| | | //从员工业绩统计表中,按时间段,门店的维度统计人次 |
| | | return tjVipSumDao.customerEnterCountCompare(timeSpaceParam,shopId); |
| | | } |
| | |
| | | */ |
| | | @RequestMapping(value = "/customerEnterRateCompare") |
| | | public @ResponseBody AjaxResult customerEnterRateCompare(StatisticsParamVo statisticsParam) { |
| | | return getAnalysisResult(statisticsParam, new Caculate() { |
| | | return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<Integer>() { |
| | | @Override |
| | | public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId) { |
| | | public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) { |
| | | //从员工业绩统计表中,按时间段,门店的维度统计人次 |
| | | return tjVipSumDao.customerEnterRateCompare(timeSpaceParam,shopId); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 按店铺查询数据通用格式执行方法,支持时、日、月、年维度 |
| | | * 如: A店铺 B店铺 |
| | | * 2020-01-01 12 13 |
| | | * 2020-02-02 10 11 |
| | | * @param statisticsParam 时间条件 |
| | | * @param caculate 循环调用caculate计算该店的数据 |
| | | * 查询的数据需满足 只有一个门店只有一行 列名称为 t0,t1,t2 |
| | | * @return |
| | | */ |
| | | private AjaxResult getAnalysisResult(StatisticsParamVo statisticsParam, Caculate caculate) { |
| | | AjaxResult result = new AjaxResult(); |
| | | |
| | | //根据计算横坐标 |
| | | List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit()); |
| | | |
| | | //获取所有门店 |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | List<SysShopInfo> shops=null; |
| | | if(DataAuthUtil.hasAllShopAuth()){ |
| | | shops= shopInfoDao.selectShopInfo(user.getCompanyId()); |
| | | }else{ |
| | | shops=Arrays.asList(shopInfoDao.selectById(user.getShopId())); |
| | | } |
| | | //定义数据项内容 |
| | | List<SeriesVo> series=new ArrayList<>(); |
| | | |
| | | //定义数据主体 |
| | | String[] legendData=new String[shops.size()]; |
| | | |
| | | int i=0; |
| | | |
| | | //按门店统计数据 |
| | | List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis); |
| | | for(SysShopInfo shop: shops){ |
| | | |
| | | legendData[i++]=shop.getShopName(); |
| | | //数据项内容 |
| | | SeriesVo storeInfoSeries=new SeriesVo(); |
| | | storeInfoSeries.setName(shop.getShopName()); |
| | | //调用计算器获取数据库统计的结果 |
| | | Map<String, Integer> yAxisMap = caculate.exec(timeSpaceParam,shop.getId()); |
| | | //把统计结果转成数组格式 |
| | | storeInfoSeries.setData(StatisticsTimeUtil.getSeries(yAxisMap)); |
| | | series.add(storeInfoSeries); |
| | | |
| | | } |
| | | //构造返回对象 |
| | | Map<Object,Object> data=new HashMap<>(); |
| | | data.put("legendData",legendData); |
| | | data.put("series",series); |
| | | data.put("xAxis", StatisticsTimeUtil.getFormartDateList(xAxis,statisticsParam)); |
| | | result.setMapInfo(data); |
| | | result.setStatus(AjaxResult.STATUS_SUCCESS); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | /** |
| | | * 明细数值计算器 |
| | | */ |
| | | public interface Caculate { |
| | | public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam , Long shopId); |
| | | public interface Caculate<T> { |
| | | public Map<String, T> exec(List<StatisticsTimeDaoParam> timeSpaceParam , Long shopId, Long companyId); |
| | | } |
| | |
| | | package com.matrix.system.hiveErp.analysUtil; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | |
| | | /** |
| | | * 统计查询条件 |
| | | * @author jyy |
| | | */ |
| | | @ApiModel(value = "StatisticsParamVo", description = "专项统计接收参数类") |
| | | public class StatisticsParamVo { |
| | | |
| | | public static final String COMPANY = "1"; |
| | | |
| | | public static final String SHOP = "2"; |
| | | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @NotBlank(message = "参数错误") |
| | | @ApiModelProperty(value = "开始时间", example = "2020-12-01") |
| | | private String beginTime; |
| | | |
| | | /** |
| | | *结束时间 |
| | | */ |
| | | @NotBlank(message = "参数错误") |
| | | @ApiModelProperty(value = "结束时间", example = "2020-12-31") |
| | | private String endTime; |
| | | /** |
| | | *统计单位 |
| | | */ |
| | | @NotBlank(message = "参数错误") |
| | | @ApiModelProperty(value = "统计单位", example = "日") |
| | | private String statisticsUnit; |
| | | |
| | | /** |
| | | *对比单位 |
| | | */ |
| | | @ApiModelProperty(hidden = true) |
| | | private String contrastUnit; |
| | | /** |
| | | * 门店id |
| | | */ |
| | | private String shopId; |
| | | @ApiModelProperty(value = "门店ID, 不传默认统计整个公司") |
| | | private Long shopId; |
| | | |
| | | @ApiModelProperty(value = "类型 1-营业收入 2-现金收入 3-余额划扣 4-本金消耗 5-赠送消耗 6-现金退款 7-卡项退款 8-欠款", example = "1") |
| | | private String type; |
| | | |
| | | public String getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public String getBeginTime() { |
| | | return beginTime; |
| | |
| | | this.contrastUnit = contrastUnit; |
| | | } |
| | | |
| | | public String getShopId() { |
| | | public Long getShopId() { |
| | | return shopId; |
| | | } |
| | | |
| | | public void setShopId(String shopId) { |
| | | public void setShopId(Long shopId) { |
| | | this.shopId = shopId; |
| | | } |
| | | } |
| | |
| | | package com.matrix.system.hiveErp.dao; |
| | | |
| | | |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.system.app.vo.VipAchieveDataShowVo; |
| | | import com.matrix.system.hive.bean.AchieveNew; |
| | | import com.matrix.system.hiveErp.analysUtil.StatisticsTimeDaoParam; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | Map<String, Integer> customerEnterCountCompare(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId); |
| | | |
| | | Map<String, Integer> customerEnterRateCompare(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId); |
| | | |
| | | Map<String, BigDecimal> selectBusinessInCome(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); |
| | | |
| | | Map<String, BigDecimal> selectCashIncome(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); |
| | | |
| | | Map<String, BigDecimal> selectCardUse(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); |
| | | |
| | | Map<String, BigDecimal> selectArrears(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); |
| | | |
| | | Map<String, BigDecimal> selectHisConsume(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); |
| | | |
| | | Map<String, BigDecimal> selectFreeConsume(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); |
| | | Map<String, BigDecimal> selectCardRefund(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); |
| | | Map<String, BigDecimal> selectCashRefund(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); |
| | | |
| | | List<VipAchieveDataShowVo> selectVipAchieveInPage(@Param("record") AchieveNew achieveNew, @Param("pageVo") PaginationVO pageVo); |
| | | |
| | | Map<String, BigDecimal> selectStaffOrderAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffCashAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffCardAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffGoodsAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffCardUseAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffHisConsumeAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffFreeConsumeAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffCommissionAchieve(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffPeopleNum(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffProjNum(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | Map<String, BigDecimal> selectStaffProjTime(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("staffId") Long staffId); |
| | | } |
| | |
| | | */ |
| | | List<ShopProduct> selectByIds(@Param("ids") List<Integer> ids); |
| | | |
| | | List<String> selectProductNameByIds(@Param("ids") List<Integer> ids); |
| | | |
| | | List<ShopProduct> selectProductByAttrid(@Param("attrId") String attrId,@Param("shopId") Long shopId); |
| | | |
| | | |
| | |
| | | |
| | | |
| | | #是否启用异常上报 |
| | | is_open_exception_report=true |
| | | is_open_exception_report=false |
| | | showExcptionUrl=http://erp.hive.jyymatrix.cc/showException |
| | | |
| | | |
| | |
| | | </if> |
| | | <if |
| | | test="(record.suName!=null and record.suName!='') or (record.suName!='' and record.suName==0)"> |
| | | and su_name like concat('%',#{record.suName},'%') |
| | | and (su_name like concat('%',concat(#{record.suName},'%')) or su_tel = #{record.suName}) |
| | | </if> |
| | | <if |
| | | test="(record.suTel!=null and record.suTel!='') or (record.suTel!='' and record.suTel==0)"> |
| | |
| | | inner join sys_users b on (a.beault_id=b.su_id or a.sale_id = b.su_id) |
| | | where a.order_item_id=#{itemId} and order_type = '订单' |
| | | </select> |
| | | |
| | | <select id="selectShopConsumeAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo"> |
| | | select |
| | | b.shop_short_name name, |
| | | b.SHOP_IMAG photo, |
| | | sum(IFNULL(a.free_consume,0) + IFNULL(a.consume,0) + IFNULL(a.his_consume,0)) amount |
| | | from achieve_new a |
| | | left join sys_shop_info b on a.shop_id=b.ID |
| | | <where> |
| | | <if test="record.companyId != null"> |
| | | and a.company_id=#{record.companyId} |
| | | </if> |
| | | <if test='record.t1 == "1" and record.datatime != null'> |
| | | and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d') |
| | | </if> |
| | | <if test='record.t1 == "2" and record.datatime != null'> |
| | | and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m') |
| | | </if> |
| | | <if test='record.t1 == "3" and record.datatime != null'> |
| | | and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y') |
| | | </if> |
| | | </where> |
| | | group by a.shop_id |
| | | order by amount desc, a.shop_id |
| | | </select> |
| | | |
| | | <select id="selectBeauticianConsumeAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo"> |
| | | select |
| | | b.su_name name, |
| | | b.su_id id, |
| | | sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) + IFNULL(a.consume, 0)) amount, |
| | | c.shop_short_name shopName |
| | | from achieve_new a |
| | | inner join sys_users b on a.beault_id=b.su_id |
| | | left join sys_shop_info c on a.shop_id=c.ID |
| | | <where> |
| | | a.order_type='服务单' |
| | | <if test="record.companyId != null"> |
| | | and a.company_id=#{record.companyId} |
| | | </if> |
| | | <if test="record.shopId != null"> |
| | | and a.shop_id=#{record.shopId} |
| | | </if> |
| | | <if test='record.t1 == "1" and record.datatime != null'> |
| | | and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d') |
| | | </if> |
| | | <if test='record.t1 == "2" and record.datatime != null'> |
| | | and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m') |
| | | </if> |
| | | <if test='record.t1 == "3" and record.datatime != null'> |
| | | and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y') |
| | | </if> |
| | | </where> |
| | | group by a.beault_id |
| | | order by amount desc |
| | | </select> |
| | | </mapper> |
| | |
| | | </if> |
| | | order by type_id,sort,createtiem desc |
| | | </select> |
| | | |
| | | <select id="selectApiArticleListInPage" resultMap="ArticleMap"> |
| | | select * from article a |
| | | inner join article_type b on a.type_id=b.id and find_in_set(#{record.typeId}, b.parent_ids) |
| | | order by a.createtiem desc |
| | | <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> |
| | | <if test="pageVo.offset >=0 and pageVo.limit >0"> |
| | | limit |
| | | #{pageVo.offset},#{pageVo.limit} |
| | | </if> |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <result property="description" column="description" /> |
| | | <result property="url" column="url" /> |
| | | <result property="icon" column="icon" /> |
| | | <result property="type" column="type" /> |
| | | <result property="type" column="type" /> |
| | | <result property="parentIds" column="parent_ids" /> |
| | | <result property="shopId" column="shop_id"/> |
| | | <!--扩展属性 --> |
| | | <!-- <association property="article" javaType="Article" |
| | |
| | | url, |
| | | icon, |
| | | type, |
| | | shop_id |
| | | shop_id, |
| | | parent_ids |
| | | ) |
| | | VALUES ( |
| | | #{id}, |
| | |
| | | #{url}, |
| | | #{icon}, |
| | | #{type}, |
| | | #{shopId} |
| | | #{shopId}, |
| | | #{parentIds} |
| | | ) |
| | | </insert> |
| | | |
| | |
| | | </if> |
| | | <if test="type != null and type !='' "> |
| | | type = #{type}, |
| | | </if> |
| | | </if> |
| | | <if test="parentIds != null and parentIds !='' "> |
| | | parent_ids = #{parentIds}, |
| | | </if> |
| | | </set> |
| | | WHERE id=#{id} |
| | | </update> |
| | |
| | | ) t |
| | | </select> |
| | | |
| | | <select id="selectApiBusinessDataInPage" resultType="com.matrix.system.app.vo.BusinessesDataShowVo"> |
| | | select |
| | | date_format(a.time, #{record.t1}) dataTime, |
| | | sum(cashPay + cardPay + arrearsPay) totalPay, |
| | | sum(cashPay) cashPay, |
| | | sum(cardPay) cardPay, |
| | | sum(arrearsPay) arrearsPay, |
| | | sum(freeConsumePay) freeConsumePay, |
| | | sum(consumePay) consumePay, |
| | | sum(refundCardPay) refundCardPay, |
| | | sum(refundCashPay) refundCashPay |
| | | from ( |
| | | select |
| | | company_id, |
| | | shop_id, |
| | | a.time, |
| | | MAX(CASE code WHEN 'cashPay' THEN value ELSE 0 END) cashPay, |
| | | MAX(CASE code WHEN 'cardPay' THEN value ELSE 0 END) cardPay, |
| | | MAX(CASE code WHEN 'arrearsPay' THEN value ELSE 0 END) arrearsPay, |
| | | MAX(CASE code WHEN 'freeConsumePay' THEN value ELSE 0 END) freeConsumePay, |
| | | MAX(CASE code WHEN 'consumePay' THEN value ELSE 0 END) consumePay, |
| | | MAX(CASE code WHEN 'refundCashPay' THEN ABS(value) ELSE 0 END) refundCashPay, |
| | | MAX(CASE code WHEN 'refundCardPay' THEN ABS(value) ELSE 0 END) refundCardPay |
| | | from sys_business_data a |
| | | group by a.time, company_id, shop_id |
| | | ) a |
| | | <where> |
| | | <if test="record.companyId != null"> |
| | | and a.company_id=#{record.companyId} |
| | | </if> |
| | | <if test="record.shopId != null"> |
| | | and a.shop_id=#{record.shopId} |
| | | </if> |
| | | </where> |
| | | group by date_format(a.time, #{record.t1}) |
| | | order by a.time desc |
| | | <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> |
| | | <if test="pageVo.offset >=0 and pageVo.limit >0"> |
| | | limit |
| | | #{pageVo.offset},#{pageVo.limit} |
| | | </if> |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <select id="selectApiBusinessDataTotal" resultType="java.lang.Integer"> |
| | | select |
| | | count(1) |
| | | from ( |
| | | select |
| | | date_format(a.time, #{record.t1}) dataTime, |
| | | sum(cashPay + cardPay + arrearsPay) totalPay, |
| | | sum(cashPay) cashPay, |
| | | sum(cardPay) cardPay, |
| | | sum(arrearsPay) arrearsPay, |
| | | sum(freeConsumePay) freeConsumePay, |
| | | sum(consumePay) consumePay, |
| | | sum(refundCardPay) refundCardPay, |
| | | sum(refundCashPay) refundCashPay |
| | | from ( |
| | | select |
| | | company_id, |
| | | shop_id, |
| | | a.time, |
| | | MAX(CASE code WHEN 'cashPay' THEN value ELSE 0 END) cashPay, |
| | | MAX(CASE code WHEN 'cardPay' THEN value ELSE 0 END) cardPay, |
| | | MAX(CASE code WHEN 'arrearsPay' THEN value ELSE 0 END) arrearsPay, |
| | | MAX(CASE code WHEN 'freeConsumePay' THEN value ELSE 0 END) freeConsumePay, |
| | | MAX(CASE code WHEN 'consumePay' THEN value ELSE 0 END) consumePay, |
| | | MAX(CASE code WHEN 'refundCashPay' THEN ABS(value) ELSE 0 END) refundCashPay, |
| | | MAX(CASE code WHEN 'refundCardPay' THEN ABS(value) ELSE 0 END) refundCardPay |
| | | from sys_business_data a |
| | | group by a.time, company_id, shop_id |
| | | ) a |
| | | <where> |
| | | <if test="record.companyId != null"> |
| | | and a.company_id=#{record.companyId} |
| | | </if> |
| | | <if test="record.shopId != null"> |
| | | and a.shop_id=#{record.shopId} |
| | | </if> |
| | | </where> |
| | | group by date_format(a.time, #{record.t1}) |
| | | order by a.time desc |
| | | ) a |
| | | </select> |
| | | </mapper> |
| | |
| | | left join sys_users c on a.STAFF_ID=c.su_id |
| | | where a.id=#{orderId} |
| | | </select> |
| | | |
| | | <select id="selectShopAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo"> |
| | | select |
| | | b.shop_short_name name, |
| | | b.SHOP_IMAG photo, |
| | | sum(IFNULL(a.ZK_TOTAL,0)) amount |
| | | from sys_order a |
| | | left join sys_shop_info b on a.SHOP_ID=b.ID |
| | | <where> |
| | | a.statu in ('已付款', '欠款') |
| | | <if test="record.companyId != null"> |
| | | and a.company_id=#{record.companyId} |
| | | </if> |
| | | <if test='record.type == "1" and record.orderTime != null'> |
| | | and date_format(order_time, '%Y-%m-%d') = date_format(#{record.orderTime}, '%Y-%m-%d') |
| | | </if> |
| | | <if test='record.type == "2" and record.orderTime != null'> |
| | | and date_format(order_time, '%Y-%m') = date_format(#{record.orderTime}, '%Y-%m') |
| | | </if> |
| | | <if test='record.type == "3" and record.orderTime != null'> |
| | | and date_format(order_time, '%Y') = date_format(#{record.orderTime}, '%Y') |
| | | </if> |
| | | </where> |
| | | group by a.SHOP_ID |
| | | order by amount desc, a.shop_id |
| | | </select> |
| | | |
| | | <select id="selectStaffSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo"> |
| | | select |
| | | b.su_name name, |
| | | b.su_id id, |
| | | b.su_photo photo, |
| | | sum(ZK_TOTAL) amount, |
| | | c.shop_short_name shopName |
| | | from sys_order a |
| | | left join sys_users b on a.STAFF_ID=b.su_id |
| | | left join sys_shop_info c on a.SHOP_ID=c.ID |
| | | <where> |
| | | a.statu in ('已付款', '欠款') and b.su_id is not null |
| | | <if test="record.companyId != null"> |
| | | and a.company_id=#{record.companyId} |
| | | </if> |
| | | <if test="record.shopId != null"> |
| | | and a.shop_id=#{record.shopId} |
| | | </if> |
| | | <if test='record.type == "1" and record.orderTime != null'> |
| | | and date_format(order_time, '%Y-%m-%d') = date_format(#{record.orderTime}, '%Y-%m-%d') |
| | | </if> |
| | | <if test='record.type == "2" and record.orderTime != null'> |
| | | and date_format(order_time, '%Y-%m') = date_format(#{record.orderTime}, '%Y-%m') |
| | | </if> |
| | | <if test='record.type == "3" and record.orderTime != null'> |
| | | and date_format(order_time, '%Y') = date_format(#{record.orderTime}, '%Y') |
| | | </if> |
| | | </where> |
| | | group by b.su_id |
| | | order by amount desc, b.su_id |
| | | </select> |
| | | </mapper> |
| | |
| | | <result property="shopName" column="shopName" /> |
| | | <result property="telphone" column="telphone" /> |
| | | <result property="checkUserName" column="checkUserName" /> |
| | | <result property="userName" column="userName" /> |
| | | <result property="ext1" column="ext1" /> |
| | | <result property="ext2" column="ext2" /> |
| | | <result property="ext3" column="ext3" /> |
| | | <result property="ext4" column="ext4" /> |
| | | <result property="ext5" column="ext5" /> |
| | | <result property="ext5" column="ext5" /> |
| | | <result property="sex" column="sex" /> |
| | | <collection property="skinDetails" ofType="com.matrix.system.hive.bean.SysSkinDetail" column="id"> |
| | | <id property="id" column="detailId" /> |
| | | <result property="checkId" column="check_id" /> |
| | |
| | | t3.symptom analysisSymptom, |
| | | t3.percentage analysisPercentage, |
| | | t3.analysis analysisAnalysis, |
| | | t3.img analysisImg |
| | | t3.img analysisImg, |
| | | t4.vip_name userName, |
| | | t4.sex sex |
| | | from sys_skin_check_record t1 |
| | | left join sys_skin_detail t2 on t1.id=t2.check_id and t2.t1=1 |
| | | left join sys_skin_detail t3 on t1.id=t3.check_id and t3.t1=2 |
| | | left join sys_vip_info t4 on t1.user_id=t4.id |
| | | where t1.id=#{id} |
| | | </select> |
| | | |
| | |
| | | <!-- 扩展属性 --> |
| | | <result property="staffName" column="STAFF_NAME"/> |
| | | <result property="shopName" column="SHOP_NAME"/> |
| | | <association property="vipLevel" javaType="com.matrix.system.hive.bean.SysVipLevel" > |
| | | <result property="levelName" column="levelName"/> |
| | | <result property="vipLevel" column="vipLevel"/> |
| | | </association> |
| | | </resultMap> |
| | | |
| | | <!-- 查询几天内过生日的会员 --> |
| | |
| | | a.province, |
| | | a.city, |
| | | a.area, |
| | | a.recommend_id |
| | | a.recommend_id, |
| | | e.level_name levelName, |
| | | e.vip_level vipLevel |
| | | </sql> |
| | | <sql id="from"> |
| | | from sys_vip_info a |
| | | left join sys_users c on c.su_id =a.STAFF_ID |
| | | left join sys_shop_info d ON d.ID=a.SHOP_ID |
| | | left join sys_vip_level e on a.level_id=e.id |
| | | |
| | | </sql> |
| | | |
| | |
| | | a.PHONE phone, |
| | | a.photo photo, |
| | | b.arriveCnt arriveCnt, |
| | | g.shop_short_name shopName |
| | | g.shop_short_name shopName, |
| | | z.level_name vipLevel |
| | | from sys_vip_info a |
| | | left join ( |
| | | select x.vip_id, count(1) arriveCnt from ( |
| | |
| | | group by date_format(datatime, '%Y-%m-%d'), vip_id |
| | | ) x group by x.vip_id |
| | | ) b on a.ID=b.vip_id |
| | | left join sys_vip_level z on a.level_id=z.id |
| | | <!-- 本月消费 --> |
| | | <if test="record.sort == 'used'"> |
| | | left join ( |
| | |
| | | |
| | | </select> |
| | | |
| | | <select id="selectBusinessInCome" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select IFNULL(sum(ZK_TOTAL), 0) |
| | | from sys_order |
| | | where STATU in ('已付款', '欠款') |
| | | and <![CDATA[order_time > #{item.beginTime} and order_time < #{item.endTime} ]]> |
| | | <if test="companyId != null and companyId != 0"> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectCashIncome" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select IFNULL(sum(cash_Pay), 0) |
| | | from sys_order |
| | | where STATU in ('已付款') |
| | | and <![CDATA[order_time > #{item.beginTime} and order_time < #{item.endTime} ]]> |
| | | <if test="companyId != null and companyId != 0"> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectCardUse" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select IFNULL(sum(card_Pay), 0) |
| | | from sys_order |
| | | where STATU in ('已付款') |
| | | and <![CDATA[order_time > #{item.beginTime} and order_time < #{item.endTime} ]]> |
| | | <if test="companyId != null and companyId != 0"> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectArrears" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select IFNULL(sum(arrears), 0) |
| | | from sys_order |
| | | where STATU in ('欠款') |
| | | and <![CDATA[order_time > #{item.beginTime} and order_time < #{item.endTime} ]]> |
| | | <if test="companyId != null and companyId != 0"> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectHisConsume" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select IFNULL(sum(his_consume), 0) |
| | | from achieve_new |
| | | where order_type in ('服务单') |
| | | and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="companyId != null and companyId != 0"> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectFreeConsume" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select IFNULL(sum(free_consume), 0) |
| | | from achieve_new |
| | | where order_type in ('服务单') |
| | | and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="companyId != null and companyId != 0"> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectCashRefund" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select IFNULL(sum(cash_Pay), 0) |
| | | from sys_order |
| | | where STATU in ('退款') |
| | | and <![CDATA[order_time > #{item.beginTime} and order_time < #{item.endTime} ]]> |
| | | <if test="companyId != null and companyId != 0"> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | |
| | | <select id="selectCardRefund" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select IFNULL(sum(card_Pay), 0) |
| | | from sys_order |
| | | where STATU in ('退款') |
| | | and <![CDATA[order_time > #{item.beginTime} and order_time < #{item.endTime} ]]> |
| | | <if test="companyId != null and companyId != 0"> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectVipAchieveInPage" resultType="com.matrix.system.app.vo.VipAchieveDataShowVo"> |
| | | select |
| | | date_format(a.datatime, #{record.t1}) time, |
| | | ROUND(sum(IFNULL(zk_total, 0)), 2) orderAmount, |
| | | ROUND(sum(IFNULL(proj_cash, 0)), 2) cashAmount, |
| | | ROUND(sum(IFNULL(card_cash, 0)), 2) cardAmount, |
| | | ROUND(sum(IFNULL(goods_cash, 0)), 2) goodsAmount, |
| | | ROUND(sum(IFNULL(consume, 0)), 2) cardUseAmount, |
| | | ROUND(sum(IFNULL(his_consume, 0)), 2) hisConsume, |
| | | ROUND(sum(IFNULL(free_consume, 0)), 2) freeConsume, |
| | | ROUND(sum(IFNULL(proj_percentage, 0)), 2) commission, |
| | | ROUND(sum(IFNULL(number_of_people, 0)), 2) peopleNum, |
| | | ROUND(sum(IFNULL(proj_num, 0)), 2) projNum, |
| | | ROUND(sum(IFNULL(proj_time, 0)), 2) serviceTime |
| | | from ( |
| | | select * from ( |
| | | select * from ( |
| | | select date_format(date_add(now(), INTERVAL -(@rowd := @rowd + 1) DAY), '%Y-%m-%d') datatime |
| | | from achieve_new a, (select @rowd := 0) t |
| | | ) a |
| | | ) a |
| | | left join ( |
| | | select |
| | | date_format(a.datatime, '%Y-%m-%d') datatime1, |
| | | SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0))) as zk_total, |
| | | SUM(IFNULL(a.proj_cash,0)) proj_cash, |
| | | SUM(IFNULL(a.goods_cash, 0)) goods_cash, |
| | | SUM(IFNULL(a.card_cash,0)) card_cash, |
| | | SUM(IFNULL(a.consume, 0)) consume |
| | | from achieve_new a where a.sale_id=#{record.vipId} |
| | | group by date_format(a.datatime, '%Y-%m-%d') |
| | | ) b on a.datatime=b.datatime1 |
| | | left join ( |
| | | select |
| | | date_format(b.datatime, '%Y-%m-%d') datatime2, |
| | | SUM(IFNULL(b.his_consume, 0)) his_consume, |
| | | SUM(IFNULL(b.free_consume, 0)) free_consume, |
| | | SUM(IFNULL(b.proj_percentage, 0)) proj_percentage, |
| | | SUM(IFNULL(b.number_of_people, 0)) number_of_people, |
| | | SUM(IFNULL(b.proj_num, 0)) proj_num, |
| | | SUM(IFNULL(b.proj_time, 0)) proj_time |
| | | from achieve_new b where b.beault_id=#{record.vipId} |
| | | group by date_format(b.datatime, '%Y-%m-%d') |
| | | ) c on a.datatime=c.datatime2 |
| | | ) a |
| | | group by date_format(a.datatime, #{record.t1}) |
| | | order by a.datatime desc |
| | | <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> |
| | | <if test="pageVo.offset >=0 and pageVo.limit >0"> |
| | | limit |
| | | #{pageVo.offset},#{pageVo.limit} |
| | | </if> |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="selectStaffOrderAchieve" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and sale_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffCashAchieve" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.proj_cash,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and sale_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffCardAchieve" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.card_cash,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and sale_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffGoodsAchieve" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.goods_cash,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and sale_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffCardUseAchieve" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.consume,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and sale_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffHisConsumeAchieve" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.his_consume,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and beault_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffFreeConsumeAchieve" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.free_consume,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and beault_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffCommissionAchieve" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.proj_percentage,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and beault_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffPeopleNum" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.number_of_people,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and beault_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffProjNum" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.proj_num,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and beault_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | <select id="selectStaffProjTime" resultType="java.util.TreeMap"> |
| | | select |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | ( |
| | | select |
| | | IFNULL(SUM((IFNULL(a.proj_time,0))),0) |
| | | from achieve_new a |
| | | where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="staffId != null and staffId != 0"> |
| | | and beault_id=#{staffId} |
| | | </if> |
| | | ) as t${index} |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | </mapper> |
| | | |
| | |
| | | </foreach> |
| | | </select> |
| | | |
| | | <select id="selectProductNameByIds" resultType="java.lang.String"> |
| | | select |
| | | title |
| | | from shop_product |
| | | where id in |
| | | <foreach collection="ids" item="item" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </select> |
| | | |
| | | |
| | | <!-- 根据id 锁表查询--> |
| | | <select id="selectForUpdate" resultMap="ShopProductMap"> |