diff --git a/mallink-swagger/src/main/java/com/iformall/constant/SwaggerConstant.java b/mallink-swagger/src/main/java/com/iformall/constant/SwaggerConstant.java index 7350e9c64..819377219 100644 --- a/mallink-swagger/src/main/java/com/iformall/constant/SwaggerConstant.java +++ b/mallink-swagger/src/main/java/com/iformall/constant/SwaggerConstant.java @@ -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"; } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java new file mode 100644 index 000000000..3a873bdd2 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityController.java @@ -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 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 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 legionConfigList = wxLegionActivityConfigService.findLegionList(id,tenantInfo.getTenantId()); + return new ResultData(legionConfigList); + } + +} diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java new file mode 100644 index 000000000..450fb0516 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxLegionActivityOrderController.java @@ -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 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 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 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 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); + } + +} diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityController.java new file mode 100644 index 000000000..e09a10b97 --- /dev/null +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityController.java @@ -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 page = wxLegionActivityService.listAsPage(wxLegionActivity, false,pageNum, pageSize); + return new ResultData(page); + } + +} diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java new file mode 100644 index 000000000..2ac66d9c2 --- /dev/null +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityOrderController.java @@ -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 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 statisticsMap = wxLegionActivityOrderService.getStatistics(wxLegionActivityOrder); + return new ResultData(statisticsMap); + } + + +} diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityUserController.java new file mode 100644 index 000000000..0980d8975 --- /dev/null +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxLegionActivityUserController.java @@ -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 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); + } + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityCount.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityCount.java new file mode 100644 index 000000000..2fdffedeb --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityCount.java @@ -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; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityMerchantStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityMerchantStatistics.java new file mode 100644 index 000000000..fdfae9349 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityMerchantStatistics.java @@ -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; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderStatistics.java new file mode 100644 index 000000000..797a20e0e --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderStatistics.java @@ -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; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java new file mode 100644 index 000000000..6a2a9c570 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityOrderTypeStatistics.java @@ -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; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivitySellOrder.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivitySellOrder.java new file mode 100644 index 000000000..a7e9e8980 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivitySellOrder.java @@ -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; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityUserStatistics.java b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityUserStatistics.java new file mode 100644 index 000000000..cdc5ca7d1 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/LegionActivityUserStatistics.java @@ -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; +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderLegionType.java b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderLegionType.java new file mode 100644 index 000000000..83a42c35d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderLegionType.java @@ -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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderStatus.java new file mode 100644 index 000000000..92668091c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderStatus.java @@ -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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderType.java b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderType.java new file mode 100644 index 000000000..7f0adc87e --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderType.java @@ -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 getDifUnion() { + List result = new ArrayList(); + result.add(DIF_LEGION.getCode()); + result.add(DIF_UNION.getCode()); + result.add(NOT_UNION.getCode()); + return result; + } + + public static List getEqLegion() { + List 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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderUnionType.java b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderUnionType.java new file mode 100644 index 000000000..7388c26a2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityOrderUnionType.java @@ -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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityStatus.java new file mode 100644 index 000000000..f38babea4 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityStatus.java @@ -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 getOffLine() { + List offLine = new ArrayList(); + offLine.add(DRAFT.code); + offLine.add(OFF_LINE.code); + return offLine; + } + + public static List getLine() { + List line = new ArrayList(); + line.add(ON_LINE.code); + line.add(OFF_LINE.code); + return line; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityUserStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityUserStatus.java new file mode 100644 index 000000000..d9297fbe2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumLegionActivityUserStatus.java @@ -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; + } +}