diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java index 4b058e6c..12c2aadd 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java @@ -37,7 +37,7 @@ public class GoodsController extends BaseController { return PREFIX + "/goods"; } - @RequiresPermissions("goods:goods:list") +// @RequiresPermissions("goods:goods:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(Goods goods) { diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index de54afed..08f75d0e 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -15,10 +15,12 @@ import com.ghy.payment.service.FinancialMasterService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import java.math.BigDecimal; -import java.util.List; +import java.util.Date; /** * @author clunt @@ -48,7 +50,8 @@ public class OrderController extends BaseController { @PostMapping("/server/app") - public AjaxResult appOrder(AppOrderRequest appOrderRequest){ + @ResponseBody + public AjaxResult appOrder(@RequestBody AppOrderRequest appOrderRequest){ // 校验用户信息 Customer customer = customerService.selectByCustomerId(appOrderRequest.getCustomerId()); if(StringUtils.isNull(customer)){ @@ -61,15 +64,22 @@ public class OrderController extends BaseController { } // 计算商品费用 BigDecimal totalPay = goodsService.calculate(appOrderRequest.getGoodsList()); - //TODO 生成主单 and 细单 - OrderMaster orderMaster = orderMasterService.createMasterOrder(appOrderRequest); - //TODO 生成细单 - + // 生成主单 + OrderMaster orderMaster = new OrderMaster(); + orderMaster.setCode(orderMasterService.createOrderCode()); + orderMaster.setOrderType(1); + orderMaster.setOrderStatus(0); + orderMaster.setCustomerId(appOrderRequest.getCustomerId()); + orderMaster.setPayStatus(0); + orderMaster.setCreateTime(new Date()); + orderMasterService.insertOrderMaster(orderMaster); //TODO 生成财务主单 + //TODO 生成细单 + //TODO 生成财务细单(含分销等.) - return AjaxResult.success(); + return AjaxResult.success(orderMaster); } } diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java b/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java index 4f2c7dea..3ec8b913 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/pay/WxPayController.java @@ -41,9 +41,10 @@ public class WxPayController extends BaseController { * 微信小程序支付 */ @PostMapping("lite") + @ResponseBody public AjaxResult litePay(HttpServletRequest request) { - String code = request.getParameter("code"); - String orderMasterCode = request.getParameter("orderMasterCode"); + String code = request.getHeader("code"); + String orderMasterCode = request.getHeader("orderMasterCode"); OrderMaster orderMaster = orderMasterService.selectByCode(orderMasterCode); if (orderMaster == null) { return AjaxResult.error("订单不存在"); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java b/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java index 2800e2c7..8f298373 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java @@ -45,7 +45,8 @@ public class WxController extends BaseController { @GetMapping("/auth") @ResponseBody - public AjaxResult auth(String code) { + public AjaxResult auth(HttpServletRequest request) { + String code = request.getHeader("code"); String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxConfig.getAppId() + "&secret=" + wxConfig.getSecret() + "&js_code=" + code + "&grant_type=authorization_code"; String data = HttpUtils.sendGet(url, null); JSONObject result = JSONObject.parseObject(data); diff --git a/ghy-admin/src/main/resources/application.yaml b/ghy-admin/src/main/resources/application.yaml index 16771130..86b2b2af 100644 --- a/ghy-admin/src/main/resources/application.yaml +++ b/ghy-admin/src/main/resources/application.yaml @@ -143,8 +143,10 @@ swagger: #小程序配置 wx: - appId: 'wx404f2439a8c24e15' - secret: '49ade04a817067fe2d65ab2f17afce75' + appId: 'wxc39c2af3ea24cd37' + secret: '96d566c3169b8715904950d9cf3cbf60' +# appId: 'wx404f2439a8c24e15' +# secret: '49ade04a817067fe2d65ab2f17afce75' #七牛云配置 qiniu: diff --git a/ghy-common/src/main/java/com/ghy/common/utils/ServletUtils.java b/ghy-common/src/main/java/com/ghy/common/utils/ServletUtils.java index 994634c3..8410bc97 100644 --- a/ghy-common/src/main/java/com/ghy/common/utils/ServletUtils.java +++ b/ghy-common/src/main/java/com/ghy/common/utils/ServletUtils.java @@ -11,7 +11,7 @@ import com.ghy.common.core.text.Convert; /** * 客户端工具类 - * + * * @author clunt */ public class ServletUtils @@ -26,7 +26,7 @@ public class ServletUtils */ public static String getParameter(String name) { - return getRequest().getParameter(name); + return StringUtils.isNotEmpty(getRequest().getHeader(name)) ? getRequest().getHeader(name):getRequest().getParameter(name); } /** @@ -34,7 +34,8 @@ public class ServletUtils */ public static String getParameter(String name, String defaultValue) { - return Convert.toStr(getRequest().getParameter(name), defaultValue); + String value = StringUtils.isNotEmpty(getRequest().getHeader(name)) ? getRequest().getHeader(name):getRequest().getParameter(name); + return Convert.toStr(value, defaultValue); } /** @@ -42,7 +43,8 @@ public class ServletUtils */ public static Integer getParameterToInt(String name) { - return Convert.toInt(getRequest().getParameter(name)); + String value = StringUtils.isNotEmpty(getRequest().getHeader(name)) ? getRequest().getHeader(name):getRequest().getParameter(name); + return Convert.toInt(value); } /** @@ -50,7 +52,8 @@ public class ServletUtils */ public static Integer getParameterToInt(String name, Integer defaultValue) { - return Convert.toInt(getRequest().getParameter(name), defaultValue); + String value = StringUtils.isNotEmpty(getRequest().getHeader(name)) ? getRequest().getHeader(name):getRequest().getParameter(name); + return Convert.toInt(value, defaultValue); } /** @@ -58,7 +61,8 @@ public class ServletUtils */ public static Boolean getParameterToBool(String name) { - return Convert.toBool(getRequest().getParameter(name)); + String value = StringUtils.isNotEmpty(getRequest().getHeader(name)) ? getRequest().getHeader(name):getRequest().getParameter(name); + return Convert.toBool(value); } /** @@ -66,7 +70,8 @@ public class ServletUtils */ public static Boolean getParameterToBool(String name, Boolean defaultValue) { - return Convert.toBool(getRequest().getParameter(name), defaultValue); + String value = StringUtils.isNotEmpty(getRequest().getHeader(name)) ? getRequest().getHeader(name):getRequest().getParameter(name); + return Convert.toBool(value, defaultValue); } /** @@ -101,7 +106,7 @@ public class ServletUtils /** * 将字符串渲染到客户端 - * + * * @param response 渲染对象 * @param string 待渲染的字符串 * @return null @@ -123,7 +128,7 @@ public class ServletUtils /** * 是否是Ajax异步请求 - * + * * @param request */ public static boolean isAjaxRequest(HttpServletRequest request) diff --git a/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java b/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java index cad7ed66..ab832541 100644 --- a/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java +++ b/ghy-framework/src/main/java/com/ghy/framework/config/ShiroConfig.java @@ -39,7 +39,7 @@ import at.pollux.thymeleaf.shiro.dialect.ShiroDialect; /** * 权限配置加载 - * + * * @author clunt */ @Configuration @@ -278,6 +278,7 @@ public class ShiroConfig //部分接口不需要登陆校验 filterChainDefinitionMap.put("/wx/**", "anon"); filterChainDefinitionMap.put("/pay/**", "anon"); + filterChainDefinitionMap.put("/order/**", "anon"); filterChainDefinitionMap.put("/goods/**", "anon"); filterChainDefinitionMap.put("/adapay/**", "anon"); filterChainDefinitionMap.put("/MP_verify_bRFuvYpyQ4WLr0on.txt", "anon"); diff --git a/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsMapper.java b/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsMapper.java index 3be03bbc..6c8bf8a8 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsMapper.java +++ b/ghy-goods/src/main/java/com/ghy/goods/mapper/GoodsMapper.java @@ -16,7 +16,7 @@ public interface GoodsMapper { * @param goods 商品信息 * @return 校验是否满足库存 */ - int checkAGoodsStore(AppGoodsRequest goods); + List checkAGoodsStore(AppGoodsRequest goods); /** * @param goods 商品属性 diff --git a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsServiceImpl.java b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsServiceImpl.java index f9f201ed..64ce7489 100644 --- a/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsServiceImpl.java +++ b/ghy-goods/src/main/java/com/ghy/goods/service/impl/GoodsServiceImpl.java @@ -30,8 +30,8 @@ public class GoodsServiceImpl implements GoodsService { @Override public boolean checkStore(List goodsList) { for (AppGoodsRequest goods : goodsList) { - int num = goodsMapper.checkAGoodsStore(goods); - if (num == 0) { + List list = goodsMapper.checkAGoodsStore(goods); + if (list.size() == 0) { return false; } } diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java index 847e7126..c610666c 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderMaster.java @@ -43,10 +43,4 @@ public class OrderMaster extends BaseEntity { @Excel(name = "接单时间", cellType = Excel.ColumnType.STRING) private String revTime; - public OrderMaster() { - } - - public OrderMaster(String code) { - this.code = code; - } } diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java index f0f5be7a..cea698b6 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java +++ b/ghy-order/src/main/java/com/ghy/order/service/OrderMasterService.java @@ -12,6 +12,8 @@ import java.util.List; */ public interface OrderMasterService { + String createOrderCode(); + OrderMaster createMasterOrder(AppOrderRequest appOrderRequest); /** diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java index fc0cdb8c..2d86d4b0 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderMasterServiceImpl.java @@ -9,7 +9,10 @@ import com.ghy.order.service.OrderMasterService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.concurrent.atomic.AtomicLong; /** * 商品模块实现类 @@ -22,6 +25,16 @@ public class OrderMasterServiceImpl implements OrderMasterService { @Resource private OrderMasterMapper orderMasterMapper; + AtomicLong index = new AtomicLong(1L); + + private final static ThreadLocal dateFormat = ThreadLocal.withInitial(()->new SimpleDateFormat("yyyyMMddHHmmss")); + + @Override + public String createOrderCode() { + index.compareAndSet(9999L, 1L); + return "om" + dateFormat.get().format(new Date()) + index.getAndIncrement(); + } + @Override public OrderMaster createMasterOrder(AppOrderRequest appOrderRequest) { return null; diff --git a/ghy-order/src/main/resources/mapper/OrderDetailMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml similarity index 100% rename from ghy-order/src/main/resources/mapper/OrderDetailMapper.xml rename to ghy-order/src/main/resources/mapper/order/OrderDetailMapper.xml diff --git a/ghy-order/src/main/resources/mapper/OrderMasterMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml similarity index 98% rename from ghy-order/src/main/resources/mapper/OrderMasterMapper.xml rename to ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml index a1ec8df0..43236f9b 100644 --- a/ghy-order/src/main/resources/mapper/OrderMasterMapper.xml +++ b/ghy-order/src/main/resources/mapper/order/OrderMasterMapper.xml @@ -102,7 +102,7 @@ INSERT INTO order_master( - code, + code, customer_id, order_type, order_status, @@ -114,7 +114,7 @@ create_by, create_time )VALUES( - #{code}, + #{code}, #{customerId}, #{orderType}, #{orderStatus}, @@ -138,4 +138,4 @@ WHERE `code` = #{orderMasterCode} - \ No newline at end of file +