| @@ -2,4 +2,5 @@ package com.iformall.constant; | |||
| public interface SwaggerConstant { | |||
| String V_1_0_0 = "v1.0.0"; | |||
| String V_2_0_0 = "v2.0.0"; | |||
| } | |||
| @@ -0,0 +1,151 @@ | |||
| package com.iformall.controller.market; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.constant.SwaggerConstant; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumLegionActivityStatus; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.service.WxLegionActivityConfigService; | |||
| import com.iformall.service.WxLegionActivityOrderService; | |||
| import com.iformall.service.WxLegionActivityService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.math.BigDecimal; | |||
| import java.util.ArrayList; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/legion") | |||
| @Api(tags = "军团活动相关接口") | |||
| public class WxLegionActivityController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxLegionActivityService wxLegionActivityService; | |||
| @Autowired | |||
| private WxLegionActivityConfigService wxLegionActivityConfigService; | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(@ModelAttribute WxLegionActivity wxLegionActivity, Integer pageNum, Integer pageSize) { | |||
| if (null == wxLegionActivity) wxLegionActivity = new WxLegionActivity(); | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivity.updateTenantInfo(tenantInfo); | |||
| wxLegionActivity.setSortColumns(SortField.CreateDate_DESC); | |||
| final PageInfo<WxLegionActivity> page = wxLegionActivityService.listAsPage(wxLegionActivity,true, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("saveOrUpdate") | |||
| public ResultData saveOrUpdate(@RequestBody WxLegionActivity wxLegionActivity) { | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivity.updateTenantInfo(tenantEntity); | |||
| if(wxLegionActivity.getLegionList() == null || wxLegionActivity.getLegionList().isEmpty()){ | |||
| return new ResultData(Result.ERROR,"军团配置为空"); | |||
| } | |||
| List<Long> merchantIds = new ArrayList<>(); | |||
| for (WxLegionActivityConfig legionConfig:wxLegionActivity.getLegionList()){ | |||
| if(legionConfig.getMerchantList() == null || legionConfig.getMerchantList().isEmpty()){ | |||
| continue; | |||
| } | |||
| for (WxLegionActivityMerchantConfig wxLegionActivityMerchantConfig : legionConfig.getMerchantList()) { | |||
| merchantIds.add(wxLegionActivityMerchantConfig.getMerchantId()); | |||
| } | |||
| } | |||
| if(!merchantIds.isEmpty() && merchantIds.stream().distinct().count() != merchantIds.size()){ | |||
| return new ResultData(Result.ERROR,"军团商户配置重复"); | |||
| } | |||
| wxLegionActivityService.saveOrUpdate(wxLegionActivity); | |||
| return new ResultData(wxLegionActivity); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("删除活动门店") | |||
| @PostMapping("delMerchant") | |||
| public ResultData delMerchant(@RequestBody WxLegionActivity wxLegionActivity) { | |||
| if(wxLegionActivity.getId() == null){ | |||
| return new ResultData(Result.ERROR,"活动id为空"); | |||
| } | |||
| if(wxLegionActivity.getMerchantConfigIdList() == null || wxLegionActivity.getMerchantConfigIdList().isEmpty()){ | |||
| return new ResultData(Result.ERROR,"删除门店为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivity.updateTenantInfo(tenantEntity); | |||
| wxLegionActivityService.delMerchant(wxLegionActivity); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("上架") | |||
| @PostMapping("online") | |||
| public ResultData online(@RequestBody WxLegionActivity wxLegionActivity) { | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivity.updateTenantInfo(tenantEntity); | |||
| wxLegionActivity.setStatus(EnumLegionActivityStatus.ON_LINE.getCode()); | |||
| wxLegionActivityService.updateStatus(wxLegionActivity); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("下架") | |||
| @PostMapping("offline") | |||
| public ResultData offline(@RequestBody WxLegionActivity wxLegionActivity) { | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivity.updateTenantInfo(tenantEntity); | |||
| wxLegionActivity.setStatus(EnumLegionActivityStatus.OFF_LINE.getCode()); | |||
| wxLegionActivityService.updateStatus(wxLegionActivity); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询详情") | |||
| @GetMapping("getInfoById") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getInfoById(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| WxLegionActivity activity = wxLegionActivityService.getInfoById(id, tenantInfo.getTenantId()); | |||
| return new ResultData(activity); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询军团列表") | |||
| @GetMapping("getLegionById") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getLegionById(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| List<WxLegionActivityConfig> legionConfigList = wxLegionActivityConfigService.findLegionList(id,tenantInfo.getTenantId()); | |||
| return new ResultData(legionConfigList); | |||
| } | |||
| } | |||
| @@ -0,0 +1,208 @@ | |||
| package com.iformall.controller.market; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.constant.SwaggerConstant; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.WxLegionActivityOrder; | |||
| import com.iformall.domain.po.WxOfflineActivityRecord; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.domain.vo.LegionActivityMerchantStatistics; | |||
| import com.iformall.domain.vo.LegionActivitySellOrder; | |||
| import com.iformall.enums.EnumLegionActivityOrderStatus; | |||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.service.WxLegionActivityOrderService; | |||
| import com.iformall.service.WxOfflineActivityRecordService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import jodd.util.StringUtil; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/legionOrder") | |||
| @Api(tags = "军团活动订单相关接口") | |||
| public class WxLegionActivityOrderController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxLegionActivityOrderService wxLegionActivityOrderService; | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder, Integer pageNum, Integer pageSize) { | |||
| if (null == wxLegionActivityOrder) wxLegionActivityOrder = new WxLegionActivityOrder(); | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| return new ResultData(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityOrder.setSortColumns(SortField.CreateDate_DESC); | |||
| final PageInfo<WxLegionActivityOrder> page = wxLegionActivityOrderService.listAsPage(wxLegionActivityOrder, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("导出") | |||
| @GetMapping("/export") | |||
| public void export(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder, HttpServletRequest request, HttpServletResponse response) { | |||
| if (null == wxLegionActivityOrder) wxLegionActivityOrder = new WxLegionActivityOrder(); | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityOrder.setSortColumns(SortField.CreateDate_DESC); | |||
| wxLegionActivityOrderService.exportData(request,response,wxLegionActivityOrder); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("审核通过") | |||
| @PostMapping("audiPass") | |||
| public ResultData audiPass(@RequestBody WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder == null){ | |||
| return new ResultData(Result.ERROR,"id 不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantEntity); | |||
| wxLegionActivityOrder.setAuditStatus(EnumLegionActivityOrderStatus.AUDI_SUCCESS.getCode()); | |||
| wxLegionActivityOrderService.auditRecord(wxLegionActivityOrder,getUserId()); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("审核驳回") | |||
| @PostMapping("audtFail") | |||
| public ResultData audtFail(@RequestBody WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder == null){ | |||
| return new ResultData(Result.ERROR,"id 不能为空"); | |||
| } | |||
| if(StringUtil.isBlank(wxLegionActivityOrder.getAuditRemark())){ | |||
| return new ResultData(Result.ERROR,"驳回意见不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantEntity); | |||
| wxLegionActivityOrder.setAuditStatus(EnumLegionActivityOrderStatus.AUDT_FAIL.getCode()); | |||
| wxLegionActivityOrderService.auditRecord(wxLegionActivityOrder,getUserId()); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("失效") | |||
| @PostMapping("invalid") | |||
| public ResultData invalid(@RequestBody WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder == null){ | |||
| return new ResultData(Result.ERROR,"id 不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantEntity); | |||
| wxLegionActivityOrder.setAuditStatus(EnumLegionActivityOrderStatus.INVALID.getCode()); | |||
| wxLegionActivityOrderService.auditRecord(wxLegionActivityOrder,getUserId()); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询详情") | |||
| @GetMapping("getInfoById") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getInfoById(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| WxLegionActivityOrder record = wxLegionActivityOrderService.getInfoById(id, tenantInfo.getTenantId()); | |||
| return new ResultData(record); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询活动数据(军团?)") | |||
| @GetMapping("getActivityData") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getActivityData(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| Map<String,Object> activityData = wxLegionActivityOrderService.getActivityData(wxLegionActivityOrder); | |||
| return new ResultData(activityData); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询活动数据(门店)") | |||
| @GetMapping("getActivityMerchantData") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getActivityMerchantData(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| List<LegionActivityMerchantStatistics> activityMerchantData = wxLegionActivityOrderService.getActivityMerchantData(wxLegionActivityOrder); | |||
| return new ResultData(activityMerchantData); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("导出活动数据(门店)") | |||
| @GetMapping("/exportActivityMerchantData") | |||
| public void exportActivityMerchantDate(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder, HttpServletRequest request, HttpServletResponse response) { | |||
| if (null == wxLegionActivityOrder) wxLegionActivityOrder = new WxLegionActivityOrder(); | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityOrderService.exportActivityMerchantData(request,response,wxLegionActivityOrder); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询活动数据(带单数据)") | |||
| @GetMapping("getActivitySellOrder") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getActivitySellOrder(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| List<LegionActivitySellOrder> activityMerchantDate = wxLegionActivityOrderService.getActivitySellOrder(wxLegionActivityOrder); | |||
| return new ResultData(activityMerchantDate); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("导出活动数据(带单数据)") | |||
| @GetMapping("/exportActivitySellOrder") | |||
| public void exportActivitySellOrder(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder, HttpServletRequest request, HttpServletResponse response) { | |||
| if (null == wxLegionActivityOrder) wxLegionActivityOrder = new WxLegionActivityOrder(); | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| throw new MallinkException(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityOrderService.exportActivitySellOrder(request,response,wxLegionActivityOrder); | |||
| } | |||
| } | |||
| @@ -0,0 +1,55 @@ | |||
| package com.iformall.controller; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.constant.SwaggerConstant; | |||
| import com.iformall.domain.po.WxLegionActivity; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumLegionActivityStatus; | |||
| import com.iformall.service.WxLegionActivityService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import jodd.util.StringUtil; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/api/legion") | |||
| @Api(tags = "军团活动相关接口") | |||
| public class WxLegionActivityController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxLegionActivityService wxLegionActivityService; | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(@ModelAttribute WxLegionActivity wxLegionActivity, Integer pageNum, Integer pageSize) { | |||
| if (null == wxLegionActivity) wxLegionActivity = new WxLegionActivity(); | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivity.updateTenantInfo(tenantInfo); | |||
| wxLegionActivity.setStatusList(EnumLegionActivityStatus.getLine()); | |||
| wxLegionActivity.setSortColumns(SortField.CreateDate_DESC); | |||
| final PageInfo<WxLegionActivity> page = wxLegionActivityService.listAsPage(wxLegionActivity, false,pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| } | |||
| @@ -0,0 +1,111 @@ | |||
| package com.iformall.controller; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.constant.SwaggerConstant; | |||
| import com.iformall.domain.po.WxLegionActivityOrder; | |||
| import com.iformall.domain.po.WxOfflineActivityRecord; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.service.WxLegionActivityOrderService; | |||
| import com.iformall.service.WxOfflineActivityRecordService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import jodd.util.StringUtil; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/api/legionOrder") | |||
| @Api(tags = "军团活动订单相关接口") | |||
| public class WxLegionActivityOrderController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxLegionActivityOrderService wxLegionActivityOrderService; | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder, Integer pageNum, Integer pageSize) { | |||
| if (null == wxLegionActivityOrder) wxLegionActivityOrder = new WxLegionActivityOrder(); | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| return new ResultData(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityOrder.setSortColumns(SortField.CreateDate_DESC); | |||
| wxLegionActivityOrder.setMerchantId(getLoginBUser().getMerchantId()); | |||
| final PageInfo<WxLegionActivityOrder> page = wxLegionActivityOrderService.listAsPage(wxLegionActivityOrder, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("saveOrUpdate") | |||
| public ResultData saveOrUpdate(@RequestBody WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| return new ResultData(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| if(StringUtil.isBlank(wxLegionActivityOrder.getOrderNo())){ | |||
| return new ResultData(Result.ERROR,"订单号不能为空"); | |||
| } | |||
| if (null == wxLegionActivityOrder.getOrderMoney() ) { | |||
| return new ResultData(Result.ERROR,"订单金额不能为空"); | |||
| } | |||
| if(wxLegionActivityOrder.getCusId() == null){ | |||
| return new ResultData(Result.ERROR,"未查询到用户,请先进行VIP卡绑定"); | |||
| } | |||
| if(StringUtil.isBlank(wxLegionActivityOrder.getCusPhone())){ | |||
| return new ResultData(Result.ERROR,"客户手机号不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantEntity); | |||
| wxLegionActivityOrder.setCreateBy(getMerchantBUserId()); | |||
| wxLegionActivityOrder.setMerchantId(getLoginBUser().getMerchantId()); | |||
| wxLegionActivityOrderService.saveOrUpdate(wxLegionActivityOrder); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询当前信息详情") | |||
| @GetMapping("getInfoById") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getInfoById(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| WxLegionActivityOrder activity = wxLegionActivityOrderService.getInfoById(id, tenantInfo.getTenantId()); | |||
| return new ResultData(activity); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询当前信息统计") | |||
| @GetMapping("statistics") | |||
| public ResultData statisticsCount(@ModelAttribute WxLegionActivityOrder wxLegionActivityOrder) { | |||
| if(wxLegionActivityOrder.getActivityId() == null){ | |||
| return new ResultData(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityOrder.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityOrder.setMerchantId(getLoginBUser().getMerchantId()); | |||
| Map<String,Integer> statisticsMap = wxLegionActivityOrderService.getStatistics(wxLegionActivityOrder); | |||
| return new ResultData(statisticsMap); | |||
| } | |||
| } | |||
| @@ -0,0 +1,113 @@ | |||
| package com.iformall.controller; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.ApiVersion; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.constant.SwaggerConstant; | |||
| import com.iformall.domain.po.WxLegionActivityUser; | |||
| import com.iformall.domain.po.WxOfflineActivityRecord; | |||
| import com.iformall.domain.po.base.BaseEntity.SortField; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import com.iformall.enums.EnumLegionActivityUserStatus; | |||
| import com.iformall.service.WxLegionActivityUserService; | |||
| import com.iformall.service.WxOfflineActivityRecordService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import jodd.util.StringUtil; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import java.util.Map; | |||
| /** | |||
| * @author alascor | |||
| * | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/api/legionUser") | |||
| @Api(tags = "军团活动用户相关接口") | |||
| public class WxLegionActivityUserController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxLegionActivityUserService wxLegionActivityUserService; | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("分页列表接口") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) | |||
| public ResultData list(@ModelAttribute WxLegionActivityUser wxLegionActivityUser, Integer pageNum, Integer pageSize) { | |||
| if (null == wxLegionActivityUser) wxLegionActivityUser = new WxLegionActivityUser(); | |||
| if(wxLegionActivityUser.getActivityId() == null){ | |||
| return new ResultData(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityUser.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityUser.setSortColumns(SortField.CreateDate_DESC); | |||
| wxLegionActivityUser.setMerchantId(getLoginBUser().getMerchantId()); | |||
| final PageInfo<WxLegionActivityUser> page = wxLegionActivityUserService.listAsPage(wxLegionActivityUser, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("新增修改接口") | |||
| @PostMapping("saveOrUpdate") | |||
| public ResultData saveOrUpdate(@RequestBody WxLegionActivityUser wxLegionActivityUser) { | |||
| if(wxLegionActivityUser.getActivityId() == null){ | |||
| return new ResultData(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| if(StringUtil.isBlank(wxLegionActivityUser.getPhone())){ | |||
| return new ResultData(Result.ERROR,"客户手机号不能为空"); | |||
| } | |||
| if(StringUtil.isBlank(wxLegionActivityUser.getVipNum())){ | |||
| return new ResultData(Result.ERROR,"vip卡号不能为空"); | |||
| } | |||
| TenantEntity tenantEntity = getTenantInfo(); | |||
| wxLegionActivityUser.updateTenantInfo(tenantEntity); | |||
| wxLegionActivityUser.setCreateBy(getMerchantBUserId()); | |||
| wxLegionActivityUser.setMerchantId(getLoginBUser().getMerchantId()); | |||
| wxLegionActivityUserService.saveOrUpdate(wxLegionActivityUser); | |||
| return new ResultData(); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("查询当前信息详情") | |||
| @GetMapping("getInfoById") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getInfoById(Long id) { | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| WxLegionActivityUser user = wxLegionActivityUserService.getById(id, tenantInfo.getTenantId()); | |||
| return new ResultData(user); | |||
| } | |||
| @ApiVersion(group = SwaggerConstant.V_2_0_0) | |||
| @ApiOperation("通过手机号查询") | |||
| @GetMapping("getByPhone") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "id", value = "主键id", dataType = "Long", paramType = "query", required = true)}) | |||
| public ResultData getInfoById(@ModelAttribute WxLegionActivityUser wxLegionActivityUser) { | |||
| if(wxLegionActivityUser.getActivityId() == null){ | |||
| return new ResultData(Result.ERROR,"活动ID不能为空"); | |||
| } | |||
| if(StringUtil.isBlank(wxLegionActivityUser.getPhone())){ | |||
| return new ResultData(Result.ERROR,"客户手机号不能为空"); | |||
| } | |||
| TenantEntity tenantInfo = getTenantInfo(); | |||
| wxLegionActivityUser.updateTenantInfo(tenantInfo); | |||
| wxLegionActivityUser.setStatus(EnumLegionActivityUserStatus.VALID.getCode()); | |||
| WxLegionActivityUser user = wxLegionActivityUserService.selectOne(wxLegionActivityUser); | |||
| if(user == null){ | |||
| return new ResultData(Result.ERROR,"未查询到用户,请先绑定VIP"); | |||
| } | |||
| return new ResultData(user); | |||
| } | |||
| } | |||
| @@ -0,0 +1,14 @@ | |||
| package com.iformall.domain.vo; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| @Data | |||
| public class LegionActivityCount implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Long activityId; | |||
| private Integer count; | |||
| } | |||
| @@ -0,0 +1,33 @@ | |||
| package com.iformall.domain.vo; | |||
| import cn.afterturn.easypoi.excel.annotation.Excel; | |||
| import com.baomidou.mybatisplus.annotation.TableField; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| @Data | |||
| public class LegionActivityMerchantStatistics implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Long merchantId; | |||
| @Excel(name="商铺名称",width = 20,orderNum = "1") | |||
| private String merchantName; | |||
| @Excel(name="商铺号",width = 20,orderNum = "2") | |||
| private String shopNumber; | |||
| @Excel(name="售卡数量",width = 20,orderNum = "3") | |||
| private Integer userCount; | |||
| @Excel(name="签单数量",width = 20,orderNum = "4") | |||
| private Integer orderCount; | |||
| // @Excel(name="带单数量",width = 20,orderNum = "5") | |||
| private Integer sellOrderCount; | |||
| @Excel(name="军团外带单",width = 20,orderNum = "6") | |||
| private Integer difLegion; | |||
| @Excel(name="非原军团内部带单",width = 20,orderNum = "7") | |||
| private Integer difUnion; | |||
| @Excel(name="原军团内部带单",width = 20,orderNum = "8") | |||
| private Integer eqUnion; | |||
| @Excel(name="得分",width = 20,orderNum = "9") | |||
| private Integer totalScore; | |||
| } | |||
| @@ -0,0 +1,15 @@ | |||
| package com.iformall.domain.vo; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| import java.math.BigDecimal; | |||
| @Data | |||
| public class LegionActivityOrderStatistics implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Integer auditStatus; | |||
| private Integer count; | |||
| } | |||
| @@ -0,0 +1,15 @@ | |||
| package com.iformall.domain.vo; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| @Data | |||
| public class LegionActivityOrderTypeStatistics implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Long merchantId; | |||
| private Integer orderType; | |||
| private Integer count; | |||
| } | |||
| @@ -0,0 +1,58 @@ | |||
| package com.iformall.domain.vo; | |||
| import cn.afterturn.easypoi.excel.annotation.Excel; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| import java.math.BigDecimal; | |||
| import java.util.Date; | |||
| @Data | |||
| public class LegionActivitySellOrder implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Long cusId; | |||
| private String cusPhone; | |||
| @Excel(name = "VIP卡号", width = 20, orderNum = "4") | |||
| private String cusVipNum; | |||
| private Long cusMerchantId; | |||
| @Excel(name="卡属商户",width = 20,orderNum = "6") | |||
| private String cusMerchantName; | |||
| @Excel(name="卡属商铺号",width = 20,orderNum = "7") | |||
| private String cusShopNumber; | |||
| private Long cusLegionId; | |||
| @Excel(name = "卡属军团", width = 20, orderNum = "2") | |||
| private String cusLegionName; | |||
| private Long cusUnionId; | |||
| // @Excel(name = "卡属派系", width = 20, orderNum = "3") | |||
| private String cusUnionName; | |||
| private Date cusCreateDate; | |||
| private Long orderId; | |||
| @Excel(name = "订单号", width = 20, orderNum = "15") | |||
| private String orderNo; | |||
| private BigDecimal orderMoney; | |||
| private Long orderMerchantId; | |||
| @Excel(name = "订单商户", width = 20, orderNum = "13") | |||
| private String orderMerchantName; | |||
| @Excel(name = "订单商户号", width = 20, orderNum = "14") | |||
| private String orderShopNumber; | |||
| private Long orderLegionId; | |||
| @Excel(name = "订单军团", width = 20, orderNum = "11") | |||
| private String orderLegionName; | |||
| private Long orderUnionId; | |||
| // @Excel(name = "订单派系", width = 20, orderNum = "12") | |||
| private String orderUnionName; | |||
| private Integer orderType; | |||
| @Excel(name = "时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "1") | |||
| private Date orderCreateDate; | |||
| @Excel(name = "带单积分", width = 20, orderNum = "16") | |||
| private Integer score; | |||
| } | |||
| @@ -0,0 +1,14 @@ | |||
| package com.iformall.domain.vo; | |||
| import lombok.Data; | |||
| import java.io.Serializable; | |||
| @Data | |||
| public class LegionActivityUserStatistics implements Serializable { | |||
| private static final long serialVersionUID = 1L; | |||
| private Long merchantId; | |||
| private Integer count; | |||
| } | |||
| @@ -0,0 +1,36 @@ | |||
| package com.iformall.enums; | |||
| /** | |||
| * @author gongbiao | |||
| */ | |||
| public enum EnumLegionActivityOrderLegionType { | |||
| EQ_LEGION(1, "团内"), | |||
| DIF_LEGION(2, "团外"),; | |||
| public static EnumLegionActivityOrderLegionType getEnum(Integer code) { | |||
| for (EnumLegionActivityOrderLegionType value : values()) { | |||
| if (value.getCode().equals(code)) { | |||
| return value; | |||
| } | |||
| } | |||
| return null; | |||
| } | |||
| private Integer code; | |||
| private String message; | |||
| EnumLegionActivityOrderLegionType(Integer code, String message) { | |||
| this.code = code; | |||
| this.message = message; | |||
| } | |||
| public Integer getCode() { | |||
| return code; | |||
| } | |||
| public String getMessage() { | |||
| return message; | |||
| } | |||
| } | |||
| @@ -0,0 +1,38 @@ | |||
| package com.iformall.enums; | |||
| /** | |||
| * @author gongbiao | |||
| */ | |||
| public enum EnumLegionActivityOrderStatus { | |||
| AUDTING(0, "审核中"), | |||
| AUDI_SUCCESS(1, "审批通过"), | |||
| AUDT_FAIL(2, "审批拒绝"), | |||
| INVALID(3, "失效"),; | |||
| public static EnumLegionActivityOrderStatus getEnum(Integer code) { | |||
| for (EnumLegionActivityOrderStatus value : values()) { | |||
| if (value.getCode().equals(code)) { | |||
| return value; | |||
| } | |||
| } | |||
| return null; | |||
| } | |||
| private Integer code; | |||
| private String message; | |||
| EnumLegionActivityOrderStatus(Integer code, String message) { | |||
| this.code = code; | |||
| this.message = message; | |||
| } | |||
| public Integer getCode() { | |||
| return code; | |||
| } | |||
| public String getMessage() { | |||
| return message; | |||
| } | |||
| } | |||
| @@ -0,0 +1,58 @@ | |||
| package com.iformall.enums; | |||
| import java.util.ArrayList; | |||
| import java.util.List; | |||
| /** | |||
| * @author gongbiao | |||
| */ | |||
| public enum EnumLegionActivityOrderType { | |||
| SIGN_ORDER(0, "签单"), | |||
| DIF_LEGION(1, "外部军团带单"), | |||
| DIF_UNION(2, "内部军团不同联盟带单"), | |||
| EQ_UNION(3, "内部军团相同联盟带单"), | |||
| NOT_UNION(4, "内部军团无联盟带单"),; | |||
| public static EnumLegionActivityOrderType getEnum(Integer code) { | |||
| for (EnumLegionActivityOrderType value : values()) { | |||
| if (value.getCode().equals(code)) { | |||
| return value; | |||
| } | |||
| } | |||
| return null; | |||
| } | |||
| private Integer code; | |||
| private String message; | |||
| EnumLegionActivityOrderType(Integer code, String message) { | |||
| this.code = code; | |||
| this.message = message; | |||
| } | |||
| public static List<Integer> getDifUnion() { | |||
| List<Integer> result = new ArrayList<Integer>(); | |||
| result.add(DIF_LEGION.getCode()); | |||
| result.add(DIF_UNION.getCode()); | |||
| result.add(NOT_UNION.getCode()); | |||
| return result; | |||
| } | |||
| public static List<Integer> getEqLegion() { | |||
| List<Integer> result = new ArrayList<>(); | |||
| result.add(DIF_UNION.getCode()); | |||
| result.add(EQ_UNION.getCode()); | |||
| result.add(NOT_UNION.getCode()); | |||
| return result; | |||
| } | |||
| public Integer getCode() { | |||
| return code; | |||
| } | |||
| public String getMessage() { | |||
| return message; | |||
| } | |||
| } | |||
| @@ -0,0 +1,36 @@ | |||
| package com.iformall.enums; | |||
| /** | |||
| * @author gongbiao | |||
| */ | |||
| public enum EnumLegionActivityOrderUnionType { | |||
| EQ_UNION(1, "原联盟"), | |||
| DIF_UNION(2, "非联盟"),; | |||
| public static EnumLegionActivityOrderUnionType getEnum(Integer code) { | |||
| for (EnumLegionActivityOrderUnionType value : values()) { | |||
| if (value.getCode().equals(code)) { | |||
| return value; | |||
| } | |||
| } | |||
| return null; | |||
| } | |||
| private Integer code; | |||
| private String message; | |||
| EnumLegionActivityOrderUnionType(Integer code, String message) { | |||
| this.code = code; | |||
| this.message = message; | |||
| } | |||
| public Integer getCode() { | |||
| return code; | |||
| } | |||
| public String getMessage() { | |||
| return message; | |||
| } | |||
| } | |||
| @@ -0,0 +1,56 @@ | |||
| package com.iformall.enums; | |||
| import java.util.ArrayList; | |||
| import java.util.List; | |||
| /** | |||
| * @author gongbiao | |||
| */ | |||
| public enum EnumLegionActivityStatus { | |||
| DRAFT(0, "草稿"), | |||
| ON_LINE(1, "已上架"), | |||
| OFF_LINE(2, "已下架"), | |||
| EXPIRE(3, "已过期") | |||
| ; | |||
| public static EnumLegionActivityStatus getEnum(Integer code) { | |||
| for (EnumLegionActivityStatus value : values()) { | |||
| if (value.getCode().equals(code)) { | |||
| return value; | |||
| } | |||
| } | |||
| return null; | |||
| } | |||
| private Integer code; | |||
| private String message; | |||
| EnumLegionActivityStatus(Integer code, String message) { | |||
| this.code = code; | |||
| this.message = message; | |||
| } | |||
| public static List<Integer> getOffLine() { | |||
| List<Integer> offLine = new ArrayList<Integer>(); | |||
| offLine.add(DRAFT.code); | |||
| offLine.add(OFF_LINE.code); | |||
| return offLine; | |||
| } | |||
| public static List<Integer> getLine() { | |||
| List<Integer> line = new ArrayList<Integer>(); | |||
| line.add(ON_LINE.code); | |||
| line.add(OFF_LINE.code); | |||
| return line; | |||
| } | |||
| public Integer getCode() { | |||
| return code; | |||
| } | |||
| public String getMessage() { | |||
| return message; | |||
| } | |||
| } | |||
| @@ -0,0 +1,36 @@ | |||
| package com.iformall.enums; | |||
| /** | |||
| * @author gongbiao | |||
| */ | |||
| public enum EnumLegionActivityUserStatus { | |||
| VALID(0, "有效"), | |||
| INVALID(1, "失效"),; | |||
| public static EnumLegionActivityUserStatus getEnum(Integer code) { | |||
| for (EnumLegionActivityUserStatus value : values()) { | |||
| if (value.getCode().equals(code)) { | |||
| return value; | |||
| } | |||
| } | |||
| return null; | |||
| } | |||
| private Integer code; | |||
| private String message; | |||
| EnumLegionActivityUserStatus(Integer code, String message) { | |||
| this.code = code; | |||
| this.message = message; | |||
| } | |||
| public Integer getCode() { | |||
| return code; | |||
| } | |||
| public String getMessage() { | |||
| return message; | |||
| } | |||
| } | |||