Merge remote-tracking branch 'origin/master'
| | |
| | | @ApiModelProperty(value = "支付时间-结束",example = "2021-04-18 19:59:14") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date payTimeEnd; |
| | | @ApiModelProperty(value = "订单ID", notes = "如果指定了订单ID,其它搜索条件将被忽略,只导出指定订单") |
| | | @ApiModelProperty(value = "订单ID-如果指定了订单ID,只导出指定订单,其它搜索条件将被忽略", notes = "如果指定了订单ID,其它搜索条件将被忽略,只导出指定订单") |
| | | private Long[] orderIds; |
| | | @JsonIgnore |
| | | private Long userId; |
| | |
| | | @ApiModelProperty(value = "下单时间-结束",example = "2021-04-18 19:58:54") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createAtEnd; |
| | | @ApiModelProperty(value = "订单ID", notes = "如果指定了订单ID,其它搜索条件将被忽略,只导出指定订单") |
| | | @ApiModelProperty(value = "订单ID-如果指定了订单ID,只导出指定订单,其它搜索条件将被忽略", notes = "") |
| | | private Long[] orderIds; |
| | | @JsonIgnore |
| | | private Long userId; |
| | |
| | | private String storeName; |
| | | @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)",example = "1") |
| | | private Integer status; |
| | | @ApiModelProperty(value = "下单时间-开始",example = "1") |
| | | @ApiModelProperty(value = "下单时间-开始",example = "2021-4-10 10:38:25") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private String createAtStart; |
| | | @ApiModelProperty(value = "下单时间-结束",example = "1") |
| | | @ApiModelProperty(value = "下单时间-结束",example = "2021-4-20 10:38:29") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createAtEnd; |
| | | @ApiModelProperty(value = "分页-当前页数",example = "1", required = true) |
| | |
| | | @ApiModelProperty("用户id") |
| | | private Long userId; |
| | | |
| | | @ApiModelProperty("用户账号") |
| | | private Long userName; |
| | | |
| | | @ApiModelProperty("订单号") |
| | | private String orderNo; |
| | | |
| | |
| | | @ApiModelProperty("订单收货人id") |
| | | private Long receiverId; |
| | | |
| | | @ApiModelProperty("收货人") |
| | | private String receiverName; |
| | | |
| | | @ApiModelProperty("电话") |
| | | private String receiverPhone; |
| | | |
| | | @ApiModelProperty("商品") |
| | | private String goodsName; |
| | | |
| | | @ApiModelProperty("订单总金额") |
| | | private BigDecimal totalAmount; |
| | | |
| | |
| | | @JsonIgnore |
| | | private Long loginUserId; |
| | | |
| | | @ApiModelProperty("id") |
| | | private Long id; |
| | | |
| | | } |
| | |
| | | <version>${feign-httpclient.version}</version> |
| | | </dependency> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | </dependencies> |
| | | </dependencyManagement> |
| | | |
| | |
| | | */ |
| | | @PostMapping("/pageShopGoods") |
| | | public R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO) { |
| | | |
| | | return comShopGoodsService.pageShopGoods(comShopGoodsDTO); |
| | | } |
| | | |
| | |
| | | IPage<ComShopOrderPageVO> pageOrderList(Page page,@Param("comOrderListDTO") PageComOrderListDTO comOrderListDTO); |
| | | |
| | | @Select("<script> " + |
| | | "SELECT sr.id, sr.store_id, sr.user_id, sr.order_no, sr.pay_no, \n" + |
| | | "SELECT distinct sr.id, sr.store_id, sr.user_id, su.phone AS userName , sr.order_no, sr.pay_no, \n" + |
| | | " sr.wx_tarde_no, sr.status, sr.pay_status, sr.receiver_id, \n" + |
| | | " sr.total_amount, sr.discount_amount, sr.pay_amount, sr.pay_type, \n" + |
| | | " sr.pay_time, sr.delivery_type, sr.delivery_status, sr.logistics_company, \n" + |
| | | " sr.logistics_no, sr.create_at \n" + |
| | | " sr.logistics_no, sr.create_at, uad.name as receiver_name, uad.phone as receiver_phone, group_concat(og.goods_name) as goodsName \n" + |
| | | " FROM com_shop_order sr LEFT JOIN com_shop_order_goods og ON sr.id = og.order_id \n" + |
| | | " LEFT JOIN com_shop_goods_attr ga ON og.goods_attr_id = ga.id \n" + |
| | | " LEFT JOIN sys_user su ON sr.user_id = su.user_id \n" + |
| | |
| | | "<if test='pageComShopOrderSearchDTO.storeName != null '>" + |
| | | " AND ss.name like concat('%', #{pageComShopOrderSearchDTO.storeName}, '%') " + |
| | | " </if> " + |
| | | " GROUP BY sr.id " + |
| | | " ORDER BY sr.create_at "+ |
| | | "</script>") |
| | | IPage<ComShopOrderSearchVO> pageOrderBy(Page page, @Param("pageComShopOrderSearchDTO") PageComShopOrderSearchDTO pageComShopOrderSearchDTO); |
| | |
| | | |
| | | @Select("<script> " + |
| | | " SELECT sys_user_id,\n" + |
| | | " sum(case when abt.days = DATE_FORMAT(NOW(),'%Y%m%d') then abt.t END) AS todayTotal,\n" + |
| | | " sum(case when abt.days = DATE_FORMAT(NOW(),'%Y%u') then abt.t END) AS weekTotal,\n" + |
| | | " sum(case when abt.days = DATE_FORMAT(NOW(),'%Y%m') then abt.t END) AS monthTotal\n" + |
| | | " COALESCE(SUM(CASE WHEN abt.days = DATE_FORMAT(NOW(),'%Y%m%d') THEN abt.t END), 0) AS todayTotal,\n" + |
| | | " COALESCE(SUM(CASE WHEN abt.days = DATE_FORMAT(NOW(),'%Y%u') THEN abt.t END), 0) AS weekTotal,\n" + |
| | | " COALESCE(SUM(CASE WHEN abt.days = DATE_FORMAT(NOW(),'%Y%m') THEN abt.t END), 0) AS monthTotal\n" + |
| | | "FROM (\n" + |
| | | "SELECT ss.sys_user_id, (sr.pay_amount) AS t , DATE_FORMAT(sr.pay_time,'%Y%m%d') days\n" + |
| | | "SELECT ss.sys_user_id, sum(sr.pay_amount) AS t , DATE_FORMAT(sr.pay_time,'%Y%m%d') days\n" + |
| | | "FROM com_shop_order sr LEFT JOIN com_shop_store ss ON sr.store_id = ss.id\n" + |
| | | "WHERE sr.pay_status = 2 AND DATE_FORMAT(sr.pay_time,'%Y%m%d') = DATE_FORMAT(NOW(),'%Y%m%d')\n" + |
| | | "<if test='userId!=null'>" + |
| | | " and ss.sys_user_id = #{userId}\n" + |
| | | "</if>" + |
| | | "GROUP BY days\n" + |
| | | "UNION \n" + |
| | | "SELECT ss.sys_user_id, sum(sr.pay_amount) AS t, DATE_FORMAT(sr.pay_time,'%Y%u') weeks\n" + |
| | | "FROM com_shop_order sr LEFT JOIN com_shop_store ss ON sr.store_id = ss.id\n" + |
| | | "WHERE sr.pay_status = 2 AND DATE_FORMAT(sr.pay_time,'%Y%u') = DATE_FORMAT(NOW(),'%Y%u')\n" + |
| | | "<if test='userId!=null'>" + |
| | | " and ss.sys_user_id = #{userId}\n" + |
| | | "</if>" + |
| | | "GROUP BY weeks\n" + |
| | | "UNION \n" + |
| | | "SELECT ss.sys_user_id, sum(sr.pay_amount) AS t, DATE_FORMAT(sr.pay_time,'%Y%m') months\n" + |
| | | "FROM com_shop_order sr LEFT JOIN com_shop_store ss ON sr.store_id = ss.id\n" + |
| | | "WHERE sr.pay_status = 2 AND DATE_FORMAT(sr.pay_time,'%Y%m') = DATE_FORMAT(NOW(),'%Y%m')\n" + |
| | | "<if test='userId!=null'>" + |
| | | " and ss.sys_user_id = #{userId}\n" + |
| | | "</if>" + |
| | | "GROUP BY months\n" + |
| | | ") abt\n" + |
| | | "GROUP BY abt.sys_user_id "+ |
| | | "</script>") |
| | | ComShopFundsVO queryStatis(Long userId); |
| | | ComShopFundsVO queryStatis(@Param("userId") Long userId); |
| | | |
| | | @Select("<script> " + |
| | | "SELECT sr.id, sr.total_amount, sr.pay_time, sr.order_no, \n" + |
| | |
| | | <name>shop_backstage</name> |
| | | <description>商家后台</description> |
| | | |
| | | |
| | | |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/funs") |
| | | @Api(tags = {"商家后台", "资金管理"}) |
| | | @Api(tags = {"资金管理"}) |
| | | public class FundsApi extends BaseController { |
| | | |
| | | @Resource |
| | |
| | | import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO; |
| | | import com.panzhihua.common.model.vos.R; |
| | | import com.panzhihua.common.model.vos.shop.AddShopGoodsVO; |
| | | import com.panzhihua.common.model.vos.shop.ComShopGoodsVO; |
| | | import com.panzhihua.common.model.vos.shop.ComShopOrderSearchVO; |
| | | import com.panzhihua.common.model.vos.shop.ShopStoreVO; |
| | | import com.panzhihua.common.service.community.CommunityService; |
| | | import com.panzhihua.common.validated.PageGroup; |
| | | import com.panzhihua.common.interfaces.ShopOperLog; |
| | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/goods") |
| | | @Api(tags = {"商家后台", "商品管理"}) |
| | | @Api(tags = {"商品管理"}) |
| | | public class GoodsApi extends BaseController { |
| | | |
| | | @Resource |
| | | private CommunityService communityService; |
| | | |
| | | @ApiOperation(value = "商品分页搜索") |
| | | @ApiOperation(value = "商品分页搜索", response = ComShopGoodsVO.class) |
| | | @PostMapping("/page") |
| | | public R search(@RequestBody @Validated(PageGroup.class) ComShopGoodsDTO comShopGoodsDTO){ |
| | | R<ShopStoreVO> storeInfoR = communityService.getUserStoreInfo(getUserId()); |
| | | ShopStoreVO shopStoreVO = storeInfoR.getData(); |
| | | if(shopStoreVO==null){ |
| | | return R.fail("用户无关联店铺"); |
| | | } |
| | | comShopGoodsDTO.setStoreId(shopStoreVO.getId()); |
| | | return communityService.pageShopGoods(comShopGoodsDTO); |
| | | } |
| | | |
| | |
| | | @ShopOperLog(operType = 3) |
| | | @PostMapping("/add") |
| | | public R search(@RequestBody AddShopGoodsVO addShopGoodsVO){ |
| | | R<ShopStoreVO> storeInofR = communityService.getUserStoreInfo(getUserId()); |
| | | ShopStoreVO shopStoreVO = storeInofR.getData(); |
| | | addShopGoodsVO.setStoreId(shopStoreVO.getId()); |
| | | addShopGoodsVO.setName(shopStoreVO.getName()); |
| | | return communityService.saveShopGoods(addShopGoodsVO); |
| | | } |
| | | |
| | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/log") |
| | | @Api(tags = {"商家后台", "操作日志"}) |
| | | @Api(tags = {"操作日志"}) |
| | | public class LogApi extends BaseController { |
| | | |
| | | @Resource |
| | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/") |
| | | @Api(tags = {"商家后台", "登录"}) |
| | | @Api(tags = {"登录"}) |
| | | public class LoginApi extends BaseController { |
| | | @Resource |
| | | private TokenService tokenService; |
| | |
| | | import com.panzhihua.common.model.vos.R; |
| | | import com.panzhihua.common.interfaces.ShopOperLog; |
| | | import com.panzhihua.common.model.vos.shop.ComShopOrderPageVO; |
| | | import com.panzhihua.common.model.vos.shop.ComShopOrderSearchVO; |
| | | import com.panzhihua.common.model.vos.shop.ShopStoreVO; |
| | | import com.panzhihua.common.service.community.CommunityService; |
| | | import com.panzhihua.common.utlis.SFTPUtil; |
| | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/order") |
| | | @Api(tags = {"商家后台", "订单管理"}) |
| | | @Api(tags = {"订单管理"}) |
| | | public class OrderApi extends BaseController { |
| | | |
| | | @Resource |
| | |
| | | @Value("${ftp.port}") |
| | | private int port; |
| | | |
| | | @ApiOperation(value = "订单分页") |
| | | @ApiOperation(value = "订单分页", response = ComShopOrderSearchVO.class) |
| | | @PostMapping("") |
| | | public R page(@RequestBody @Validated PageComShopOrderSearchDTO pageComShopOrderSearchDTO){ |
| | | pageComShopOrderSearchDTO.setUserId(this.getUserId()); |
| | |
| | | <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| | | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
| | | <!--日志文件输出的文件名--> |
| | | <FileNamePattern>${LOG_HOME}/community_backstage.log.%d{yyyy-MM-dd}.log</FileNamePattern> |
| | | <FileNamePattern>${LOG_HOME}/shop_backstage.log.%d{yyyy-MM-dd}.log</FileNamePattern> |
| | | <!--日志文件保留天数--> |
| | | <MaxHistory>30</MaxHistory> |
| | | </rollingPolicy> |
| | |
| | | <logger name="java.sql.Connection" level="DEBUG"/> |
| | | <logger name="java.sql.Statement" level="DEBUG"/> |
| | | <logger name="java.sql.PreparedStatement" level="DEBUG"/> |
| | | <logger name="com.panzhihua.community_backstage" level="DEBUG"/> |
| | | <logger name="com.panzhihua.shop_backstage" level="DEBUG"/> |
| | | |
| | | <!-- 日志输出级别 --> |
| | | <root level="DEBUG"> |
| | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.cloud.netflix.zuul.filters.Route; |
| | | import org.springframework.cloud.netflix.zuul.filters.RouteLocator; |
| | | import org.springframework.context.MessageSource; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.context.annotation.Primary; |
| | |
| | | import springfox.documentation.swagger.web.SwaggerResourcesProvider; |
| | | import springfox.documentation.swagger2.annotations.EnableSwagger2; |
| | | |
| | | import java.text.MessageFormat; |
| | | import java.util.*; |
| | | |
| | | import static java.util.stream.Collectors.collectingAndThen; |
| | |
| | | @Override |
| | | public List<SwaggerResource> get() { |
| | | List resources = new ArrayList(); |
| | | List<Route> routes = routeLocator.getRoutes(); |
| | | routes = routes.stream().collect( |
| | | collectingAndThen( |
| | | toCollection(() -> new TreeSet<>(Comparator.comparing(Route::getId))), ArrayList::new) |
| | | ); |
| | | //通过RouteLocator获取路由配置,遍历获取所配置服务的接口文档,这样不需要手动添加,实现动态获取 |
| | | List<String>stringList= Arrays.asList(ids); |
| | | for (Route route: routes) { |
| | | String id = route.getId(); |
| | | boolean contains = stringList.contains(id); |
| | | String fullPath = route.getFullPath(); |
| | | String s = fullPath.replaceFirst("/api", ""); |
| | | String s1 = s.replaceFirst("/" + id, ""); |
| | | if (contains) { |
| | | resources.add(swaggerResource(id,s1.replace("**", "v2/api-docs"),"1.0")); |
| | | } |
| | | } |
| | | Arrays.asList(ids).forEach(id->{ |
| | | resources.add(swaggerResource(id, MessageFormat.format("/api/{0}/v2/api-docs", id), "1.0")); |
| | | }); |
| | | return resources; |
| | | } |
| | | |