From c7cb86db957dc7fbf6ca30270a71a43f5b31eccf Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期三, 13 四月 2022 09:29:03 +0800 Subject: [PATCH] 电动车商城-拼团活动接口开发 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java | 10 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml | 22 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java | 3 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java | 13 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java | 7 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java | 17 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java | 4 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java | 6 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java | 4 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java | 5 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java | 12 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java | 6 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java | 4 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java | 287 ++++++++++++--- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java | 7 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml | 105 +++-- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java | 8 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java | 6 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java | 7 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java | 2 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java | 32 + springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityActivityApi.java | 102 +++++ springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartFightOrderDto.java | 49 ++ springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java | 5 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java | 2 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml | 24 + springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java | 41 ++ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java | 17 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java | 226 ++++++++++++ 30 files changed, 917 insertions(+), 118 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityActivityApi.java new file mode 100644 index 0000000..48d3652 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityActivityApi.java @@ -0,0 +1,102 @@ +package com.panzhihua.applets.api; + +import com.panzhihua.common.controller.BaseController; +import com.panzhihua.common.model.dtos.common.AddComBatteryCommodityActivityDto; +import com.panzhihua.common.model.dtos.common.EditComBatteryCommodityActivityDto; +import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityActivityDto; +import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityOrderCollageTeamDto; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.common.ComBatteryCommodityActivityVo; +import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo; +import com.panzhihua.common.service.community.ComBatteryCommodityActivityFeign; +import com.panzhihua.common.service.community.ComBatteryCommodityOrderCollageTeamFeign; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Date; + +/** + * title: 电动车商城-商家活动表(ComBatteryCommodityActivity) 表控制层 + * <p> + * projectName 成都呐喊信息技术有限公司-智慧社区项目 + * <p> + * description: 电动车商城-商家活动表 + * + * @author lyq + * @date 2022-03-29 13:17:38 + */ +@Slf4j +@Api(tags = {"电动车商城-活动管理"}) +@RestController +@RequestMapping("/comBatteryCommodityActivity") +public class ComBatteryCommodityActivityApi extends BaseController { + + @Resource + private ComBatteryCommodityActivityFeign comBatteryCommodityActivityService; + @Resource + private ComBatteryCommodityOrderCollageTeamFeign orderCollageTeamService; + + /** + * description queryByPage 分页查询 + * + * @param comBatteryCommodityActivity 请求参数 + * @return 分页查询返回参数 + * @author lyq + * @date 2022-03-29 13:17:38 + */ + @ApiOperation(value = "分页查询活动列表",response = ComBatteryCommodityActivityVo.class) + @PostMapping("/page") + public R queryByPage(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) { + comBatteryCommodityActivity.setStatus(1); + return this.comBatteryCommodityActivityService.queryByPage(comBatteryCommodityActivity); + } + + /** + * description detailById 查询详情 + * + * @param id 主键id + * @return 详情数据 + * @author lyq + * @date 2022-03-29 13:17:38 + */ + @ApiOperation(value = "查询活动详情",response = ComBatteryCommodityActivityVo.class) + @GetMapping("/detail") + public R detailById(@RequestParam("id") Long id) { + return this.comBatteryCommodityActivityService.detailById(id); + } + + /** + * description queryByPage 查询列表 + * + * @param comBatteryCommodityActivity 请求参数 + * @return 列表数据 + * @author lyq + * @date 2022-03-29 13:17:38 + */ + @ApiOperation(value = "查询活动列表",response = ComBatteryCommodityActivityVo.class) + @PostMapping("/list") + public R queryByList(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) { + comBatteryCommodityActivity.setStatus(1); + return this.comBatteryCommodityActivityService.queryByList(comBatteryCommodityActivity); + } + + @ApiOperation(value = "查询拼团团队列表",response = ComBatteryCommodityOrderCollageTeamVo.class) + @PostMapping("/assorted/dough") + public R queryByAssortedDoughList(@RequestBody PageComBatteryCommodityOrderCollageTeamDto orderCollageTeamDto) { + orderCollageTeamDto.setStatus(1); + return this.orderCollageTeamService.queryByPage(orderCollageTeamDto); + } + + @ApiOperation(value = "查询拼团团队详情",response = ComBatteryCommodityOrderCollageTeamVo.class) + @PostMapping("/assorted/dough/detail") + public R queryByAssortedDoughDetail(@RequestParam("id") Long id) { + return this.orderCollageTeamService.detailById(id); + } + + + +} + diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java index 24af561..b819486 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java +++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java @@ -151,6 +151,44 @@ } } + @PostMapping("/batteryActivityPayNotify") + public void batteryActivityPayNotify(HttpServletRequest request, HttpServletResponse response) { + log.info("购买活动商品微信支付回调start"); + String inputLine = ""; + String notityXml = ""; + try { + while ((inputLine = request.getReader().readLine()) != null) { + notityXml += inputLine; + } + // 关闭流 + request.getReader().close(); + log.info("购买活动商品微信回调内容信息:" + notityXml); + // 解析成Json + org.json.JSONObject xmlJson = XML.toJSONObject(notityXml); + if (StringUtils.isNotEmpty(xmlJson.toString())) { + JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString()); + // 成功支付订单 + if (SUCCESS.equals(resultData.getString("result_code")) && SUCCESS.equals(resultData.getString("result_code"))){ + WxPayNotifyOrderDTO notifyOrderDTO = getWxNotify(resultData); + + // 根据订单号修改订单信息 + commodityOrderFeign.batteryActivityPayNotify(notifyOrderDTO); + // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功 + PrintWriter writer = response.getWriter(); + // 返回 + writer.print(getWxSuccessString()); + } else {// 未成功支付订单 + // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功 + PrintWriter writer = response.getWriter(); + // 返回 + writer.print(getWxFailString()); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + } + /** * 将微信支付回调的请求参数转义为对象 * @param resultData 微信支付回调请求参数 @@ -174,6 +212,9 @@ // 现金支付金额 String cashFee = resultData.getString("cash_fee"); notifyOrderDTO.setCashFee(cashFee); + //附加数据 + String attach = resultData.getString("attach"); + notifyOrderDTO.setAttach(attach); return notifyOrderDTO; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java index e9e5a06..029a090 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java @@ -32,4 +32,8 @@ * 电动车商城购买商品支付回调地址 */ public static final String BATTERY_STORE_PAY_NOTIFY_URL = "/api/applets/wx/batteryPayNotify"; + /** + * 电动车商城活动订单支付回调地址 + */ + public static final String BATTERY_STORE_ACTIVITY_PAY_NOTIFY_URL = "/api/applets/wx/batteryActivityPayNotify"; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java index c8234f4..4e33da1 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java @@ -132,6 +132,10 @@ @ApiModelProperty(value = "更新人id") private Long updateBy; - + /** + * 商品规格id + */ + @ApiModelProperty(value = "商品规格id") + private Long specsId; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java index 7dac10e..f03873e 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java @@ -27,7 +27,7 @@ * 活动id */ @ApiModelProperty(value = "活动id") - private Long acctivityId; + private Long activityId; /** * 订单id diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java index bd63b9a..53faa81 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java @@ -120,5 +120,10 @@ @ApiModelProperty(value = "更新人id") private Long updateBy; + /** + * 商品规格id + */ + @ApiModelProperty(value = "商品规格id") + private Long specsId; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java index 2e36cad..6a807ca 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java @@ -31,7 +31,7 @@ * 活动id */ @ApiModelProperty(value = "活动id") - private Long acctivityId; + private Long activityId; /** * 订单id */ diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java index dac3bae..0d5a8c0 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java @@ -31,7 +31,7 @@ * 活动id */ @ApiModelProperty(value = "活动id") - private Long acctivityId; + private Long activityId; /** * 订单id */ diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartFightOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartFightOrderDto.java new file mode 100644 index 0000000..fef5a64 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartFightOrderDto.java @@ -0,0 +1,49 @@ +package com.panzhihua.common.model.dtos.common; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author lyq + * 发起拼团订单请求参数 + */ +@Data +@ApiModel("发起拼团订单请求参数") +public class StartFightOrderDto { + + @ApiModelProperty(value = "用户id",hidden = true) + private Long userId; + + @ApiModelProperty(value = "用户openId",hidden = true) + private String openId; + + @ApiModelProperty(value = "商品id") + private Long commodityId; + + @ApiModelProperty(value = "活动id") + private Long activityId; + + @ApiModelProperty(value = "用户收货地址id") + private Long addressId; + + @ApiModelProperty(value = "购买商品数量") + private Integer count; + + @ApiModelProperty(value = "订单备注") + private String remark; + + @ApiModelProperty(value = "拼团类型(1.开团 2.参团)") + private Integer type; + + @ApiModelProperty(value = "拼团团队id") + private Long teamId; + + /** + * 拼团类型(1.开团 2.参团) + */ + public interface Type{ + int KT = 1; + int PT = 2; + } +} diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java index 7d5437d..7ebfd50 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java @@ -25,4 +25,7 @@ @ApiModelProperty(value = "支付返回参数信息") private String result; + + @ApiModelProperty(value = "支付附加数据") + private String attach; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java index a4b5c03..4a255ef 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java @@ -131,4 +131,10 @@ @ApiModelProperty(value = "商户名称") private String storeName; + + @ApiModelProperty(value = "商户规格id") + private Long specsId; + + @ApiModelProperty(value = "商户规格名称") + private Long specsName; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java index c4df5c3..94be7e3 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java @@ -60,4 +60,9 @@ @ApiModelProperty(value = "创建人id") private Long createBy; + @ApiModelProperty(value = "用户头像") + private String images; + + @ApiModelProperty(value = "用户昵称") + private String nickName; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java index 3925f68..8da3286 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java @@ -1,6 +1,7 @@ package com.panzhihua.common.model.vos.common; import java.util.Date; +import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -31,7 +32,7 @@ * 活动id */ @ApiModelProperty(value = "活动id") - private Long acctivityId; + private Long activityId; /** * 订单id */ @@ -60,4 +61,18 @@ @ApiModelProperty(value = "创建时间") private Date createAt; + @ApiModelProperty(value = "已拼人数") + private Integer spelledNum; + + @ApiModelProperty(value = "成团人数") + private Integer collagePeopleNum; + + @ApiModelProperty(value = "团长头像") + private String images; + + @ApiModelProperty(value = "团长昵称") + private String nickName; + + @ApiModelProperty(value = "拼团人员列表") + private List<ComBatteryCommodityOrderCollageTeamPeopleVo> orderCollageTeamPeopleList; } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java index 1460a43..5eccd59 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java @@ -141,4 +141,12 @@ */ @PostMapping("/deliver") R orderDeliver(@RequestBody OrderDeliverAdminDto deliverAdminDto); + + /** + * 电动车商城购买活动商品支付回调 + * @param notifyOrderDTO 请求参数 + * @return 购买商品支付回调 + */ + @PostMapping("/batteryActivityPayNotify") + R batteryActivityPayNotify(@RequestBody WxPayNotifyOrderDTO notifyOrderDTO); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java index e45714e..c47e924 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java @@ -17,7 +17,7 @@ public class WxPayUtils { public static String getUnifiedorder(String appid, String mchId, String payKey, String notifyUrl, String body, - String openid, String outTradeNo, BigDecimal money) { + String openid, String outTradeNo, BigDecimal money,String attach) { String nonceStr = PayUtil.makeUUID(32); SortedMap<Object, Object> params = new TreeMap<>(); params.put("appid", appid); @@ -26,6 +26,10 @@ params.put("nonce_str", nonceStr); params.put("notify_url", notifyUrl); params.put("openid", openid); + //附加数据 + if(StringUtils.isNotEmpty(attach)){ + params.put("attach", attach); + } params.put("out_trade_no", outTradeNo);// 商品订单号 params.put("spbill_create_ip", PayUtil.getLocalIp());// 服务部署的ip params.put("total_fee", PayUtil.moneyToIntegerStr(money));// 费用的参数转型 diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java index b435dae..04edfcc 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java @@ -3,6 +3,7 @@ import com.panzhihua.service_community.service.ComBatteryCommodityActivityService; import com.panzhihua.common.model.dtos.common.*; import com.panzhihua.common.model.vos.R; +import com.panzhihua.service_community.service.ComBatteryCommodityOrderCollageTeamService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -23,6 +24,8 @@ @Resource private ComBatteryCommodityActivityService comBatteryCommodityActivityService; + @Resource + private ComBatteryCommodityOrderCollageTeamService orderCollageTeamService; /** * description queryByPage 分页查询 @@ -113,5 +116,14 @@ return this.comBatteryCommodityActivityService.updateStatus(id,status); } + /** + * 创建拼团订单 + * @param orderDto 请求参数 + * @return 创建订单结果 + */ + @PostMapping("/start/fight") + public R startFight(@RequestBody StartFightOrderDto orderDto){ + return this.orderCollageTeamService.startFight(orderDto); + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java index b2ac7d1..733572b 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java @@ -173,5 +173,15 @@ return this.comBatteryCommodityOrderService.orderDeliver(deliverAdminDto); } + /** + * 电动车商城购买活动商品支付回调 + * @param notifyOrderDTO 请求参数 + * @return 购买商品支付回调 + */ + @PostMapping("/batteryActivityPayNotify") + public R batteryActivityPayNotify(@RequestBody WxPayNotifyOrderDTO notifyOrderDTO){ + return this.comBatteryCommodityOrderService.batteryActivityPayNotify(notifyOrderDTO); + } + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java index 27877c5..5cf49ea 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java @@ -54,5 +54,12 @@ * @date 2022-03-29 16:07:08 */ List<ComBatteryCommodityOrderCollageTeamPeopleVo> queryAllByList(@Param("dto") PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople); + + /** + * 根据拼团团队id查询团队人员信息 + * @param teamId 团队id + * @return 团队人员信息 + */ + List<ComBatteryCommodityOrderCollageTeamPeopleVo> queryAllByTeamId(@Param("teamId") Long teamId); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java index 24a47c2..2919b33 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java @@ -87,7 +87,14 @@ * 更新人id */ private Long updateBy; - + /** + * 活动商品已卖出数量 + */ + private Integer commoditySaleNum; + /** + * 商品规格id + */ + private Long specsId; /** * 是否删除枚举(1.是 2.否) */ @@ -95,5 +102,13 @@ int YES = 1; int NO = 2; } + /** + * 状态(1.进行中 2.已下架 3.已结束) + */ + public interface Status{ + int JXZ = 1; + int YXJ = 2; + int YJS = 3; + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java index 3e4fcba..37fcc38 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java @@ -173,6 +173,11 @@ * 收货地区编码 */ private String receivingRegionCode; + + /** + * 拼团id + */ + private Long teamId; /** * 是否删除枚举(1.是 2.否) */ @@ -208,5 +213,32 @@ public interface PayType{ int WX = 1; } + + /** + * 活动状态(1.拼团活动 2.砍价活动 3.限时秒杀) + */ + public interface ActivityType{ + int PT = 1; + int KJ = 2; + int MS = 3; + } + + /** + * 拼团状态(1.拼团中 2.拼团成功 3.拼团失败) + */ + public interface CollageStatus{ + int PTZ = 1; + int PTCG = 2; + int PTSB = 3; + } + + /** + * 砍价状态(1.砍价中 2.砍价成功 3.砍价失败) + */ + public interface BargainStatus{ + int KJZ = 1; + int KJCG = 2; + int KJSB = 3; + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java index 4f2d228..82f36d4 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java @@ -21,7 +21,7 @@ /** * 活动id */ - private Long acctivityId; + private Long activityId; /** * 订单id */ @@ -42,7 +42,14 @@ * 创建时间 */ private Date createAt; - - + /** + * 状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款) + */ + public interface Status{ + int DDPT = 1; + int PTCG = 2; + int PTSB = 3; + int YTK = 4; + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java index bc55693..0d5181c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java @@ -75,4 +75,11 @@ */ R queryByList(PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam); + /** + * 创建拼团订单 + * @param orderDto 请求参数 + * @return 创建订单结果 + */ + R startFight(StartFightOrderDto orderDto); + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java index dc9bcc9..b4a057b 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java @@ -124,4 +124,11 @@ * @return 发货结果 */ R orderDeliver(OrderDeliverAdminDto deliverAdminDto); + + /** + * 电动车商城购买活动商品支付回调 + * @param notifyOrderDTO 请求参数 + * @return 购买商品支付回调 + */ + R batteryActivityPayNotify(WxPayNotifyOrderDTO notifyOrderDTO); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java index 726fa4c..4fa3e88 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java @@ -1,14 +1,30 @@ package com.panzhihua.service_community.service.impl; -import com.panzhihua.service_community.entity.ComBatteryCommodityOrderCollageTeam; -import com.panzhihua.service_community.dao.ComBatteryCommodityOrderCollageTeamMapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.panzhihua.common.constants.PayCpmstant; +import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo; +import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo; +import com.panzhihua.common.utlis.Snowflake; +import com.panzhihua.common.utlis.WxPayUtils; +import com.panzhihua.service_community.dao.*; +import com.panzhihua.service_community.entity.*; import com.panzhihua.service_community.service.ComBatteryCommodityOrderCollageTeamService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.service_community.service.ComBatteryTradeOrderService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import com.panzhihua.common.model.dtos.common.*; import com.panzhihua.common.model.vos.R; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * title: 电动车商城-拼团订单团队表表服务实现类 @@ -20,8 +36,40 @@ * @author lyq * @date 2022-03-29 16:06:58 */ +@Slf4j @Service("comBatteryCommodityOrderCollageTeamService") public class ComBatteryCommodityOrderCollageTeamServiceImpl extends ServiceImpl<ComBatteryCommodityOrderCollageTeamMapper, ComBatteryCommodityOrderCollageTeam> implements ComBatteryCommodityOrderCollageTeamService { + + @Resource + private ComBatteryCommodityActivityMapper commodityActivityMapper; + @Resource + private ComBatteryCommodityOrderCollageTeamMapper orderCollageTeamMapper; + @Resource + private ComBatteryCommodityOrderCollageTeamPeopleMapper orderCollageTeamPeopleMapper; + @Resource + private ComBatteryUserAddressMapper userAddressMapper; + @Resource + private SysUserMapper userMapper; + @Resource + private ComBatteryTradeOrderService tradeOrderService; + @Value("${min.app.isTest}") + private Boolean isTest; + @Value("${min.app.isRefundTest}") + private Boolean isRefundTest; + @Value("${min.app.appid}") + private String appid; + @Value("${min.app.payKey}") + private String payKey; + @Value("${min.app.mchId}") + private String mchId; + @Value("${min.app.currencyNotifyUrl}") + private String currencyNotifyUrl; + @Resource + private ComBatteryCommodityMapper commodityMapper; + @Resource + private ComBatteryCommoditySpecsMapper commoditySpecsMapper; + @Resource + private ComBatteryCommodityOrderMapper commodityOrderMapper; /** * description queryByPage 分页查询 @@ -101,7 +149,12 @@ */ @Override public R detailById(Long id) { - return R.ok(this.baseMapper.queryById(id)); + ComBatteryCommodityOrderCollageTeamVo orderCollageTeamVo = this.baseMapper.queryById(id); + if(orderCollageTeamVo != null){ + List<ComBatteryCommodityOrderCollageTeamPeopleVo> collageTeamPeopleList = orderCollageTeamPeopleMapper.queryAllByTeamId(id); + orderCollageTeamVo.setOrderCollageTeamPeopleList(collageTeamPeopleList); + } + return R.ok(orderCollageTeamVo); } /** @@ -116,4 +169,171 @@ public R queryByList(PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam) { return R.ok(this.baseMapper.queryAllByList(comBatteryCommodityOrderCollageTeam)); } + + /** + * 创建拼团订单 + * @param orderDto 请求参数 + * @return 创建订单结果 + */ + @Override + public synchronized R startFight(StartFightOrderDto orderDto) { + //查询拼团活动 + ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(orderDto.getActivityId()); + if(commodityActivity == null){ + return R.fail("未查询到拼团活动"); + } + if(commodityActivity.getStatus().equals(ComBatteryCommodityActivity.Status.YXJ)){ + return R.fail("该活动已下架"); + } + if(commodityActivity.getEndTime().getTime() - System.currentTimeMillis() <= 0 + || commodityActivity.getStatus().equals(ComBatteryCommodityActivity.Status.YJS)){ + return R.fail("该活动已结束"); + } + if(commodityActivity.getCommodityNum() <= commodityActivity.getCommoditySaleNum()){ + return R.fail("活动商品已售空"); + } + if(orderDto.getType().equals(StartFightOrderDto.Type.PT)){ + //判断该团队人数是否已满 + Integer count = orderCollageTeamPeopleMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeamPeople>().lambda() + .eq(ComBatteryCommodityOrderCollageTeamPeople::getTeamId,orderDto.getTeamId())); + if(count >= commodityActivity.getCollagePeopleNum()){ + return R.fail("拼团人数已满"); + } + //查询拼团团队 + ComBatteryCommodityOrderCollageTeam orderCollageTeam = orderCollageTeamMapper.selectById(orderDto.getTeamId()); + if(orderCollageTeam == null){ + return R.fail("该拼团不存在"); + } + if(!orderCollageTeam.getStatus().equals(ComBatteryCommodityOrderCollageTeam.Status.DDPT)){ + return R.fail("该拼团已成功"); + } + }else{ + Integer count = orderCollageTeamMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeam>().lambda() + .eq(ComBatteryCommodityOrderCollageTeam::getActivityId,orderDto.getActivityId()) + .eq(ComBatteryCommodityOrderCollageTeam::getStatus,ComBatteryCommodityOrderCollageTeam.Status.DDPT)); + if(count >= commodityActivity.getCollageNum()){ + return R.fail("当前正在拼团的数量已达到最大值,不可在开团"); + } + } + //查询商品 + ComBatteryCommodity commodity = commodityMapper.selectById(orderDto.getCommodityId()); + if(commodity == null){ + return R.fail("未查询到商品信息"); + } + //查询用户信息 + SysUser user = userMapper.selectById(orderDto.getUserId()); + if(user == null){ + return R.fail("未查询到用户信息"); + } + //查询商品规格信息 + ComBatteryCommoditySpecs commoditySpecs = commoditySpecsMapper.selectById(commodityActivity.getSpecsId()); + if(commoditySpecs == null){ + return R.fail("未查询到商品规格信息"); + } + if(commoditySpecs.getStock() < orderDto.getCount()){ + return R.fail("该商品库存不足,无法下单"); + } + //查询用户收货地址 + ComBatteryUserAddress userAddress = userAddressMapper.selectById(orderDto.getAddressId()); + if(userAddress == null){ + return R.fail("未查询到用户收货地址"); + } + Date nowDate = new Date(); + //初始化订单数据 + ComBatteryCommodityOrder commodityOrder = getCreateOrder(commodity,userAddress,user,commoditySpecs,orderDto,nowDate,commodityActivity); + Map<String,Object> resultMap = new HashMap<>(2); + if(commodityOrderMapper.insert(commodityOrder) > 0){ + //更新商品库存 + commoditySpecs.setStock(commoditySpecs.getStock() - orderDto.getCount()); + commoditySpecsMapper.updateById(commoditySpecs); + + //微信支付需要调取小程序微信支付 + String result = getWxPayResult(commodityOrder.getFinalAmount(),commodityOrder.getOpenId() + ,commodityOrder.getOrderNo(),"购买商品",orderDto.getType().toString()); + resultMap.put("payResult",result); + resultMap.put("orderId",commodityOrder.getId()); + // 添加微信支付交易流水 + String wxTradeOrderNo = "wx" + Snowflake.getId(); + tradeOrderService.addOrderTradeRecord(user.getUserId(), user.getOpenid(), wxTradeOrderNo, ComBatteryTradeOrder.PayType.WX, + commodityOrder.getFinalAmount(), ComBatteryTradeOrder.TradeType.DDC_SHOP, commodityOrder.getId(), + commodityOrder.getOrderNo(), user.getUserId(), nowDate); + } + return R.ok(resultMap); + } + + /** + * 小程序唤起微信支付 + * + * @param money + * 需要支付的金额 + * @param openId + * 用户唤起微信支付的openid + * @param orderNo + * 业务订单号 + * @param remark + * 交易备注 + * @return 小程序支付参数 + */ + private String getWxPayResult(BigDecimal money, String openId, String orderNo, String remark,String type) { + String result = ""; + // 将剩余金额调起微信支付 + if (isTest) { + money = BigDecimal.valueOf(0.01); + } + // 调用wx支付 + result = WxPayUtils.getUnifiedorder(appid, mchId, payKey, currencyNotifyUrl + PayCpmstant.BATTERY_STORE_ACTIVITY_PAY_NOTIFY_URL + , remark, openId, orderNo, money,type); + log.info("用户购买商品微信支付返回参数:" + result); + return result; + } + + /** + * 初始化订单数据 + * @param commodity 商品数据 + * @param userAddress 用户收货地址信息 + * @param user 用户数据 + * @param commoditySpecs 商品规格数据 + * @param orderDto 用户请求参数 + * @param nowDate 操作时间 + * @param commodityActivity 拼团活动数据 + * @return 初始化订单数据 + */ + public static ComBatteryCommodityOrder getCreateOrder(ComBatteryCommodity commodity, ComBatteryUserAddress userAddress + , SysUser user, ComBatteryCommoditySpecs commoditySpecs, StartFightOrderDto orderDto, Date nowDate + ,ComBatteryCommodityActivity commodityActivity){ + ComBatteryCommodityOrder commodityOrder = new ComBatteryCommodityOrder(); + commodityOrder.setUserId(user.getUserId()); + commodityOrder.setOpenId(user.getOpenid()); + commodityOrder.setStoreId(commodity.getStoreId()); + commodityOrder.setActivityId(commodityActivity.getId()); + commodityOrder.setCommodityId(commodity.getId()); + commodityOrder.setSpecsId(commoditySpecs.getId()); + commodityOrder.setOrderNo("PT" + Snowflake.getId()); + commodityOrder.setActivityType(commodityActivity.getType()); + commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFK); + commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.WZF); + commodityOrder.setIsDel(ComBatteryCommodityOrder.IsDel.NO); + commodityOrder.setPayType(ComBatteryCommodityOrder.PayType.WX); + commodityOrder.setCount(orderDto.getCount()); + commodityOrder.setPrice(commodityActivity.getPrice()); + commodityOrder.setAmount(commodityActivity.getPrice().multiply(BigDecimal.valueOf(orderDto.getCount()))); + commodityOrder.setFreight(commodity.getPostage()); + commodityOrder.setFinalAmount(commodityOrder.getAmount().add(commodityOrder.getFreight())); + commodityOrder.setCreateAt(nowDate); + commodityOrder.setCreateBy(user.getUserId()); + commodityOrder.setRemark(orderDto.getRemark()); + //收货地址 + commodityOrder.setAddressId(userAddress.getId()); + commodityOrder.setReceivingName(userAddress.getName()); + commodityOrder.setReceivingPhone(userAddress.getPhone()); + commodityOrder.setReceivingRegionCode(userAddress.getProvinceAdcode() + "-" + userAddress.getCityAdcode() + "-" + userAddress.getDistrictAdcode()); + commodityOrder.setReceivingRegion(userAddress.getProvinceName() + userAddress.getCityName() + userAddress.getDistrictName()); + commodityOrder.setReceivingAddress(userAddress.getAddress()); + if(orderDto.getTeamId() != null){ + commodityOrder.setTeamId(orderDto.getTeamId()); + } + return commodityOrder; + } + + } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java index 2d717fc..3b3c716 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java @@ -68,6 +68,12 @@ private String mchId; @Value("${min.app.currencyNotifyUrl}") private String currencyNotifyUrl; + @Resource + private ComBatteryCommodityOrderCollageTeamMapper orderCollageTeamMapper; + @Resource + private ComBatteryCommodityOrderCollageTeamPeopleMapper orderCollageTeamPeopleMapper; + @Resource + private ComBatteryCommodityActivityMapper commodityActivityMapper; /** * description queryByPage 分页查询 @@ -151,7 +157,7 @@ @Override public R detailById(Long id) { ComBatteryCommodityOrderVo commodityOrderVo = this.baseMapper.queryById(id); - if(commodityOrderVo != null){ + if (commodityOrderVo != null) { //查询商品信息 ComBatteryCommodityVo commodityVo = commodityMapper.queryById(commodityOrderVo.getCommodityId()); commodityOrderVo.setCommodityVo(commodityVo); @@ -180,8 +186,9 @@ /** * 修改订单收货地址 - * @param editOrderAddressDto 请求参数 - * @return 修改结果 + * + * @param editOrderAddressDto 请求参数 + * @return 修改结果 */ @Override public R updateOrderAddress(EditOrderAddressDto editOrderAddressDto) { @@ -195,8 +202,9 @@ /** * 修改订单物流信息 + * * @param editOrderLogisticsDto 请求参数 - * @return 修改结果 + * @return 修改结果 */ @Override public R updateOrderLogistics(EditOrderLogisticsDto editOrderLogisticsDto) { @@ -210,8 +218,9 @@ /** * 电动车商城购买商品支付回调 - * @param notifyOrderDTO 请求参数 - * @return 购买商品支付回调 + * + * @param notifyOrderDTO 请求参数 + * @return 购买商品支付回调 */ @Override public R batteryPayNotify(WxPayNotifyOrderDTO notifyOrderDTO) { @@ -221,7 +230,7 @@ String payNo = notifyOrderDTO.getWxTradeNo(); BigDecimal cashFee = new BigDecimal(notifyOrderDTO.getCashFee()); ComBatteryCommodityOrder commodityOrder = this.baseMapper.selectOne(new QueryWrapper<ComBatteryCommodityOrder>().lambda() - .eq(ComBatteryCommodityOrder::getOrderNo,orderNo)); + .eq(ComBatteryCommodityOrder::getOrderNo, orderNo)); if (commodityOrder == null) { log.error("用户购买商品订单微信支付回调错误,未查询到支付订单记录,支付订单号:" + orderNo); return R.fail("未查询到用户购买商品支付订单记录"); @@ -246,48 +255,49 @@ /** * 小程序用户创建订单 - * @param createOrderDto 请求参数 - * @return 创建结果 + * + * @param createOrderDto 请求参数 + * @return 创建结果 */ @Override public R appletsOrderCreate(UserCreateOrderDto createOrderDto) { //查询商品 ComBatteryCommodity commodity = commodityMapper.selectById(createOrderDto.getCommodityId()); - if(commodity == null){ + if (commodity == null) { return R.fail("未查询到商品信息"); } //查询商品规格信息 ComBatteryCommoditySpecs commoditySpecs = commoditySpecsMapper.selectById(createOrderDto.getSpecsId()); - if(commoditySpecs == null){ + if (commoditySpecs == null) { return R.fail("未查询到商品规格信息"); } //判断商品库存 - if(commoditySpecs.getStock() < createOrderDto.getCount()){ + if (commoditySpecs.getStock() < createOrderDto.getCount()) { return R.fail("您购买的商品库存不足"); } //查询用户收货地址 ComBatteryUserAddress userAddress = userAddressMapper.selectById(createOrderDto.getAddressId()); - if(userAddress == null){ + if (userAddress == null) { return R.fail("未查询到用户收货地址"); } //查询用户信息 SysUser user = userMapper.selectById(createOrderDto.getUserId()); - if(user == null){ + if (user == null) { return R.fail("未查询到用户信息"); } Date nowDate = new Date(); //初始化订单信息 - ComBatteryCommodityOrder commodityOrder = getCreateOrder(commodity,userAddress,user,commoditySpecs,createOrderDto,nowDate); - Map<String,Object> resultMap = new HashMap<>(2); - if(this.baseMapper.insert(commodityOrder) > 0){ + ComBatteryCommodityOrder commodityOrder = getCreateOrder(commodity, userAddress, user, commoditySpecs, createOrderDto, nowDate); + Map<String, Object> resultMap = new HashMap<>(2); + if (this.baseMapper.insert(commodityOrder) > 0) { //更新商品库存 commoditySpecs.setStock(commoditySpecs.getStock() - createOrderDto.getCount()); commoditySpecsMapper.updateById(commoditySpecs); //微信支付需要调取小程序微信支付 - String result = getWxPayResult(commodityOrder.getFinalAmount(),commodityOrder.getOpenId(),commodityOrder.getOrderNo(),"购买商品"); - resultMap.put("payResult",result); - resultMap.put("orderId",commodityOrder.getId()); + String result = getWxPayResult(commodityOrder.getFinalAmount(), commodityOrder.getOpenId(), commodityOrder.getOrderNo(), "购买商品"); + resultMap.put("payResult", result); + resultMap.put("orderId", commodityOrder.getId()); // 添加微信支付交易流水 String wxTradeOrderNo = "wx" + Snowflake.getId(); @@ -300,16 +310,17 @@ /** * 初始化订单数据 - * @param commodity 商品数据 - * @param userAddress 用户收货地址信息 - * @param user 用户数据 - * @param commoditySpecs 商品规格数据 - * @param createOrderDto 用户请求参数 - * @param nowDate 操作时间 - * @return 初始化订单数据 + * + * @param commodity 商品数据 + * @param userAddress 用户收货地址信息 + * @param user 用户数据 + * @param commoditySpecs 商品规格数据 + * @param createOrderDto 用户请求参数 + * @param nowDate 操作时间 + * @return 初始化订单数据 */ - private ComBatteryCommodityOrder getCreateOrder(ComBatteryCommodity commodity, ComBatteryUserAddress userAddress - , SysUser user, ComBatteryCommoditySpecs commoditySpecs, UserCreateOrderDto createOrderDto, Date nowDate){ + public static ComBatteryCommodityOrder getCreateOrder(ComBatteryCommodity commodity, ComBatteryUserAddress userAddress + , SysUser user, ComBatteryCommoditySpecs commoditySpecs, UserCreateOrderDto createOrderDto, Date nowDate) { ComBatteryCommodityOrder commodityOrder = new ComBatteryCommodityOrder(); commodityOrder.setUserId(user.getUserId()); commodityOrder.setOpenId(user.getOpenid()); @@ -342,14 +353,10 @@ /** * 小程序唤起微信支付 * - * @param money - * 需要支付的金额 - * @param openId - * 用户唤起微信支付的openid - * @param orderNo - * 业务订单号 - * @param remark - * 交易备注 + * @param money 需要支付的金额 + * @param openId 用户唤起微信支付的openid + * @param orderNo 业务订单号 + * @param remark 交易备注 * @return 小程序支付参数 */ private String getWxPayResult(BigDecimal money, String openId, String orderNo, String remark) { @@ -359,14 +366,16 @@ money = BigDecimal.valueOf(0.01); } // 调用wx支付 - result = WxPayUtils.getUnifiedorder(appid, mchId, payKey, currencyNotifyUrl + PayCpmstant.BATTERY_STORE_PAY_NOTIFY_URL, remark, openId, orderNo, money); + result = WxPayUtils.getUnifiedorder(appid, mchId, payKey, currencyNotifyUrl + PayCpmstant.BATTERY_STORE_PAY_NOTIFY_URL + , remark, openId, orderNo, money,null); log.info("用户购买商品微信支付返回参数:" + result); return result; } /** * 定时关闭5分钟未支付订单 - * @return 操作结果 + * + * @return 操作结果 */ @Override @Transactional(rollbackFor = Exception.class) @@ -374,19 +383,19 @@ log.info("定时器定时关闭超过30分钟未支付订单,并返回商品库存"); Date nowDate = new Date(); //获取当前时间减30分钟时间 - Date oldDate = DateUtils.addMinutes(nowDate,-5); + Date oldDate = DateUtils.addMinutes(nowDate, -5); List<ComBatteryCommodityOrder> commodityOrderList = this.baseMapper.selectList(new QueryWrapper<ComBatteryCommodityOrder>() - .lambda().eq(ComBatteryCommodityOrder::getStatus,ComBatteryCommodityOrder.Status.DFK) - .eq(ComBatteryCommodityOrder::getPayStatus,ComBatteryCommodityOrder.PayStatus.WZF) - .eq(ComBatteryCommodityOrder::getIsDel,ComBatteryCommodityOrder.IsDel.NO) - .lt(ComBatteryCommodityOrder::getCreateAt,oldDate)); + .lambda().eq(ComBatteryCommodityOrder::getStatus, ComBatteryCommodityOrder.Status.DFK) + .eq(ComBatteryCommodityOrder::getPayStatus, ComBatteryCommodityOrder.PayStatus.WZF) + .eq(ComBatteryCommodityOrder::getIsDel, ComBatteryCommodityOrder.IsDel.NO) + .lt(ComBatteryCommodityOrder::getCreateAt, oldDate)); commodityOrderList.forEach(commodityOrder -> { commodityOrder.setStatus(ComBatteryCommodityOrder.Status.YGB); commodityOrder.setUpdateAt(nowDate); this.baseMapper.updateById(commodityOrder); //归还库存 ComBatteryCommoditySpecs commoditySpecs = commoditySpecsMapper.selectById(commodityOrder.getSpecsId()); - if(commoditySpecs != null){ + if (commoditySpecs != null) { commoditySpecs.setStock(commoditySpecs.getStock() + commodityOrder.getCount()); commoditySpecs.setUpdateAt(nowDate); commoditySpecsMapper.updateById(commoditySpecs); @@ -397,14 +406,15 @@ /** * 电动车商城用户确认收货 - * @param id 订单id - * @param userId 用户id - * @return 确认结果 + * + * @param id 订单id + * @param userId 用户id + * @return 确认结果 */ @Override public R appletsOrderReceiving(Long id, Long userId) { ComBatteryCommodityOrder commodityOrder = this.baseMapper.selectById(id); - if(commodityOrder == null){ + if (commodityOrder == null) { return R.fail("未查询到订单信息"); } //确认收货 @@ -412,7 +422,7 @@ commodityOrder.setReceivingTime(new Date()); commodityOrder.setUpdateAt(new Date()); commodityOrder.setUpdateBy(userId); - if(this.baseMapper.updateById(commodityOrder) > 0){ + if (this.baseMapper.updateById(commodityOrder) > 0) { return R.ok(); } return R.fail(); @@ -420,34 +430,199 @@ /** * 后台订单发货 - * @param deliverAdminDto 请求参数 - * @return 发货结果 + * + * @param deliverAdminDto 请求参数 + * @return 发货结果 */ @Override public R orderDeliver(OrderDeliverAdminDto deliverAdminDto) { //查询订单 ComBatteryCommodityOrder commodityOrder = this.baseMapper.selectById(deliverAdminDto.getId()); - if(commodityOrder == null){ + if (commodityOrder == null) { return R.fail("未查询到订单信息"); } Date nowDate = new Date(); //判断操作类型 - if(deliverAdminDto.getType().equals(OrderDeliverAdminDto.Type.FH)){ + if (deliverAdminDto.getType().equals(OrderDeliverAdminDto.Type.FH)) { commodityOrder.setLogisticsCompany(deliverAdminDto.getLogisticsCompany()); commodityOrder.setLogisticsNo(deliverAdminDto.getLogisticsNo()); commodityOrder.setUpdateBy(deliverAdminDto.getUserId()); commodityOrder.setUpdateAt(nowDate); commodityOrder.setDeliveryTime(nowDate); commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DSH); - }else if(deliverAdminDto.getType().equals(OrderDeliverAdminDto.Type.XGWL)){ + } else if (deliverAdminDto.getType().equals(OrderDeliverAdminDto.Type.XGWL)) { commodityOrder.setLogisticsCompany(deliverAdminDto.getLogisticsCompany()); commodityOrder.setLogisticsNo(deliverAdminDto.getLogisticsNo()); commodityOrder.setUpdateBy(deliverAdminDto.getUserId()); commodityOrder.setUpdateAt(nowDate); } - if(this.baseMapper.updateById(commodityOrder) > 0){ + if (this.baseMapper.updateById(commodityOrder) > 0) { return R.ok(); } return R.fail(); } + + /** + * 电动车商城购买活动商品支付回调 + * + * @param notifyOrderDTO 请求参数 + * @return 购买商品支付回调 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public synchronized R batteryActivityPayNotify(WxPayNotifyOrderDTO notifyOrderDTO) { + Date payTime = DateUtils.stringToDate(notifyOrderDTO.getPayTime(), new SimpleDateFormat("yyyyMMddHHmmss")); + Date nowDate = new Date(); + String orderNo = notifyOrderDTO.getOrderTradeNo(); + String payNo = notifyOrderDTO.getWxTradeNo(); + BigDecimal cashFee = new BigDecimal(notifyOrderDTO.getCashFee()); + //查询该订单数据 + ComBatteryCommodityOrder commodityOrder = this.baseMapper.selectOne(new QueryWrapper<ComBatteryCommodityOrder>().lambda() + .eq(ComBatteryCommodityOrder::getOrderNo, orderNo)); + if (commodityOrder == null) { + log.error("用户购买商品订单微信支付回调错误,未查询到支付订单记录,支付订单号:" + orderNo); + return R.fail("未查询到用户购买商品支付订单记录"); + } + if (!commodityOrder.getPayStatus().equals(ComBatteryCommodityOrder.PayStatus.WZF)) { + log.error("用户购买商品订单微信支付回调错误,错误原因:支付订单状态已发生改变,不可重复回调,订单号:" + orderNo); + return R.fail("支付订单状态已发生改变,不可重复回调"); + } + //更新订单 + if (commodityOrder.getActivityId() != null) { + switch (commodityOrder.getActivityType()) { + case ComBatteryCommodityOrder.ActivityType.PT: + //拼团订单成功支付处理 + commodityOrder.setCollageStatus(ComBatteryCommodityOrder.CollageStatus.PTZ); + commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DPT); + ComBatteryCommodityOrderCollageTeam orderCollageTeam = null; + if(notifyOrderDTO.getAttach() != null && notifyOrderDTO.getAttach().equals("1")){ + //用户开团,创建团队信息 + orderCollageTeam = getOrderCollageTeam(commodityOrder,nowDate); + orderCollageTeamMapper.insert(orderCollageTeam); + }else{ + //用户参团,查询参加的团队信息 + orderCollageTeam = orderCollageTeamMapper.selectById(commodityOrder.getTeamId()); + //判断当前拼团人员是否已足够成团 + syncAssortedDoughStatus(orderCollageTeam.getId(),nowDate); + //判断当前拼团活动是否已完成 + syncAssortedDoughActivityStatus(commodityOrder.getActivityId(),nowDate); + } + if(orderCollageTeam != null){ + //创建用户开团人员记录 + ComBatteryCommodityOrderCollageTeamPeople orderCollageTeamPeople = getOrderCollageTeamPeople(commodityOrder.getUserId() + ,nowDate,orderCollageTeam,notifyOrderDTO.getAttach()); + orderCollageTeamPeopleMapper.insert(orderCollageTeamPeople); + } + break; + case ComBatteryCommodityOrder.ActivityType.KJ: + break; + case ComBatteryCommodityOrder.ActivityType.MS: + commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFH); + break; + default: + break; + } + } + // 更新微信支付流水记录 + tradeOrderService.renewPayTrade(commodityOrder.getId(), cashFee, notifyOrderDTO.getWxTradeNo(), payTime, nowDate); + + commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.YZF); + commodityOrder.setPayNo(payNo); + commodityOrder.setPayAmount(cashFee); + commodityOrder.setUpdateAt(nowDate); + commodityOrder.setPayTime(payTime); + this.baseMapper.updateById(commodityOrder); + return R.ok(); + } + + /** + * 初始化拼团团队数据 + * @param commodityOrder 用户订单数据 + * @param nowDate 操作时间 + * @return 拼团团队数据 + */ + private ComBatteryCommodityOrderCollageTeam getOrderCollageTeam(ComBatteryCommodityOrder commodityOrder,Date nowDate){ + ComBatteryCommodityOrderCollageTeam orderCollageTeam = new ComBatteryCommodityOrderCollageTeam(); + orderCollageTeam.setActivityId(commodityOrder.getActivityId()); + orderCollageTeam.setOrderId(commodityOrder.getId()); + orderCollageTeam.setOrderNo(commodityOrder.getOrderNo()); + orderCollageTeam.setUserId(commodityOrder.getUserId()); + orderCollageTeam.setStatus(ComBatteryCommodityOrderCollageTeam.Status.DDPT); + orderCollageTeam.setCreateAt(nowDate); + return orderCollageTeam; + } + + /** + * 初始化拼团团队人员数据 + * @param userId 用户id + * @param nowDate 操作时间 + * @param orderCollageTeam 拼团团队数据 + * @param type 拼团类型(1.开团 2.参团) + * @return 拼团团队人员数据 + */ + private ComBatteryCommodityOrderCollageTeamPeople getOrderCollageTeamPeople(Long userId + ,Date nowDate,ComBatteryCommodityOrderCollageTeam orderCollageTeam,String type){ + ComBatteryCommodityOrderCollageTeamPeople orderCollageTeamPeople = new ComBatteryCommodityOrderCollageTeamPeople(); + orderCollageTeamPeople.setUserId(userId); + orderCollageTeamPeople.setTeamId(orderCollageTeam.getId()); + orderCollageTeamPeople.setHeadUserId(orderCollageTeam.getUserId()); + orderCollageTeamPeople.setType(Integer.parseInt(type)); + orderCollageTeamPeople.setCreateAt(nowDate); + orderCollageTeamPeople.setCreateBy(userId); + return orderCollageTeamPeople; + } + + /** + * 同步拼团活动状态 + * @param activityId 活动id + */ + private void syncAssortedDoughActivityStatus(Long activityId,Date nowDate){ + ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(activityId); + if(commodityActivity != null){ + //查询该活动已成团数量 + Integer count = orderCollageTeamMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeam>().lambda() + .eq(ComBatteryCommodityOrderCollageTeam::getActivityId,activityId) + .eq(ComBatteryCommodityOrderCollageTeam::getStatus,ComBatteryCommodityOrderCollageTeam.Status.PTCG)); + if(count >= commodityActivity.getCollageNum()){ + //该活动已达到活动拼团数量,修改为已结束状态 + commodityActivity.setStatus(ComBatteryCommodityActivity.Status.YJS); + commodityActivity.setUpdateAt(nowDate); + commodityActivityMapper.updateById(commodityActivity); + } + } + } + + /** + * 判断当前拼团团队是否已满足拼团条件 + * @param teamId 拼团团队id + * @param nowDate 操作时间 + */ + private void syncAssortedDoughStatus(Long teamId,Date nowDate){ + //查询拼团团队id + ComBatteryCommodityOrderCollageTeam orderCollageTeam = orderCollageTeamMapper.selectById(teamId); + if(orderCollageTeam != null){ + ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(orderCollageTeam.getActivityId()); + if(commodityActivity != null){ + Integer count = orderCollageTeamPeopleMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeamPeople>() + .lambda().eq(ComBatteryCommodityOrderCollageTeamPeople::getTeamId,teamId)); + if(count >= commodityActivity.getCollageNum()){ + //拼团条件满足,将所有已拼单的用户的订单更新为待发货状态 + //更新拼团团队记录 + orderCollageTeam.setStatus(ComBatteryCommodityOrderCollageTeam.Status.PTCG); + orderCollageTeamMapper.updateById(orderCollageTeam); + //查询拼团订单并进行更新 + List<ComBatteryCommodityOrder> commodityOrderList = this.baseMapper.selectList(new QueryWrapper<ComBatteryCommodityOrder>().lambda() + .eq(ComBatteryCommodityOrder::getTeamId,teamId).eq(ComBatteryCommodityOrder::getStatus,ComBatteryCommodityOrder.Status.DPT) + .eq(ComBatteryCommodityOrder::getCollageStatus,ComBatteryCommodityOrder.CollageStatus.PTZ) + .eq(ComBatteryCommodityOrder::getActivityType,ComBatteryCommodityOrder.ActivityType.PT)); + commodityOrderList.forEach(commodityOrder -> { + commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFH); + commodityOrder.setCollageStatus(ComBatteryCommodityOrder.CollageStatus.PTCG); + commodityOrder.setUpdateAt(nowDate); + this.baseMapper.updateById(commodityOrder); + }); + } + } + } + } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java index fc2b009..8151e13 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java @@ -317,7 +317,7 @@ } // 调用wx支付 String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderCreateDTO.getOpenId(), - orderNo, money); + orderNo, money,null); log.info("微信支付返回参数:" + xml); shopOrderVO.setPayResult(xml); } catch (Exception e) { @@ -906,7 +906,7 @@ } // 调用wx支付 String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderPayDTO.getOpenId(), - orderDO.getOrderNo(), money); + orderDO.getOrderNo(), money,null); log.info("微信支付返回参数:" + xml); shopOrderVO.setPayResult(xml); } catch (Exception e) { diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java index 2b7eaa2..ab1a5e4 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java @@ -148,7 +148,7 @@ } // 调用wx支付 WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "签订租房合同", wxPayOrderVO.getOpenId(), - wxPayOrderVO.getOrderSn(), money); + wxPayOrderVO.getOrderSn(), money,null); return R.ok(); } catch (Exception e) { log.error("调用微信支付异常,异常原因:" + e.getMessage()); @@ -162,7 +162,7 @@ } // 调用wx支付 WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "定金支付", wxPayOrderVO.getOpenId(), - wxPayOrderVO.getOrderSn(), money); + wxPayOrderVO.getOrderSn(), money,null); return R.ok(); } catch (Exception e) { log.error("调用微信支付异常,异常原因:" + e.getMessage()); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml index 331b161..7a5b68a 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml @@ -8,6 +8,7 @@ <result property="name" column="name" jdbcType="VARCHAR"/> <result property="type" column="type" jdbcType="INTEGER"/> <result property="commodityId" column="commodity_id" jdbcType="INTEGER"/> + <result property="specsId" column="specs_id" jdbcType="INTEGER"/> <result property="storeId" column="store_id" jdbcType="INTEGER"/> <result property="status" column="status" jdbcType="INTEGER"/> <result property="isDel" column="is_del" jdbcType="INTEGER"/> @@ -44,6 +45,8 @@ cbca.create_by, cbca.update_at, cbca.update_by, + cbca.specs_id, + cbcs.`name` as specsName, cbc.`name` as commodityName, cbc.`code` as commodityCode, cbs.`name` as storeName @@ -51,6 +54,7 @@ com_battery_commodity_activity AS cbca left join com_battery_commodity as cbc on cbc.id = cbca.commodity_id left join com_battery_store as cbs on cbs.id = cbca.store_id + left join com_battery_commodity_specs as cbcs on cbcs.id = cbca.specs_id where cbca.id = #{id} </select> @@ -74,6 +78,8 @@ cbca.create_by, cbca.update_at, cbca.update_by, + cbca.specs_id, + cbcs.`name` as specsName, cbc.`name` as commodityName, cbc.`code` as commodityCode, cbs.`name` as storeName @@ -81,6 +87,7 @@ com_battery_commodity_activity AS cbca left join com_battery_commodity as cbc on cbc.id = cbca.commodity_id left join com_battery_store as cbs on cbs.id = cbca.store_id + left join com_battery_commodity_specs as cbcs on cbcs.id = cbca.specs_id <where> and cbca.is_del = 2 <if test="dto.id != null"> @@ -100,9 +107,9 @@ </if> <if test="dto.keyWord != null and dto.keyWord != ''"> and ( - cbca.`name` like concat ('%',#{statisticsAdminDTO.nickName},'%') or - cbc.`name` like concat ('%',#{statisticsAdminDTO.nickName},'%') or - cbc.`code` like concat ('%',#{statisticsAdminDTO.nickName},'%') + cbca.`name` like concat ('%',#{statisticsAdminDTO.keyWord},'%') or + cbc.`name` like concat ('%',#{statisticsAdminDTO.keyWord},'%') or + cbc.`code` like concat ('%',#{statisticsAdminDTO.keyWord},'%') ) </if> </where> @@ -129,6 +136,8 @@ cbca.create_by, cbca.update_at, cbca.update_by, + cbca.specs_id, + cbcs.`name` as specsName, cbc.`name` as commodityName, cbc.`code` as commodityCode, cbs.`name` as storeName @@ -136,6 +145,7 @@ com_battery_commodity_activity AS cbca left join com_battery_commodity as cbc on cbc.id = cbca.commodity_id left join com_battery_store as cbs on cbs.id = cbca.store_id + left join com_battery_commodity_specs as cbcs on cbcs.id = cbca.specs_id <where> and cbca.is_del = 2 <if test="dto.id != null"> @@ -155,9 +165,9 @@ </if> <if test="dto.keyWord != null and dto.keyWord != ''"> and ( - cbca.`name` like concat ('%',#{statisticsAdminDTO.nickName},'%') or - cbc.`name` like concat ('%',#{statisticsAdminDTO.nickName},'%') or - cbc.`code` like concat ('%',#{statisticsAdminDTO.nickName},'%') + cbca.`name` like concat ('%',#{statisticsAdminDTO.keyWord},'%') or + cbc.`name` like concat ('%',#{statisticsAdminDTO.keyWord},'%') or + cbc.`code` like concat ('%',#{statisticsAdminDTO.keyWord},'%') ) </if> </where> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml index f72d98f..983b8d1 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml @@ -5,7 +5,7 @@ <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommodityOrderCollageTeam" id="ComBatteryCommodityOrderCollageTeamMap"> <result property="id" column="id" jdbcType="INTEGER"/> - <result property="acctivityId" column="acctivity_id" jdbcType="INTEGER"/> + <result property="activityId" column="activity_id" jdbcType="INTEGER"/> <result property="orderId" column="order_id" jdbcType="INTEGER"/> <result property="orderNo" column="order_no" jdbcType="VARCHAR"/> <result property="userId" column="user_id" jdbcType="INTEGER"/> @@ -14,73 +14,106 @@ </resultMap> <!--查询单个--> - <select id="queryById" resultMap="ComBatteryCommodityOrderCollageTeamMap"> - select - id, acctivity_id, order_id, order_no, user_id, status, create_at - from com_battery_commodity_order_collage_team - where id = #{id} + <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo"> + SELECT + cbcoot.id, + cbcoot.activity_id, + cbcoot.order_id, + cbcoot.order_no, + cbcoot.user_id, + cbcoot.`status`, + cbcoot.create_at, + (select count(id) from com_battery_commodity_order_collage_team_people where team_id = cbcoot.id) as spelledNum, + cbca.collage_people_num, + su.image_url as images, + su.`nick_name` + FROM + com_battery_commodity_order_collage_team as cbcoot + left join sys_user as su on su.user_id = cbcoot.user_id + left join com_battery_commodity_activity as cbca on cbca.id = cbcoot.activity_id + where cbcoot.id = #{id} </select> <!--查询指定行数据--> - <select id="queryAllByLimit" resultMap="ComBatteryCommodityOrderCollageTeamMap"> - select - id, acctivity_id, order_id, order_no, user_id, status, create_at - from com_battery_commodity_order_collage_team + <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo"> + SELECT + cbcoot.id, + cbcoot.activity_id, + cbcoot.order_id, + cbcoot.order_no, + cbcoot.user_id, + cbcoot.`status`, + cbcoot.create_at, + (select count(id) from com_battery_commodity_order_collage_team_people where team_id = cbcoot.id) as spelledNum, + cbca.collage_people_num, + su.image_url as images, + su.`nick_name` + FROM + com_battery_commodity_order_collage_team as cbcoot + left join sys_user as su on su.user_id = cbcoot.user_id + left join com_battery_commodity_activity as cbca on cbca.id = cbcoot.activity_id <where> <if test="dto.id != null"> - and id = #{dto.id} + and cbcoot.id = #{dto.id} </if> - <if test="dto.acctivityId != null"> - and acctivity_id = #{dto.acctivityId} + <if test="dto.activityId != null"> + and cbcoot.activity_id = #{dto.activityId} </if> <if test="dto.orderId != null"> - and order_id = #{dto.orderId} + and cbcoot.order_id = #{dto.orderId} </if> <if test="dto.orderNo != null and dto.orderNo != ''"> - and order_no = #{dto.orderNo} + and cbcoot.order_no = #{dto.orderNo} </if> <if test="dto.userId != null"> - and user_id = #{dto.userId} + and cbcoot.user_id = #{dto.userId} </if> <if test="dto.status != null"> - and status = #{dto.status} - </if> - <if test="dto.createAt != null"> - and create_at = #{dto.createAt} + and cbcoot.status = #{dto.status} </if> </where> - order by create_at desc + order by cbcoot.create_at desc </select> <!--查询所有数据--> - <select id="queryAllByList" resultMap="ComBatteryCommodityOrderCollageTeamMap"> - select - id, acctivity_id, order_id, order_no, user_id, status, create_at - from com_battery_commodity_order_collage_team + <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo"> + SELECT + cbcoot.id, + cbcoot.activity_id, + cbcoot.order_id, + cbcoot.order_no, + cbcoot.user_id, + cbcoot.`status`, + cbcoot.create_at, + (select count(id) from com_battery_commodity_order_collage_team_people where team_id = cbcoot.id) as spelledNum, + cbca.collage_people_num, + su.image_url as images, + su.`nick_name` + FROM + com_battery_commodity_order_collage_team as cbcoot + left join sys_user as su on su.user_id = cbcoot.user_id + left join com_battery_commodity_activity as cbca on cbca.id = cbcoot.activity_id <where> <if test="dto.id != null"> - and id = #{dto.id} + and cbcoot.id = #{dto.id} </if> - <if test="dto.acctivityId != null"> - and acctivity_id = #{dto.acctivityId} + <if test="dto.activityId != null"> + and cbcoot.activity_id = #{dto.activityId} </if> <if test="dto.orderId != null"> - and order_id = #{dto.orderId} + and cbcoot.order_id = #{dto.orderId} </if> <if test="dto.orderNo != null and dto.orderNo != ''"> - and order_no = #{dto.orderNo} + and cbcoot.order_no = #{dto.orderNo} </if> <if test="dto.userId != null"> - and user_id = #{dto.userId} + and cbcoot.user_id = #{dto.userId} </if> <if test="dto.status != null"> - and status = #{dto.status} - </if> - <if test="dto.createAt != null"> - and create_at = #{dto.createAt} + and cbcoot.status = #{dto.status} </if> </where> - order by create_at desc + order by cbcoot.create_at desc </select> </mapper> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml index 9903a96..d077c17 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml @@ -14,7 +14,7 @@ </resultMap> <!--查询单个--> - <select id="queryById" resultMap="ComBatteryCommodityOrderCollageTeamPeopleMap"> + <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo"> select id, team_id, head_user_id, user_id, type, create_at, create_by from com_battery_commodity_order_collage_team_people @@ -22,7 +22,7 @@ </select> <!--查询指定行数据--> - <select id="queryAllByLimit" resultMap="ComBatteryCommodityOrderCollageTeamPeopleMap"> + <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo"> select id, team_id, head_user_id, user_id, type, create_at, create_by from com_battery_commodity_order_collage_team_people @@ -53,7 +53,7 @@ </select> <!--查询所有数据--> - <select id="queryAllByList" resultMap="ComBatteryCommodityOrderCollageTeamPeopleMap"> + <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo"> select id, team_id, head_user_id, user_id, type, create_at, create_by from com_battery_commodity_order_collage_team_people @@ -83,5 +83,23 @@ order by create_at desc </select> + <select id="queryAllByTeamId" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo"> + SELECT + cbcootp.id, + cbcootp.team_id, + cbcootp.head_user_id, + cbcootp.user_id, + cbcootp.type, + cbcootp.create_at, + cbcootp.create_by, + su.nick_name, + su.image_url as images + FROM + com_battery_commodity_order_collage_team_people as cbcootp + left join sys_user as su on su.user_id = cbcootp.user_id + where cbcootp.team_id = #{teamId} + order by cbcootp.create_at + </select> + </mapper> -- Gitblit v1.7.1